Level Editor/Troubleshooting
Answers to common problems, and what the editor's messages mean. Most messages appear in the status line at the bottom of the window; read it first when something seems to do nothing.
Nothing happens when I...
| Message or symptom | Cause and fix |
|---|---|
| Select 2+ brushes (active brush = cutter) | Subtract needs at least two brushes: the ones to carve, then the cutter selected last. |
| Select 2 or more brushes to merge | Select at least two brushes for Merge Brushes. |
| Select quad faces in Face Edit mode first | Convert Face to Displacement works on four-sided faces selected with Edit Face. |
| Select displacement faces first | Remove Face Displacement needs displacement faces selected. |
| Select brushes with adjacent displacement faces | Sew Displacement Edges needs the brushes whose displacements touch. |
| Select the brushes to hollow first / Select what to duplicate first | Hollow and Array Duplicate need a selection. |
| Select the brushes and props the door is made of first (or the button) | Select what the door or button is made of before choosing the menu item. |
| Select what to group first | Ctrl+G needs a selection. |
| A mirror's copy shows its source's model: replace the source. | You tried to change the model of a prop inside a Mirror Node's copy. Change the source prop. |
| Bake NavRegion: no regions in scene | Place a Nav Region first. |
| I cannot click a zone, clip or sound volume | Edit > Click Through ... is on for that kind, or View > Show Zones / Show Collision Brushes is off. Something hidden (H, the cordon, a 2D view's cut) cannot be clicked either; Alt+H shows everything. |
| A click selects the whole group, not the piece | The group has Select As Group on. Pick the piece in the scene tree, or turn on Tools > Ignore Groups. |
| The camera does not fly with WASD | Click in the view first (or hold the right mouse button). The keys go to a text field if one has focus. |
| The scroll wheel does not zoom in the 3D view | In a 3D view the wheel sets flying speed. Fly closer with W; the wheel zooms in 2D views. |
Saving and opening
| Message | Meaning |
|---|---|
| ... holds other files. Choose an empty folder, or a map's folder to replace it. | A map is saved as a folder. Choose an empty folder. |
| ... is not a map folder: it has no TeamSpec meta.json. | Open the map's own folder, the one holding meta.json. |
| ⚠ Unsaved Project! Save your project to enable auto-save | Auto-save only works after the first save. |
| Auto-save paused: ... changed on disk. Save to choose which version to keep. | Files in the map folder changed outside the editor. Save, and the Files Changed on Disk dialog asks whether to overwrite them. |
| Auto-save off: ... did not load cleanly. Save to see what is missing. | Part of the map could not be loaded. Save to see the list; Save Anyway keeps those files exactly as they are. See File menu. |
| Auto-save failed: ... / Error saving map: ... | The folder could not be written. Check there is disk space and the folder is not read-only. |
| ⚠ Missing assets | The map uses a file that is not there. See Missing assets. |
Playtesting
| Message | Fix |
|---|---|
| Set the TeamSpec executable in Settings before launching. | Set TeamSpec Executable Path in Settings. |
| Error: Failed to launch process. | The path does not point at a working TeamSpec.exe. |
| Playtest could not apply: ... | The game refused the change and kept the last version. The reason follows, for example a script outside the sandbox. |
| Playtest timed out / Playtest disconnected | The game stopped answering or was closed. Start a new playtest. |
| A player spawns at the middle of the map | Their team has no spawn points. |
| Players fall forever | Place a World Boundary below the map. |
| Dead players never come back | The server script must call api.respawn_in in _player_died. See Deaths and respawns.
|
Lighting
| Message or symptom | Meaning |
|---|---|
| Nothing to bake, no static geometry found. | The map has no still geometry to bake. |
| Baked N mesh(es); M lie outside the play area | Some geometry far from where play happens was left out of the bake and is lit by probes instead. Usually a stray object far away; delete or move it if it should not be there. |
| The map is too dark to work in | Use View > Headlight or Fullbright, or raise Exposure in Viewport Rendering. These do not change the map. |
| Raising ambient light changes nothing | Baked surfaces ignore ambient light. Add lights or bounces and bake again. |
Export warnings
These appear in the export log. The export still finishes.
| Warning (shortened) | What to do |
|---|---|
| brush ...: convex decomposition failed ... Simplify or split this brush. | The brush's shape cannot be split into collision pieces. Split it into simpler brushes. |
| brush ... encloses no volume: it gets no collision | A flat or broken brush. Give it thickness, or delete it. |
| ...'s ... output names '...', which nothing in the map is called; the game drops it | Fix the output's target name, or rename the entity it should reach. |
| Two doors are named '...'; the game opens only the first (also logic entities, switchable parts) | Give each its own name in the scene tree. |
| Payload track '...' has N anchor(s) and a track needs two; it is not exported. | Add anchors, or delete the track. |
| Payload track '...': anchor '...' repeats marker '...' ... it is not exported. | Marker names on one track must differ. |
| Two payload tracks are called '...'; one exports as '...' | Rename one; the script sees the name given. |
| Path brush '...' makes no solid ... it is not exported. | A path brush needs two anchors and a run that is not straight up. |
| door ... stands on a moving platform; a door does not ride one | Move the door out of the platform. |
| door ... has no doorway polygons ... bots cannot use it | Bake a nav region over the floor under the door. |
| team N has gates but no doorway polygons | The same, for team gates. |
| A nav region with Bake On Export off and no stored bake is skipped | Bake the region, or turn Bake On Export back on. |
| Prop ...: FROM_MESH found no embedded collision, falling back to convex | The model has no collision of its own; it gets a convex hull. Choose CONCAVE if it should be exact. |