> For the complete documentation index, see [llms.txt](https://mango-5m.gitbook.io/mango5m-docs/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://mango-5m.gitbook.io/mango5m-docs/free-resources/mango-positions/using-the-tool.md).

# Using the Tool

Every key, the 39-pose library, the freecam, the four output formats, and the prop placer.

```
/mpos
```

A transparent copy of your own ped appears in front of you, with a panel on the right showing live coordinates, the current pose and the output format. Run the command again — or press `ESC` — to close.

The ghost is local and non-networked: nobody else sees it, and it never collides with anything.

## Controls

| Key             | Action                                                      |
| --------------- | ----------------------------------------------------------- |
| `W` `A` `S` `D` | Move the ghost, relative to your camera                     |
| `SHIFT`         | Move fast (×4)                                              |
| `ALT`           | Move fine (×0.25)                                           |
| `↑` `↓`         | Raise / lower                                               |
| `←` `→`         | Rotate — this sets the **heading** in the copied coordinate |
| `E` / `Q`       | Next / previous pose                                        |
| `F`             | Cycle output format                                         |
| `V`             | Freecam — off → fly → parked → off                          |
| `R`             | Fetch the ghost to the freecam                              |
| `ENTER`         | Copy to clipboard (and print to F8)                         |
| `1` `2` `3`     | Switch to the ped, prop or fit tool                         |
| `ESC`           | Close                                                       |

{% hint style="success" %}
**This is the point of the tool.** Pick the pose *before* you copy the coordinate. A spot that looks right standing up is usually wrong for the animation that will actually play there.
{% endhint %}

## The freecam

Press `V` and the camera detaches from your body. Press it again and it parks; again and you are back in your own eyes.

| Mode           | What the keys do                                                                                                                     |
| -------------- | ------------------------------------------------------------------------------------------------------------------------------------ |
| **Freecam**    | `WASD` flies the camera, the mouse looks, `SPACE` / `CTRL` rise and fall, `SHIFT` / `ALT` change speed. The ghost stays where it is. |
| **Cam parked** | The camera stops where it is and `WASD` goes back to moving the ghost.                                                               |
| **Off**        | Normal gameplay camera.                                                                                                              |

**Parked is the useful one.** Fly out to where you can actually see the spot — above a staircase, across a room, outside a window — park the camera there, and then nudge the ghost into place while looking at it properly.

`R` teleports the ghost to three metres in front of the lens, so you can fly somewhere and bring it with you rather than walking it across the map.

## Poses

39 ship in `Config.Poses`, cycled with `E` and `Q`:

* **Everyday** — standing, lying (bed), sitting, sitting (chair), sleeping, working, leaning, hands up, kneeling
* **Social** — smoking, drinking coffee, phone call, texting, clipboard, window shopping, impatient, hanging out, filming, cheering, arms crossed, depressed
* **Work** — guard stand, cop idle, torch patrol, welding, hammering, drilling, mechanic, gardening, sweeping, binoculars, dealing
* **Physical** — push-ups, sit-ups, yoga, jogging, muscle flex, sunbathing, guitar

`Sitting (chair)` is an upright, hands-in-lap seated idle — the one to use when placing chairs.

Add your own with any animation dictionary and clip:

```lua
{ name = 'Welding', dict = 'amb@world_human_welding@male@base', clip = 'base' },
```

{% hint style="warning" %}
A wrong dict or clip name leaves a T-posing ped. The tool checks the animation actually started and reports the exact name to F8 if it did not — so a bad entry fails loudly rather than silently.
{% endhint %}

## Output formats

Press `F` to cycle. All four paste straight into a config:

| Format  | Example                                                       |
| ------- | ------------------------------------------------------------- |
| `vec4`  | `vec4(1762.3680, 2494.2860, 44.6300, 210.0000)`               |
| `vec3`  | `vec3(1762.3680, 2494.2860, 44.6300)`                         |
| `table` | `{ x = 1762.3680, y = 2494.2860, z = 44.6300, w = 210.0000 }` |
| `raw`   | `1762.3680, 2494.2860, 44.6300, 210.0000`                     |

## Height and the ground snap

With `Config.SnapToGround = true` (the default) the copied Z is the ground directly beneath the ghost, not the ghost's own height — so a coordinate you nudged slightly into the air still comes out flush with the floor.

{% hint style="info" %}
Inside an MLO with stacked floors, "the ground directly beneath" can be the floor below. If you are placing something on an upper level and the Z comes back wrong, set `Config.SnapToGround = false` and set the height yourself with `↑` / `↓`.
{% endhint %}

## The prop placer — press `2`

Same controls, but you are moving a ghost prop instead of a ghost ped. `ENTER` drops a solid copy and keeps going, so the room fills up as you work, and `G` copies every placement at once.

| Key             | Action                        |
| --------------- | ----------------------------- |
| `W` `A` `S` `D` | Move, relative to your camera |
| `SHIFT` / `ALT` | Fast / fine                   |
| `↑` `↓`         | Raise / lower                 |
| `←` `→`         | Rotate                        |
| `E` / `Q`       | Next / previous model         |
| `V` / `R`       | Freecam / fetch               |
| `ENTER`         | Place one here                |
| `X`             | Undo the last placement       |
| `G`             | Copy all placements and close |
| `ESC`           | Close **without** copying     |

What lands on your clipboard:

```lua
{ model = `prop_chair_01a`, coords = vec4(1696.8687, 2588.1689, 44.9218, 91.6800) },  -- Chair
{ model = `prop_table_03`,  coords = vec4(1697.2201, 2589.0034, 44.9218, 91.6800) },  -- Table
```

38 models ship in `Config.PropModels` — seating, tables, screens, shop fittings, boxes and pallets, roadworks and site kit. Add any prop you like:

```lua
{ name = 'Server rack', model = 'ch_prop_ch_server_01a' },
```

{% hint style="info" %}
The solid copies are local and non-colliding, and they disappear when you close. Placing props changes nothing on the server — you are drafting a list, not building a map.
{% endhint %}

## Fitting a body to an object

The third tool, reached with `3`, is for a different question: not *where* something goes, but where a body sits **on** it.

<table data-view="cards"><thead><tr><th></th><th></th><th data-hidden data-card-target data-type="content-ref"></th></tr></thead><tbody><tr><td><strong>Fit to Object</strong></td><td>Attach offsets for trolleys, beds and seats — measured in the object's own frame.</td><td><a href="/mango5m-docs/free-resources/mango-positions/fit-to-object.md">Fit to Object</a></td></tr></tbody></table>
