> For the complete documentation index, see [llms.txt](https://docs.rainmad.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.rainmad.com/resources/map-editor-place-anything/using-the-editor.md).

# Using the Editor

A session opens on a free camera with the prop picker along the bottom and a key bar across the top. The bar always says what the keys do right now, including rebound ones, so this page is a map of the parts rather than a list to memorise.

## Getting Around

|                  |                                                                 |
| ---------------- | --------------------------------------------------------------- |
| **WASD**         | fly. Hold **Shift** to fly faster                               |
| **Space / Ctrl** | up and down                                                     |
| **Right mouse**  | hold to fly and look, aiming at the middle of the screen        |
| **Alt**          | hand the mouse to the camera, or take it back for the cursor    |
| **Mouse wheel**  | fly speed                                                       |
| **F7**           | step out and walk what you have built. Press again to come back |
| **Escape**       | closes what is open: a list, then a tool, then the session      |

The cursor and the camera share the mouse. While the cursor is up you click panels and tiles; the game never sees those clicks.

## Placing One Prop

Pick a tile and the prop is in your hand, seated on whatever is under the crosshair.

|                   |                                     |
| ----------------- | ----------------------------------- |
| **Left click**    | put it down                         |
| **Shift + click** | put it down and keep a copy in hand |
| **Q / E**         | turn it                             |
| **F**             | drop it on the ground               |
| **Backspace**     | put it back                         |
| **F6**            | reopen the picker for another       |

The prop sits on the surface under the aim, tilted to it when the surface isn't flat. What was placed is selected, so the handles are already on it.

## Moving What Is Placed

Click a prop to select it. **Shift-click** adds to the selection; the **Box** tool drags a rectangle over several.

|                   |                                  |
| ----------------- | -------------------------------- |
| **Handles**       | drag to move                     |
| **R**             | move handles or turn handles     |
| **G**             | world axes or the prop's own     |
| **F**             | drop it on the ground            |
| **H**             | bring it to the crosshair        |
| **Shift + click** | add to the selection             |
| **Backspace**     | let go of it                     |
| **C**             | duplicate                        |
| **Delete**        | delete. More than one asks first |
| **B**             | undo. **Shift + B** redo         |

The panel on the right has the numbers: typed position and rotation, tint, collision, and the grid and snap switches. Snapping is two things: a grid the button walks through, and edge snapping that pulls a dragged prop flush against its neighbour.

## More Than One at a Time

Three tools take from a pool rather than your hand. Arm one, then pick props from the grid: they go into the pool instead of into your hand, and you can add several.

**Scatter** drops copies while the button is held. Circle sets how wide, speed how many a second, and there's a minimum gap so nothing lands inside its neighbour. It can lean props with the ground.

**Fill area** takes clicks on the ground as corners, paints the shape as you go, and covers what they enclose when you press **Fill it**.

**Along a line** takes clicks as a route and lays props down it when you press **Lay them**: a fence, a row of lamp posts, cones down a closed road. Each one faces along the route, plus whatever turn you set.

All three read the same **Turn** control, which is the offset added to what they work out. A fence panel built across its own heading is corrected once for the whole run.

## The Map's Own Props

Switch **World objects** on and clicks reach the map itself. What is under the pointer is boxed before you click it, in its own colour, so a click never lands on a surprise.

Three things can be done with a piece of map:

* **Hide** it. Gone for everybody the layout is stood up for, and it travels with the layout.
* **Replace with prop.** A hide plus a copy of the same model in the same place, which you can then move, turn, tint or throw away. The game gives nobody a handle on its own scenery, so this is what "moving a wall" means.
* **Look at it** in the viewer.

Not everything can be copied. Most walls, floors and kerbs have no name in any catalogue, and nothing can spawn a copy of a nameless archetype, and the panel says which case it is.

The **Hidden map props** list puts anything back, one at a time or all of them.

## Lights

The **Light** tool puts one where you point. Its panel sets shape (point or spot), colour, range, brightness, cone and edge for a spot, and shadows.

{% hint style="info" %}
A light is a native call every frame, not an object. It exists while a layout is active and this resource is running. No map file can carry one. The same is true of hidden map pieces, a prop's collision switch and the colour of a light inside a drawable. The editor tags all four **Runtime**, and a session can be told not to offer them at all.
{% endhint %}

## Groups

Select several props and **Create group**: they move, turn, duplicate and delete as one thing, and the group's name travels with the layout. The **Placed props** list is where groups are renamed, reordered and taken apart.

## Session Settings

The last button on the tool strip. What is in here is decided once and then left alone:

| Row                | What                                                                                             |
| ------------------ | ------------------------------------------------------------------------------------------------ |
| **Reach**          | the boundary, as a radius from a middle. Widen it, switch it off, or type the middle             |
| **Follows**        | whether the boundary walks with what you place                                                   |
| **Outline**        | whether the boundary is drawn. Your screen only; the rule holds either way                       |
| **Runtime**        | whether the four things a map file cannot carry are offered at all                               |
| **Others**         | whether the other people in the session are drawn where they are working                         |
| **Time / Weather** | held for everybody in the session. Two in the morning under a clear sky is what a shell opens at |
| **World**          | a routing bucket of the session's own, and whether there is any traffic in it                    |
| **People**         | who is in it, invitations, and who may change things                                             |

## Building with Somebody

Invite from the session settings. Anybody connected can be asked, permission or not, since the invitation is yours to give. They get a card with your name and the command to answer with, and they arrive in a session of their own holding your rows: every tool, their own undo, and an id range that can't collide with yours.

Two roles. An **editor** can place, move and delete. A **viewer** watches and can't change anything. The host can change either mid-session, or remove somebody: their copy of the map goes with them and whatever they placed stays.

The layout is the host's. Nothing a guest does saves it, and closing their window is leaving.

## Finishing

**Done** asks what to call the layout, or hands the rows to whoever opened the session. See [Layouts](/resources/map-editor-place-anything/layouts.md) and [Exports](/resources/map-editor-place-anything/exports.md). **Export** on the same screen writes the build out in any of five shapes; see Import & Export.

Cancel throws the session away, and asks first if there's anything to throw.
