Level Editor Guide
Build and edit stages — tiles, enemies, shards, scrolls, demon triggers, and stage properties.
Opening the Editor
Select LEVEL EDITOR from the main menu. The editor opens in fullscreen at 1280×720 on top of the game's logical 320×180 canvas, scaled 4×.
.dat files in the data/ folder next to the executable.
Editor Layout
Click a tile/item to select,
then click the map to place.
Scroll with mouse wheel or drag
- Top bar — file operations, undo/redo, play-test toggle, and stage metadata.
- Palette panel (left, 180px) — five tabs of placeable items. Click a tab to switch category, click an item to select it.
- Map canvas (right) — the 448×218 tile map (4480×2180px world). Left-click to place, right-click to erase. Scroll wheel to zoom/scroll.
- Clicking any already-placed item on the map opens its properties dialog.
Keyboard Shortcuts
| Shortcut | Action |
|---|---|
Ctrl+S | Save stage to .dat file |
Ctrl+Z | Undo last action |
Ctrl+Y | Redo |
← → | Scroll map left / right (in editor) |
Tab | Cycle to next field in a properties dialog |
Enter | Confirm / save dialog |
Esc | Cancel dialog / exit editor |
F1 | Force demon appearance (game mode, for testing) |
F2 | Complete current stage immediately (game mode) |
Palette Tabs
Floor Tiles
The core building blocks of the map. Left-click to paint, right-click to erase.
| Tile | Behaviour |
|---|---|
SOLID | Full collision on all sides. The main floor and wall tile. |
PLATFORM | One-way platform — players and enemies land on top, but can jump up through it and crouch-drop through it. |
LAVA | Instantly kills the player on contact. Can be configured to launch fireballs. |
EXIT | Overrides the portal position — the exit portal will appear on this tile when all shards are collected. |
Items
Collectables and interactive objects placed on the map.
- Shard — the main collectible. Players must collect all shards to activate the exit portal. Each shard has a unique ID (e.g.
SH1). Click a placed shard to rename its ID. - Scroll — displays a multi-line message when the player walks over it. Up to 3 lines separated by
|. The first scroll (SC01) is suppressed during the countdown. - Moving Platform — a platform that travels between two points. Configure speed, direction and distance in its properties dialog.
Triggers
Invisible triggers that activate game systems when the player walks through them.
- Demon Trigger — causes The Demon to appear and scan the level. Click a placed trigger to configure it (see Demon Trigger Settings below).
Decorations
Visual props that have no collision but can interact with game systems.
- 26 generic decorations plus 3 theme-specific decos per theme (30 total theme decos).
- rock_large is special — it blocks the Demon's scan beam completely. The player glows green when hiding behind one.
- Decorations can be placed in front of or behind the player layer using the behindPlayer toggle in their dialog.
Enemies
Select an enemy type from the palette (T0–T79, grouped by theme), then click the map to place. The enemy spawns at the clicked position. Click any placed enemy to open its Enemy Properties dialog.
Stage Properties
Click the stage name in the top bar to open Stage Properties.
| Property | Description |
|---|---|
| Name | Display name shown in the HUD during play. |
| Music | Filename (without extension) of the MP3 track to play. File must be in data/music/. |
| BG | Background preset ID (0–39). 10 themes × 4 variants. See Background Themes below. |
| Shards Needed | Number of shards the player must collect to activate the exit portal. |
| Demon Enabled | Whether the Demon system is active on this stage. Must be ON for demon triggers to fire. |
| Demon Scans | Whether the Demon's scan beams deal damage. OFF = demon appears but beams are decorative. |
Background Themes (BG 0–39)
| BG range | Theme | Variants |
|---|---|---|
| 0–3 | Infernal Caverns | I–IV (stalactites, glowing cracks, lava horizon) |
| 4–7 | Lava Abyss | I–IV (magma, obsidian, molten strata) |
| 8–11 | Bone Cathedral | I–IV (bone arches, chains, carvings) |
| 12–15 | Demon Citadel | I–IV (iron arches, fire pillars) |
| 16–19 | Frozen Torment | I–IV (ice columns, crystal spires) |
| 20–23 | Plague Marshes | I–IV (fungal mist, bog strata) |
| 24–27 | Soul Furnace | I–IV (industrial slag, bellows) |
| 28–31 | Blood Wastes | I–IV (crimson mist, bone fields) |
| 32–35 | Void Abyss | I–IV (star-field, void tendrils) |
| 36–39 | Pandemonium | I–IV (chaos colour shift, all-element mix) |
Enemy Properties Dialog
Click any placed enemy to open its settings. Changes take effect immediately on the next play-test.
Movement
| Setting | Default | Options | Effect |
|---|---|---|---|
| Pattern | 0 — Patrol | 0–9 | Movement behaviour (see pattern table below) |
| Patrol Distance | 60 px | Any value | How far the enemy walks from its spawn before reversing |
| Reverse at Edge | ON ✓ | On / Off | Reverses at platform edges. Off = walks off (triggers despawn portal) |
Movement Patterns (0–9)
| ID | Name | Behaviour |
|---|---|---|
| 0 | Patrol | Walks back and forth within patrol distance |
| 1 | Jump Patrol | Patrols and jumps every ~1.2 seconds |
| 2 | Chase | Walks toward player when within ~120px range |
| 3 | Bouncer | Bounces off all surfaces at a fixed angle |
| 4 | Fly Sine | Flies horizontally with sinusoidal vertical drift |
| 5 | Swoop | Dives at player from above, returns to spawn height |
| 6 | Guard | Stationary until player within ~80px, then charges |
| 7 | Random | Changes direction randomly every 1–3 seconds |
| 8 | Circle | Orbits a fixed point (airborne) |
| 9 | Teleport | Stalks player, teleports 4 tiles behind them every 5s (T15 only uses this effectively) |
Fireballs
| Setting | Default | Options | When active |
|---|---|---|---|
| Fires Fireballs | OFF | On / Off | Enables all settings below |
| Speed | Slow | Slow / Med / Fast | Fireballs on |
| Frequency | 1/s | 1–10 per second | Fireballs on |
| Direction | → | → ← ↑ ↓ ↕ ↔ Random | Fireballs on |
| Size | Small | Small / Med / Large | Fireballs on |
T19 Hell Hound — Additional Settings
Only visible when a T19 enemy is selected.
| Setting | Default | Effect |
|---|---|---|
| Cycles | 2 | Number of approach-retreat cycles before the hound permanently despawns. 0 = one approach and done. |
Demon Trigger Dialog
Place a Demon Trigger from the Triggers palette tab, then click it to configure.
| Setting | Options | Effect |
|---|---|---|
| Mode | Positional / Timer | Positional: demon fires when player crosses this X position. Timer: demon fires after a delay from stage start. |
| Timer (seconds) | Any value | Delay in seconds (timer mode only). |
| Randomise | On / Off | Adds ±5 seconds of random variation to the timer. |
| Sweep Speed | None / Slow / Med / Fast / V.Fast | How quickly the demon's eye-beams sweep across the level. None = demon appears but does not scan. |
Demon Phase Sequence
| Phase | Duration | What happens |
|---|---|---|
| WARNING | 5 s | Alert message appears. Player should find cover. |
| ARRIVAL | 3 s | Demon descends into view. |
| SCANNING | 12 s | Eye-beams sweep at configured speed. Contact deals damage. |
| DEPARTING | 2 s | Demon begins to leave. |
| FADEOUT | 10 s | Demon fades out, music restores. |
Play Testing
Click ▶ PLAY in the top bar to enter play-test mode. The full game runs from the current stage. Click ■ STOP (same button) to return to the editor — your unsaved changes are preserved.
- Press F1 during play-test to force the demon to appear immediately (useful for testing scan positions).
- Press F2 to instantly complete the current stage (useful for testing stage transitions).
- The debug overlay is always active — yellow
T#labels appear above each enemy head. - Portal position (20 tiles right of the first shard) is recalculated fresh each time the stage loads.
.dat File Format
Stage files are plain-text. You can edit them manually in any text editor if needed.
| Line | Example | Meaning |
|---|---|---|
LEVEL n | LEVEL 1 | Level number |
STAGE n | STAGE 2 | Stage number within the level |
NAME … | NAME Gates of Hell | Display name |
MUSIC … | MUSIC 1-1 | Music filename (no extension) |
BG n | BG 0 | Background preset ID (0–39) |
SHARDS_NEEDED n | SHARDS_NEEDED 1 | Shards to collect before portal activates |
DEMON_ENABLED n | DEMON_ENABLED 1 | 0 = off, 1 = on |
SHARD id x y | SHARD SH1 200 2052 | Shard ID, world X, world Y |
SCROLL id x y text | SCROLL SC01 120 2052 Hello | World | Scroll message. Lines separated by | |
ENEMY t p x y pd rev fb spd frq dir sz cd cr | ENEMY 0 0 320 2082 60 | Type, pattern, X, Y, patrol dist, reverse, fireballs, fb speed/freq/dir/size, chase dur, chase respawns |
DTRIG x y mode timer rand sweep | DTRIG 2240 2000 0 30.0 1 2 | Demon trigger: position, mode, timer, randomise, sweep speed |
DECO name x y behindPlayer | DECO rock_large 2210 2100 0 | Decoration placement |
BOSS variant hp spawnSec mode | BOSS 0 5 5 0 | Boss configuration (stage 1-4) |
MAP … END_MAP | 448×218 tile grid. S=Solid, P=Platform, L=Lava, E=Exit, _=Empty |
Editor Tips
- Place the first shard near the start (x ≈ 200). The exit portal always appears 20 tiles (200px) to the right of it — design your stage around that landmark.
- Use Reverse at Edge = OFF for enemies you want to patrol off platforms — the orange despawn portal makes this visible and the enemy respawns cleanly.
- Pattern 4 (Fly Sine) and Pattern 8 (Circle) ignore tile collision — place them above the floor and they'll stay airborne naturally.
- Pattern 5 (Swoop) returns to the enemy's spawn Y after each dive — place swooping enemies high up so they have room to dive.
- Multiple demon triggers can exist on one stage — they fire in order as the player moves right. Use this to create a multi-phase demon encounter.
- The
rock_largedecoration must be placed where the player can actually stand behind it — it needs floor tile beneath it. - Keep at least 280px (28 tiles) clear from the player spawn (x=0) before the first enemy — the game enforces this for spawning safety.
- After editing enemy fireballs, save and play-test — fireball logs are written to
escape_debug.logon the Desktop when logging is enabled in Settings.

