> ## Documentation Index
> Fetch the complete documentation index at: https://docs.rageon.dev/llms.txt
> Use this file to discover all available pages before exploring further.

# Geometry

> Draw boxes, stairs, and other shapes, edit faces, edges, and vertices, and set material and collision on faces.

The shell of a structure and every solid you add to it is geometry. **Create geometry** draws parametric shapes; **Edit geometry** reshapes faces, edges, and vertices of those shapes, of the shell, and of buildings copied from the world map.

## Create geometry

**1. Open the tool and pick a shape**

Click **Create geometry** in the left dock or press `9`. The **Geometry** node opens. Choose a **Shape** and set **Z level (m)** if the base is not on the floor. **Exit tool** (X) in the node closes it.

![Geometry node with Shape set to Box, Z level, and Width, Length, Height, and Divisions parameters](https://mintcdn.com/rageon/_nzjx4zmIQAxf8Hl/images/structures/structures-create-geometry-node.webp?fit=max\&auto=format\&n=_nzjx4zmIQAxf8Hl\&q=85\&s=710028c54e0a61bfe161f905ab686e13)

The Geometry node on Box.

**2. Draw the base, then the height**

Drag the base in the view, release, move the pointer to set the height, and click to confirm. Hold `Ctrl` for no snap. A horizontal **Plane** is complete on release.

**3. Edit the result**

The dock switches to **Edit geometry** with the new object's faces selected. The **Object** section repeats the shape's parameters; each change rebuilds the shape.

![Box selected in the scene with the Modeling tools dock and the Object · Box section](https://mintcdn.com/rageon/_nzjx4zmIQAxf8Hl/images/structures/structures-create-box.webp?fit=max\&auto=format\&n=_nzjx4zmIQAxf8Hl\&q=85\&s=ff892fba5ea42e1de6a47167c0a0b924)

A new box: Selection and Object · Box sections on the right.

**Pointer** and **Align to surface** in the transform bar decide where the base lands. With **Align to surface** on, the shape is drawn on the face under the pointer.

### Shapes

| Shape | Fields |
| - | - |
| **Box** | **Width (m)**, **Length (m)**, **Height (m)**, **Divisions** X, Y, Z. |
| **Plane** | **Orientation** (**Horizontal**, **Vertical · normal X**, **Vertical · normal −Y**), **Width (m)**, **Length (m)**. |
| **Cylinder** | **Radius (m)**, **Height (m)**, **Sides** (3 to 128), **Caps** (**Both**, **None**, **Top**, **Bottom**). |
| **Ramp** | **Width (m)**, **Length (m)**, **Height (m)**, **Slope** (**+Y**, **−Y**, **+X**, **−X**). |
| **Stairs** | **Width (m)**, **Length (m)**, **Height (m)**, **Steps**, **Stair type**. The node shows the rise and run of each step. |
| **Outline** | **Height (m)**. Click the corners instead of dragging. |
| **Flat outline** | None. A flat surface from clicked corners. |
| **Strip along a path** | **Width (m)**. Click the points of the path, then press `Enter` to finish. |

For **Outline** and **Flat outline**, click each corner, then click the first point or press `Enter` to close. `Backspace` removes the last point. At least three points that do not cross are needed. **Outline** then asks for the height like a box: move the pointer and click. **Flat outline** is created as soon as it closes.

![Geometry node set to Stairs with Steps 8, Stair type Closed block, and a rise and run readout](https://mintcdn.com/rageon/_nzjx4zmIQAxf8Hl/images/structures/structures-create-stairs.webp?fit=max\&auto=format\&n=_nzjx4zmIQAxf8Hl\&q=85\&s=5d34d17c1d101dcd7d7213c8b37f073f)

Stairs with Stair type and the rise and run readout.

**Stair type** is **Closed block**, **Open, cut through**, or **Ramped underside**. For steps the ped can climb, see **FLAG\_STAIRS** and **Stair ramp** under [Collision](#collision).

## Edit geometry

Enter with **Edit geometry** (`7`), by clicking a geometry object in the tree, by choosing **Face**, **Edge**, or **Vertex** in the options bar, or right after you draw a shape. `1`, `2`, and `3` switch to **Vertex**, **Edge**, and **Face** while editing. **Back to structure** leaves.

**Selection** in **Structure details** says what is marked. **Position (m)** moves the whole selection by its center, in the coordinates chosen in **Reference** (**World** or **Project**; **Δ model** for a copied map model).

### Box selection

Turn on **Box selection** (`B`) in the bottom dock, then drag a rectangle. Everything whose center falls inside is selected. Without the toggle, `Shift` or `Ctrl` plus drag does the same.

![Bottom dock with Box selection active and a selected face with the move gizmo](https://mintcdn.com/rageon/_nzjx4zmIQAxf8Hl/images/structures/structures-box-selection.webp?fit=max\&auto=format\&n=_nzjx4zmIQAxf8Hl\&q=85\&s=12fae694308f167aeda7eacbca3b95ff)

Box selection armed in Face mode.

Right-click in the view for **Select through** (reaches faces behind others) or **Select visible only**. `Alt Z` toggles them. `L` selects linked geometry under the cursor, `Ctrl L` links to the selection, and `H`, `Shift H`, `Alt H` hide, isolate, and show all.

### Tools

The **Modeling tools** dock holds these. Drag in the view, then click or press `Enter` to confirm. A floating guide shows the value. Each tool switches the selection level it needs: **Extrude** leaves **Vertex**, **Inset**, **Bisect**, and **Knife** go to **Face**, and **Bevel** goes to **Edge**.

| Tool | Key | What it does |
| - | - | - |
| **Extrude** | `E` | Pulls the selection out. `X`, `Y`, `Z` lock the axis. |
| **Inset** | `I` | Drags a face inward to make an inner border. |
| **Bevel** | `Ctrl B` | Rounds edges. The mouse wheel sets the segments. |
| **Loop cut** | `Ctrl R` | Adds cuts across a strip of quads only. The wheel sets the count. |
| **Bisect** | `Shift B` | Slices the selection with a line you draw. |
| **Knife** | `K` | Click two edges of the same face to cut between them. |
| **Slide** | `G G` | Slides the selection along its neighboring edges. |

Options for the active tool appear in the top bar:

| Option | What it does | Default |
| - | - | - |
| **Mode** (**Extrude**) | **Region**, **Along normals**, or **Individual**. | **Region** |
| **Direction** (**Extrude**) | **Normal**, **X**, **Y**, or **Z**. | **Normal** |
| **Segments** (**Bevel**) | 1 to 32. | 3 |
| **Cuts** (**Loop cut**) | 1 to 64. | 1 |
| **Sides** (**Bisect**) | **Keep both sides**, **Remove positive side**, **Remove negative side**. | **Keep both sides** |
| **Close the cut** (**Bisect**) | Fills the cut when a side is removed. | Off |

![Top bar with Mode set to Region and Direction to Normal, the Extrude tool active, and a refused-action notice](https://mintcdn.com/rageon/_nzjx4zmIQAxf8Hl/images/structures/structures-edit-geometry-tools.webp?fit=max\&auto=format\&n=_nzjx4zmIQAxf8Hl\&q=85\&s=cd4e8e2186dc1d435c549aa15addfccc)

Extrude active, with Mode and Direction in the top bar.

Three menus hold the other operations. They are disabled until something is selected.

| Menu | Entries |
| - | - |
| **Close and connect** | **Fill** (`Shift F`), **Grid fill** (`Ctrl F`), **Bridge edge loops** (`Ctrl J`). All three need **Edge** or **Vertex** level. |
| **Clean up and triangulate** | **Merge at center** (`M`), **Merge by distance** (`Ctrl M`), **Triangulate** (`Ctrl T`), **Flip normals** (`Shift N`). **Triangulate** and **Flip normals** need faces in the selection. |
| **Separate and remove** | **Dissolve vertices** (`Ctrl X`, listed only at **Vertex** level), **Split** (`Y`, needs faces), **Separate into object** (`P`), **Delete selection** (`Del`). |

![Clean up and triangulate menu listing Merge at center, Merge by distance, Triangulate, and Flip normals](https://mintcdn.com/rageon/_nzjx4zmIQAxf8Hl/images/structures/structures-edit-geometry-menus.webp?fit=max\&auto=format\&n=_nzjx4zmIQAxf8Hl\&q=85\&s=7e76963416c78e9f9b8e8bee7b7b7ea2)

The Clean up and triangulate menu.

### History

Every action goes into **History (N)** in order. Click a row to open its numbers and mark its components in the view. The eye turns an action off without deleting it, and the trash removes it. `Ctrl Z` undoes the last one. The newest action opens by itself, so you can change its numbers right away: **Distance (m)**, **Width (m)**, **Segments**, **Cuts**, and so on.

![History section with two actions, Inset and Extrusion, and the Extrusion parameters open](https://mintcdn.com/rageon/_nzjx4zmIQAxf8Hl/images/structures/structures-edit-geometry-history.webp?fit=max\&auto=format\&n=_nzjx4zmIQAxf8Hl\&q=85\&s=3ab4c7ff4e0d8fa85081be0f6f280607)

History with an Inset and an open Extrusion.

An action that depends on an earlier one stops working if you turn that one off or remove it.

### When an action is refused

If the geometry cannot take an action, **Action not applied** says why and nothing changes. Change the selection and try again. When an earlier action lost the components it was applied to, **Use current selection** re-targets it to what is selected now and **Remove dependent detail** drops the action that relies on the missing component. **Close notice** dismisses the message.

![Selection and Action not applied sections with a message to select the open outline of the hole](https://mintcdn.com/rageon/_nzjx4zmIQAxf8Hl/images/structures/structures-edit-geometry-refused.webp?fit=max\&auto=format\&n=_nzjx4zmIQAxf8Hl\&q=85\&s=2c3c9fe79f3c4e0db665f2717873c3b0)

A refused Fill with the reason, Use current selection, and Close notice.

### Shapes you can still tune

An object drawn with **Create geometry** keeps its parameters in **Object**. **Duplicate** places a copy beside it. **Convert to editable mesh** swaps the parameters for face-by-face editing, and `Ctrl Z` undoes the conversion. **Remove object** deletes the object after you confirm.

### Edit a building from the world map

**1. Select the model**

In the Map view, turn on **Select map objects** (`Shift M`) and click a building or prop.

**2. Open Actions**

In the card, open **Actions**: **Focus rendering**, **Edit geometry**, **New part with this model**, **Remove from map**.

**3. Choose Edit geometry**

The model is copied into the structure as an editable object named after it, and its faces are selected.

**Remove from map** also hides the original in the exported resource. To bring the original back and keep your edited copy, turn off **Remove from map** in the object's section, or use **Restore on map** in the tree menu. **Restore the map model** goes further: it deletes your copy from the list and restores the original (`Ctrl Z` undoes it). **Convert to prop** is disabled (**replaces the map**) for objects that replace a map model.

### Import a model

Click **Add to structure** (`+`) > **Import model…** and choose a `.glb`, `.ydr`, or `.ydr.xml` file. Each mesh becomes an object in the active part, and **Edit geometry** opens with its faces selected. Save the project first: the model's images are copied into its folder.

## Collision and material

Select faces and scroll to **Material**. One selection with mixed materials reads **Different materials**.

![Material section with No texture card, Library and Import buttons, Type Opaque, and the Collision group](https://mintcdn.com/rageon/_nzjx4zmIQAxf8Hl/images/structures/structures-material-panel.webp?fit=max\&auto=format\&n=_nzjx4zmIQAxf8Hl\&q=85\&s=0f8f4910cd2f3ad186813d7b72d0b00e)

Material with the texture card, Type, and Collision.

Pick the texture with the card or **Library**, or bring your own with **Import**. See [Textures](/projects/structures/textures.md).

| Option | What it does | Default |
| - | - | - |
| **Type** | **Opaque**, **Glass**, **Emissive**, **Emissive at night**, **Cutout (hard alpha)**, or a water type. Glass and cutout without a normal or specular map get a neutral one on export. | **Opaque** |
| **Intensity** | How bright an emissive face glows. Interiors in the game use 6 to 16. | 16 (**Emissive**), 8 (**Emissive at night**) |
| **Normal map**, **Specular map** | Open the library on technical maps. **X** clears a slot. Not shown for emissive types or water. | **— none —** |
| **Reuse material** | Applies a material this structure already uses, with its UV adjustments. Shown when the structure has more than one material. | Current |
| **Repeat (m)** | Size of each repeat on the face. Smaller repeats more. Appears under **UV mapping** once a texture is set. | 1 |
| **Rotation (°)**, **U offset**, **V offset** | Turn or shift the texture on the face. | 0 |

### Collision

| Option | What it does | Default |
| - | - | - |
| **Surface** | **Drawing and collision**, **Drawing only**, **Collision only**, or **Stair ramp**. Drawing only does not go into the `.ybn`; collision only and ramp do not go into the `.ydr`. The ramp goes in a child of the `.ybn` that only the ped sees, on top of the steps. | **Drawing and collision** |
| **Collision material** | The game surface: footstep sound, bullet marks, particles. | **DEFAULT** |
| **Collision flags** | Behaviors such as **FLAG\_STAIRS**, **FLAG\_SEE\_THROUGH**, **FLAG\_NOT\_COVER**. | **None** |

![Collision group with Surface, Collision material, and the Collision flags list showing FLAG\_STAIRS and others](https://mintcdn.com/rageon/_nzjx4zmIQAxf8Hl/images/structures/structures-collision.webp?fit=max\&auto=format\&n=_nzjx4zmIQAxf8Hl\&q=85\&s=65d796a7fe1b542bf9e64d3be0e1cb3e)

The Collision flags list open.

**Collision material** and **Collision flags** are available unless **Surface** is **Drawing only**.

## Troubleshooting

> **Point at a surface or the work plane.**
>
> The pointer found nothing to draw on. Aim at the map, a piece of geometry, or the grid, and check that **Pointer** has them turned on.

> **Dimensions must be greater than zero.**
>
> A size in **Parameters** is 0 or negative. Enter a value above 0.

> **Use at least 3 points without crossing edges, with a minimum area of 0.25 m².**
>
> Add corners to the outline so its edges do not cross.

> **Use at least 2 path points.**
>
> Click at least two points for a strip along a path, then press `Enter`.

> **The selection covers an entire solid; select a region with a boundary.**
>
> Extrude and inset need a region with an edge. Select some faces of the object instead of all of them.

> **Loop cut needs a quad strip. Use Bisect on triangles or n-gons.**
>
> The selection is not made of quads. Use **Bisect** instead.

> **The selection shares vertices with locked geometry. Unlock it to transform.**
>
> Right-click the locked row in the tree and choose **Unlock**.

> **This transformation leaves a face non-planar. Cut the face before deforming it.**
>
> Split the face with **Knife** or **Bisect** first, then move the vertices.

> **Wait for the editor or select faces to apply.**
>
> Select faces first, or wait for the editor to finish.

> **This model has no editable faces. Move the camera closer and try another piece.**
>
> The map model has not loaded. Get closer to it on the Map and try again.

> **This model is already in the project. Select its faces to continue editing.**
>
> You already copied it. Select its object in the tree.

> **Could not import the model: …**
>
> Use a `.glb`, `.ydr`, or `.ydr.xml` file with real faces, not only points or lines, and save the project first.

> **… without a texture. Click to mark them and apply a texture before exporting.**
>
> This blocks export. Click the message in the [Checker](/projects/structures/checker.md) to select those faces, then apply a texture.


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.