If you prefer a video tutorial, click here : https://youtu.be/brkR8vVeSMg
0. Adding Player-Made Maps
You can add maps manually (if you already have the file) or download them from the Steam Workshop.
0.1 Adding Maps Manually
If you have a map file, you can add it like this (doesn't work on Steam Deck!) :

- Go to Custom Maps on the title screen.

- Click Open Maps Folder to open the maps folder in your file manager. You can add map files from other people here.
0.2 Adding Maps from Steam Workshop
- Go to Custom Maps on the title screen.
- Click Steam Workshop.

- On Steam Workshop, you 'subscribe' to things to download them.

- Once subscribed, maps will appear in the map list and are ready to play :

1. Enabling the Map Editor
- Go to Settings :

- Enable Map Editor.
- Load into a map (custom maps are easiest to work with - the main-game map has some hacky stuff in it).
- Press Tab to open the map editor.

2. Basic Workflow in the Map Editor
2.1 Map-Editor Modes
- Tab
- In-game : Open the Map Editor.
- In the Map Editor : Toggle mouse control between camera-look and cursor-pointing.
- Space : Exit edit mode back into the game, spawning at the point you're aiming at.
- Backtick (`, likely the key to the left of 1) : cycle between
- Block Mode : Edit terrain.
- Entity Mode : Checkpoints, props, trigger boxes.
- Layer Mode : Move large sections of terrain.
2.2 General Shortcuts
- Ctrl+S : Save
- F5 : Reload
- Ctrl+Z : Undo
- Ctrl+Y : Redo
- Ctrl+R : Randomly rotate all cube-shaped blocks with the currently selected texture in the currently selected layer.
- Ctrl+L : Open the maps folder with your file manager.
2.3 Loading and Saving

To the top left of the screen you can see :
- The current map name (edit it and press Enter to save as a new file).
- The file dropdown. This lists all built-in maps (e.g.
minimal,eggworld), Steam Workshop maps, and user maps (saved in your maps folder). - Note : built-in and Steam Workshop maps are read-only, but you can save them under new filenames.

3. Camera and Movement (in the Map Editor)
- WASD : Move camera
- Shift : Faster movement
- Q / E : Move up / down
- Z / C : Rotate left / right
(Don't forget : Tab toggles between camera-look and cursor-pointing modes.)
4. Block Tools
4.1
Basic Block-Placer
- Click : Place block.
- Right-Click : Delete block.
- Shift+Click (hold) : Rapid placement.
- Shift+Right-Click (hold) : Rapid deletion.
- Ctrl+Click : Place a block offset one step back from the face you're highlighting.
- Alt+Click : Sample an existing block (eyedropper).
- Scroll Wheel or Shift+Number Key : Change the selected block texture in the left toolbar.
- Ctrl+Scroll Wheel or - / = : Change texture page in the left toolbar.
4.1b Block Shapes

- The top-right toolbar includes ramps and other shapes.
- R : Rotate selected shape.
- V : Flip vertically.
- Do not use the staircase block anywhere the player might roll across it - it doesn't play well with egg physics.
4.2
Plane Tool

Click+Drag : Draw a planar sheet (floor or wall).
Shift while clicking : Push the plane one block into the highlighted surface for a flush fit :

- Right-Click+Drag : Delete a planar region (useful for doors and openings).

- Alt while dragging : Use the initial click point as the centre of the plane rather than a corner.

- When using the tool with the 45° slope-shape selected, you drag the plane along the slope :

4.3
Extrude Tool
- Click+Drag to define a 2D area, then move your mouse and Click to extrude to that depth. Very useful!
- Works on irregular shapes :

- Right-Click+Drag : Nothing to do with extrude, really, more a "delete everything inside this box" tool.
4.4
Box Tool

- Click+Drag : Create a hollow box.
- Shift while dragging : Remove end caps (for tunnels or open boxes).
- Right-Click : Carve out a room.

4.5
Paint Tool
- Click : Apply texture to highlighted block.
- Right-Click or Alt+Click : Sample block texture and shape.
- Shift+Scroll Wheel : Adjust brush radius.
- Shift+Click : Replace all blocks of the pointed-at texture in the current layer with the selected texture (undoable - but be careful).
4.6
Hill-Dropper Tool

- Click : Drop blocks from above to form organic hills.
- Right-Click : Subtract hill-shape from terrain.
- Scroll Wheel : Adjust hill height.
- Shift+Scroll Wheel : Adjust hill width.
- Useful for mountains and natural terrain; can be used to create 'geological'-looking layers.
4.7
Sculpt Tool

Grow or shrink your terrain within a sphere.
- Scroll Wheel : Control intensity.
- Low : Shrink or erase terrain inside the sphere.
- Mid : Tends to square-off terrain.
- High : Grow existing terrain inside the sphere.
- Shift+Scroll Wheel : Adjust brush radius.
4.8
Sphere Tool

- Click : Add a sphere.
- Right-Click : Subtract a sphere (good for caves).
- Shift : Centre sphere on the point you're highlighting.
- Scroll Wheel : Choose texture.
- Shift+Scroll Wheel : Change sphere size.
4.9
Grout Tool

- Click : Smooth terrain by filling in edge voxels using intermediate block shapes.
- Ctrl+Click : Smooth terrain, but all blocks added use the currently selected texture.
- Right-Click : Remove non-cube blocks.
- Shift+Scroll Wheel : Change brush size.

4.10
Planar Drawing Tool
- Click+Drag : Draw on the current horizontal plane.
- Right-Click : Remove blocks.
- Shift+Scroll Wheel : Raise or lower the drawing plane.

5. Entity Mode
Enter Entity Mode by pressing Backtick (`) until the Entity Mode UI appears.

In Entity Mode there are two tools - the Object Tool and the Trigger-Box Tool. Objects are things placed at a single point in the world that you can see, like checkpoints and torches. Trigger boxes are larger invisible areas that trigger an effect when the player enters them, such as playing a music track or displaying a message.
5.1
Object Tool
- Click : Place or select an object.
- Right-Click : Delete an object.
5.1.1
Start-Checkpoint
- Every map must include a Start-Checkpoint.
- This is where the player spawns in custom maps; it looks just like a normal checkpoint.
- The
area_nametag controls the text shown when the player starts a new game on your map. The default value is"CUSTOM_LEVEL_LETS_GO", a localisation tag that amounts to "Let's go!" in English, but you can change it to whatever message you like.

5.1.2
Normal Checkpoint
- Totally normal checkpoint.
- Set the
area_nametag to control the text shown when the player activates it. - You will often want to put checkpoints inside music trigger-boxes so that if a player resumes a saved game, the correct music will play.
5.1.3
End-Checkpoint
- This behaves like a normal checkpoint (only the Nest object can trigger the start/end cutscenes).
- The default
area_nametag value is"CUSTOM_LEVEL_YOU_MADE_IT", which localises to "You made it!" in English - but you can put whatever you like in there.
5.1.4
Torch

Provides a point of light. Handy when things are getting a bit dark - but don't overdo it, as each torch adds a light source and the performance cost can add up.
5.1.5
Star


- Makes a satisfying sound when collected, and displays a running count of stars collected vs. the total number of stars on the map.
- Not used in the main game.
5.1.6
Chair

- Inert geometric object.
- Not used in the main game.
5.1.7
Table

- Inert geometric object.
- Not used in the main game.
5.1.8 Other Objects
There are other objects accessible via the asset_name dropdown in the properties panel, but they have unusual or hard-coded behaviour tied to the main game, so I don't recommend using them in custom maps. (The Nest.tscn object, for instance, has a great deal of specific hard-coded logic and spawns invisible collision geometry during cutscenes.) It's fine to leave them in place if you're modding the main game map, just be careful to not modify these objects or their surrounding geometry.
5.2
Trigger-Box Tool
- Trigger boxes are big invisible areas that do something (e.g. playing music or displaying a message) when the player enters them.

- In the properties panel you can edit various values, including position and dimensions (WUN = West/Up/North, EDS = East/Down/South) :

- You can also move and resize trigger boxes in the viewport using the move gizmo and face resize handles (drag the coloured handles on each face of the box).

- Note that each trigger box has a 1×1×1 'core' that you click to select it. (Technically this core doesn't need to be inside the trigger area, but…why would you do that?)
5.2.1
music
- Starts playing a music track when the player enters.
- Usually you want to have a music trigger at each checkpoint so that the correct music plays when a player resumes a saved game.
- Choose the track from the dropdown in the properties panel.

- Any time you select a music trigger-box, you'll hear a preview of its music.
- You can't add your own music files, but in addition to the main OST there are several hours of bonus tracks included for use in custom maps.
- The OST is here if you want to listen to it outside the game.
5.2.2
arealabel

'arealabel' trigger boxes display a message on screen when the player enters, independently of checkpoints. If the area_name matches a built-in location name (case-sensitive), the game localises it - e.g. entering FOREST displays "Forest of Branching Paths" in English. Otherwise it just displays your text verbatim, so entering Hello, world! displays "Hello, World!".

5.2.3
KILLBOX

- If you enter a killbox, you are internally marked as doomed, and will oof the next time you touch horizontal-ish map geometry (ramps included).
- Drawn in red in the map view for easy identification.
- While doomed, you cannot trigger checkpoints until you restart.
5.2.4
TORCH
While inside this trigger box, the player emits light. Handy for subtly brightening dark areas without placing lots of torch props (which can be expensive to render and visually distracting).

5.2.5
Generic Trigger-Boxes
There are a few other really finicky trigger-box types - what they do is specified by their meta tags. I don't think they're appropriate for general use, so I won't document them. If you're modding the main game map it's fine to leave them in place - but pls don't use them in maps you're making from scratch, as they may behave unexpectedly.
6. Layer Mode
Cycle to Layer Mode with Backtick (`).
- It can be useful to divide large maps into layers.
- Empty layers are shown with a red tint in the layer list so you can spot them easily.
6.1 Layer Visibility
- Shift+Click a layer to hide all other layers; Shift+Click again to restore them.

6.2 Layer Tools
6.2.1
Layer Transform Tool

- Click : Select a layer.
- You can then move, rotate, or mirror/flip the entire layer using the gizmo.
- Note : only one block can occupy a given position - if you drag one layer to overlap another, blocks are going to get deleted from one of the layers!
6.2.2
Layer Assignment Tool
- Click and drag out a box : All visible blocks and entities inside get assigned to the currently selected layer.
- Alt+Click : Select the highlighted layer.
- Useful for correcting blocks assigned to the wrong layer.

6.3
Clipboard
- Click on a layer to copy it to the clipboard.
- Right-Click : Paste the clipboard contents in the indicated position (shown as a purple box).
- Ctrl+C : Copy the currently selected layer to the clipboard.
- You can copy and paste between different map files!

7. Layer List

To the right-hand side of the screen you have the layer list, with the following buttons :
7.1
Move Layer Up / Down
Rearranges layers.
7.2
Visibility
Toggles the visibility of the layer (visible :
, hidden :
).
7.3
Delete
Deletes the layer.
7.4
Merge Up
Merges the layer into the layer above it.
7.5
New Layer
Creates a new empty layer.
8.
Upload to Steam Workshop
When you're happy with your map and want to share it on the Steam Workshop, click the Steam button in the toolbar :

After a moment, you'll see a confirmation message and the Steam Workshop page for your map will open automatically.

The thumbnail is generated from a screenshot of the current view when you save.

If you'd like to customise the listing further, you can do so from that page. The mod is associated with the file name of the map - if you resave the file it will update your map on the Steam Workshop.
9. Feedback and Bug Reports
Does this make sense? I hope so! Feedback and bug reports are always welcome - e-mail me at analytic@gmail.com.