> ## Documentation Index
> Fetch the complete documentation index at: https://docs.atlanta.gg/llms.txt
> Use this file to discover all available pages before exploring further.

# Input

> A module for simulating system-level mouse and keyboard input. Provides functions for pressing, releasing, and moving the mouse, scrolling, and controlling specific keyboard keys.

***

## Access

All input C++ functions are exposed to your Lua script via a single global table named **`input`**. You access individual values by using the dot (`.`) or bracket (`[]`) operator on this table.

```lua Input Usage Example theme={null}
input.mouse_right_click(); -- Dot Operator
local input_mouse_location = input["get_mouse_location"](); -- Bracket Operator
```

***

## Functions

This section lists all available C++ functions exposed within the global **`input`** table. These functions are used to simulate and manage system-level interactions, including mouse movement, button clicks, and keyboard key presses.

***

### mouse\_left\_press

Presses the left mouse button down without releasing it.

```lua theme={null}
mouse_left_press(): void
```

***

### mouse\_left\_release

Releases the left mouse button.

```lua theme={null}
mouse_left_release(): void
```

***

### mouse\_left\_click

Performs a full left mouse button click (press and release).

```lua theme={null}
mouse_left_click(): void
```

***

### mouse\_right\_press

Presses the right mouse button down without releasing it.

```lua theme={null}
mouse_right_press(): void
```

***

### mouse\_right\_release

Releases the right mouse button.

```lua theme={null}
mouse_right_release(): void
```

***

### mouse\_right\_click

Performs a full right mouse button click (press and release).

```lua theme={null}
mouse_right_click(): void
```

***

### mouse\_move\_relative

Moves the mouse cursor relative to its current position.

```lua theme={null}
mouse_move_relative(number: x, number: y): void
```

<ParamField path="x" type="number" required>The horizontal distance to move the cursor in pixels.</ParamField>
<ParamField path="y" type="number" required>The vertical distance to move the cursor in pixels.</ParamField>

### mouse\_move\_absolute

Moves the mouse cursor to an absolute position on the screen.

```lua theme={null}
mouse_move_absolute(number: x, number: y): void
```

<ParamField path="x" type="number" required>The absolute X coordinate on the screen.</ParamField>
<ParamField path="y" type="number" required>The absolute Y coordinate on the screen.</ParamField>

### mouse\_scroll

Scrolls the mouse wheel by the specified value.

```lua theme={null}
mouse_scroll(number: value): void
```

<ParamField path="value" type="number" required>The scroll amount. Positive values scroll up, negative values scroll down.</ParamField>

### key\_press

Presses a keyboard key down without releasing it.

```lua theme={null}
key_press(number: key): void
```

<ParamField path="key" type="number" required>The virtual key code of the key to press.</ParamField>

### key\_release

Releases a keyboard key.

```lua theme={null}
key_release(number: key): void
```

<ParamField path="key" type="number" required>The virtual key code of the key to release.</ParamField>

### key\_click

Performs a full keyboard key click (press and release).

```lua theme={null}
key_click(number: key): void
```

<ParamField path="key" type="number" required>The virtual key code of the key to click.</ParamField>

### get\_mouse\_location

Gets the current mouse cursor position on the screen. Returns a Vector2 containing the X and Y coordinates.

```lua theme={null}
get_mouse_location(): Vector2
```
