> 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/guide/selection-and-mass-editing.md).

# Selection and mass editing

## Selection and mass editing

Everything on this page works on a **selection** — any number of props at once, in one action and one undo step.

### Making a selection

| Input                   | Result                                                  |
| ----------------------- | ------------------------------------------------------- |
| **Left click** a prop   | Select it                                               |
| **Ctrl + left click**   | Add to / remove from the selection                      |
| **Drag on empty space** | Box select — a screen rectangle takes everything inside |
| **Shift + drag**        | Box select, adding to the current selection             |
| **Alt + drag**          | Box select, removing from the current selection         |

The count appears in the HUD as you go. **Clear** in the mass edit panel drops the whole selection.

{% hint style="info" %}
Box select only takes props that are actually on screen. A prop streamed out at that distance has no screen position and is not selected — which matches what you can see, and is why a box drawn from very far away catches less than you expect.
{% endhint %}

### The mass edit panel

Six tabs. Every action applies to the entire selection.

#### Position

* **Offset** — move everything by X / Y / Z
* **Drop to ground** — every prop lands on the surface below it, individually
* **Align to lowest** — everything moves to the Z of the lowest prop
* **Align to average** — everything moves to the mean Z

Align-to-lowest is for making a row of props sit on one flat floor. Drop-to-ground is for making them follow terrain. They are opposites, and picking the wrong one is the usual cause of a row of floating props.

#### Rotation

* **Rotate** — add an angle to every prop
* **Randomise** — a random heading per prop. This is what stops a hundred placed rocks looking like a hundred copies of one rock
* **Reset** — back to zero

#### Scale

Set a uniform scale across the selection, or a random one within a range.

#### Properties

Apply any property — freeze, collision, alpha, LOD — to everything selected at once. Also **move the whole selection to a layer**.

#### Arrange

* **Align** — flatten the selection onto one axis
* **Distribute** — even out the spacing along an axis
* **Mirror** — flip the selection across an axis
* **Group / Ungroup** — bind props together so they move as one

Align and distribute are the pair that turns "roughly a row" into a row. Place ten bollards approximately, align them on Y, distribute them on X, done.

#### Array

Duplicate the selection into a pattern:

* **Line** — count, step distance, rotation increment per copy
* **Circle** — count, radius, rotation increment

A circle array with a rotation increment gives you a ring of props each facing outward — a fence around a plot, lamps around a square, a stack of pallets in a spiral.

### Editing the selection with the gizmo

**Edit** in the mass edit panel attaches the gizmo to the whole selection. Move, rotate or scale it and every prop follows, keeping its relative position.

### Undo

Mass actions are one undo step, not fifty. The server keeps `Config.Server.MaxUndoStates` states (default 20).

### Copy and paste

| Key          | Action                       |
| ------------ | ---------------------------- |
| **Ctrl + C** | Copy the selection           |
| **Ctrl + V** | Paste in front of the camera |

Copy stores each prop as an offset from the group's centre, so paste reproduces the whole arrangement — a bench with its bin and its lamp — wherever you are looking, dropped onto the ground where the editor can find it.

This is different from **C** (clone), which copies one prop a metre to the side. Clone is for "one more of these"; copy/paste is for "this arrangement, over there".

Both keys are registered through `ox_lib`, so a player can rebind them in the FiveM keybind settings if they clash.
