> For the complete documentation index, see [llms.txt](https://docs.tworst.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.tworst.com/scripts/builder-job/controls.md).

# Controls

All machine keys are defined in **`config/keybinds.lua`** and are fully rebindable. Players can also view and change them in-game from the settings menu — see [Interface](/scripts/builder-job/interface.md).

***

## Commands

| Command               | Who      | Description                                                              |
| --------------------- | -------- | ------------------------------------------------------------------------ |
| `/builderjobsettings` | Everyone | Open the settings menu — Sync quality and key bindings                   |
| `/keys`               | Everyone | Open the key binding panel directly                                      |
| `/builderjobreset`    | Everyone | Reset your current job                                                   |
| `/builderjobleave`    | Everyone | Leave the current lobby                                                  |
| `/builderadmin`       | Admins   | Admin panel — lobbies, players, regions, logs, force-end, site reset     |
| `/tw_bp`              | Admins   | Site & Zone Builder — place build sites, manage zones, run health checks |
| `/tw_bp go [design]`  | Admins   | Jump straight into placement mode with a design                          |
| `/tw_bp clear`        | Admins   | Remove the objects the tool has spawned                                  |
| `/cranesiteid`        | Everyone | Print your own identifier, for adding yourself to `Config.Admins`        |

{% hint style="info" %}
All four player command names come from `Config.Command` (`jobReset`, `jobLeave`, `settings`, `keys`) and can be renamed. The admin panel command comes from `Config.AdminPanel.command`. Both admin tools are gated server-side by `Config.Admins`.
{% endhint %}

***

## General

Shared across every job and machine.

| Action                           | Default Key |
| -------------------------------- | ----------- |
| Interact (pick up / place / use) | **E**       |
| Take / put back remote           | **E**       |
| Start remote control             | **E**       |
| Enter cabin / take control       | **H**       |
| Grab hook / attach sling         | **E**       |
| Release hook                     | **G**       |
| Put carried item back on pile    | **X**       |
| Task list detail *(hold)*        | **K**       |

***

## Mobile Crane

The truck-mounted crane — telescopic main boom plus a knuckle boom.

| Action                       | Default Key               |
| ---------------------------- | ------------------------- |
| Slew left / right            | **A** / **D**             |
| Raise / lower main boom      | **W** / **S**             |
| Extend / retract telescope   | **↑** / **↓**             |
| Knuckle boom left / right    | **←** / **→**             |
| Lower / raise rope           | **Mouse 1** / **Mouse 2** |
| Slow mode (precise) *(hold)* | **Shift**                 |
| Drop load on ground          | **X**                     |
| Camera view                  | **V**                     |
| Camera auto-follow           | **B**                     |
| Hide / show remote screen    | **K**                     |
| Exit control                 | **Backspace**             |

{% hint style="success" %}
**Slow mode** is the difference between a good operator and a great one — hold it for the final approach when you are lining a load up with its target.
{% endhint %}

***

## Concrete Pump

| Action                       | Default Key   |
| ---------------------------- | ------------- |
| Slew left / right            | **A** / **D** |
| Raise / lower main boom      | **W** / **S** |
| Open / close package section | **←** / **→** |
| Extend / retract tip section | **↑** / **↓** |
| Deploy / stow outriggers     | **G**         |
| Open / close hopper lid      | **H**         |
| Start / stop pouring         | **E**         |
| Exit control                 | **Backspace** |

{% hint style="warning" %}
Deploy the **outriggers** before you swing a loaded boom out — that is the pump's stability step.
{% endhint %}

***

## Tower Crane

Operated from the cabin.

| Action                 |
| ---------------------- |
| Slew left / right      |
| Trolley forward / back |
| Lower / raise hook     |
| Slow mode (precise)    |
| Cabin camera view      |
| Hide key bar           |
| Leave cabin            |

***

## Remote vs Cabin

Most machines can be run two ways:

* **Cabin** — climb in and operate from the seat, with a dedicated machine camera.
* **Remote control** — pick up the remote (**E**), stand where you can see the load, and drive the machine from the ground.

Both are fully **network-synced**: your crew sees the boom, rope, hook and load move in real time.

***

## Rigging

Loads are attached with the **sling** system:

1. Bring the hook down near the load.
2. Press **E** to grab the hook / attach the sling.
3. Lift and move.
4. Press **G** to release once the load is seated.

Sling behaviour per load type is configured in `config/systems/sling_profiles.lua` and `config/systems/rigger.lua`.

***

## Changing Keys

Open `config/keybinds.lua`. Each action carries both a raw key (`vk`) and a FiveM control id (`ctrl`):

```lua
{ id = 'cv2.slewL', page = 'cv2', kind = 'hold',
  label = 'Slew left', lKey = 'kb_cv2_slew_l', vk = 65, ctrl = 34 },
```

| Field    | Meaning                                                            |
| -------- | ------------------------------------------------------------------ |
| `page`   | Which control page it belongs to (`genel`, `cv2`, `pump`, `tower`) |
| `kind`   | `tap` or `hold`                                                    |
| `shared` | Used across multiple machines                                      |
| `vk`     | Virtual key code                                                   |
| `ctrl`   | FiveM control id                                                   |
| `lKey`   | Locale key for the on-screen label                                 |
