> For the complete documentation index, see [llms.txt](https://atiysus-organization.gitbook.io/aty-scripts/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://atiysus-organization.gitbook.io/aty-scripts/map-editor/reference/keybinds.md).

# Keybinds

## Keybinds

Press **H** in game for this list, live and matching your config.

Every key does exactly one thing while editing. If you rebind, keep that property — overlapping keys are the most reliable way to make the editor feel broken.

### Freecam

| Key             | Action          |
| --------------- | --------------- |
| **W A S D**     | Move            |
| **E**           | Up              |
| **Q**           | Down            |
| **Scroll**      | Change speed    |
| **Left Shift**  | Fly fast (hold) |
| **Left Ctrl**   | Fly slow (hold) |
| **Left Alt**    | Toggle cursor   |
| **Right click** | Hide cursor     |

### Editing a prop

| Key                           | Action                                 |
| ----------------------------- | -------------------------------------- |
| **W**                         | Move mode                              |
| **R**                         | Rotate mode                            |
| **S**                         | Scale mode                             |
| **Q**                         | Toggle world / local axes              |
| **Space**                     | Drop to ground                         |
| **G**                         | Reset rotation                         |
| **M**                         | Properties panel                       |
| **C**                         | Clone this prop                        |
| **Del**                       | Delete                                 |
| **Left click** on empty space | Release and place                      |
| **Shift**                     | Attach to the prop you point at (hold) |
| **Enter**                     | Confirm                                |
| **Esc**                       | Cancel                                 |

### Snapping — hold

| Key           | Action                   |
| ------------- | ------------------------ |
| **Left Ctrl** | Grid snap and angle snap |
| **V**         | Vertex snap              |
| **X**         | Surface align            |

### Selection

| Input                   | Action                         |
| ----------------------- | ------------------------------ |
| **Left click**          | Select                         |
| **Ctrl + left click**   | Add to / remove from selection |
| **Drag** on empty space | Box select                     |
| **Shift + drag**        | Box select, adding             |
| **Alt + drag**          | Box select, removing           |
| **Ctrl + C**            | Copy the selection             |
| **Ctrl + V**            | Paste at the camera            |

Copy and paste are registered through `ox_lib`, so players can rebind them in the FiveM keybind settings.

### Area tools

| Key            | Action                 |
| -------------- | ---------------------- |
| **Left click** | Add a corner           |
| **Backspace**  | Remove the last corner |
| **Enter**      | Close the shape        |
| **Esc**        | Cancel                 |

### Other

| Key           | Action                                                              |
| ------------- | ------------------------------------------------------------------- |
| **H**         | Help overlay                                                        |
| **Backspace** | Close the editor — closes the gizmo first if a prop is being edited |

### Changing them

`Config.Keys` in `shared/config.lua` maps every action to a FiveM control id.

```lua
Config.Keys = {
    MoveForward   = 32,   -- W
    OpenProperties = 244, -- M
    GridSnap      = 36,   -- LCtrl (hold)
    VertexSnap    = 0,    -- V (hold)
    SurfaceAlign  = 73,   -- X (hold)
    -- …
}
```

Control ids are listed in the [FiveM controls reference](https://docs.fivem.net/docs/game-references/controls/).

{% hint style="warning" %}
Two entries sharing an id is not an error the script can detect — it just means one key fires two actions. `SurfaceAlign` is on **X** rather than Left Alt, and `VertexSnap` on **V** rather than Ctrl+Z, precisely because those collided with the cursor toggle and undo. Keep that separation if you change the layout.
{% endhint %}
