Field Manual
The complete reference for RUMPUS ENGINE — every tab, section, fold and slider in the level editor, plus the systems behind racing, vehicles, signals, multiplayer and sharing. For guided walkthroughs with one-click example projects, open Help & tutorials on the game's home menu instead.
BasicsGetting started
RUMPUS ENGINE is a single-file browser game studio — build worlds, play them (FPS, racing, top-down, side-scroll), and share them. Nothing installs; the whole game is one page.
The home menu
- Deploy — play the current level (your autosaved work, a loaded file, or the default arena). Its equal twin Build / edit level opens the editor on the same level.
- Multiplayer — host or join a room (see Multiplayer). Community levels — browse and play what other creators have published.
- Play campaign / Load campaign — play a sequence of chained levels with carry-over loadout (in the footer strip).
- Instructions — a quick controls card. Help & tutorials — guided tutorials with loadable example projects. Field manual — this page. Credits — engine libraries plus the asset attributions collected for the current level.
BasicsControls
On foot
| Input | Action |
|---|---|
| WASD + mouse | Move and look |
| Left click / Right click | Fire / aim down sights |
| Shift | Run (hold) |
| Space | Jump |
| C or Ctrl | Crouch — while running, slide (Ctrl toggles, C holds) |
| R | Reload |
| F | Throw grenade |
| V | Melee attack |
| E | Interact — doors, NPCs, pickups, vehicles, mechanisms |
| G | Grab / carry / throw physics props |
| L | Flashlight (when the level enables it) |
| J | Re-read the current objective |
| 1–5 / wheel | Switch weapon / cycle weapons |
| Tab (hold) | Radial Deploy menu (when the level defines one) |
| I | Inventory (carryable items + 3D inspector) |
| M | Big map |
| T | Chat (multiplayer) |
Driving (walk up to a vehicle, press E)
| Input | Action |
|---|---|
| W / S | Gas / brake — braking comes first, reverse only engages from a stop |
| A / D | Steer |
| Space | Handbrake — kicks the tail out for drifts |
| Shift | Boost (if the vehicle has one) |
| C | Chase ↔ cockpit camera |
| V | Camera follows the car ↔ free orbit |
| H | Headlights |
| G | Toggle the ghost lap (during a race) |
| E / Esc | Get out |
Editor
| Input | Action |
|---|---|
| P | Toggle the editor ↔ play the level |
| F | Free-fly camera |
| T | Top-down view (fits the whole arena; scroll to zoom, drag to pan) |
| B · scroll | Toggle the terrain brush (sculpt / paint / scatter); with it armed, the scroll wheel resizes the brush under the cursor |
| 1 / 2 / 3 | Gizmo mode: move / rotate / scale |
| 4 | Toggle proportional (uniform) scaling |
| Shift+D · Alt+drag | Duplicate the selection / duplicate the prop under the cursor |
| Del / Backspace | Delete the selection |
| Ctrl+Z | Undo |
| Ctrl+G / Ctrl+Shift+G | Group / ungroup the selection |
| Shift+A | Quick-add (+) menu |
Gamepads and touch are supported: plug in a controller (press ] to switch between detected pads), or on a phone use the on-screen joysticks and drive cluster — pause → ✿ Customize controls to move or resize any on-screen button.
Rebinding: pause → ⌨ Keyboard bindings to remap movement and every action (click an action, press the new key; picking a key already in use swaps the two; Reset restores defaults). Weapon slots 1–5, Esc and the editor's own keys stay fixed, and on-screen prompts keep showing the default keys.
Controller menus: every menu is playable from the pad — D-pad or left stick moves the focus ring, A selects, B backs out, and left/right tunes sliders and dropdowns. The first press lands on Deploy.
Controller: Start pauses (solo) or opens the match menu (multiplayer). D-pad: up = inventory, down = map, left = melee, right = flashlight. In the supply cache, D-pad picks, A buys, B/Y closes; on the upgrade screen, bumpers or D-pad focus a card and A takes it (keyboard: press 1–3). Look sensitivity, aim sensitivity, stick deadzone and invert-Y live in the pause menu once a pad is connected.
Touch: besides the joysticks — CROUCH toggles, MELEE swings, BUILD opens the deploy radial (tap a slice to place), and hold USE to grab or drop a physics prop. LIGHT, BAG and CHAT appear automatically when a level has a flashlight, an inventory, or you're in a multiplayer room.
Editor referenceEditor overview
Open the editor with Build / edit level on the home menu, or press P during a solo game. The panel on the right is organized into eight tabs; the last tab you used is remembered.
| Tab | What lives there |
|---|---|
| Build | Place shapes, track pieces and searched models; edit the selection (material, transform, animation, physics, vehicle, signals, locks…) |
| World | Terrain, sky, lighting, camera & post-FX, fog, arena size, boundary walls, audio, auto-generate, zones |
| Player | Avatar model, player start point, the character roster |
| Enemies | Enemy types & models, hit colliders, spawn markers, how enemy gunfire looks |
| Gameplay | Objective & rules, pickups, loot, inventory items, the in-game build menu, cutscenes |
| Weapons | Per-weapon models, damage, sounds; impact & tracer effects |
| HUD | Theme colours, fonts, panel style, which HUD elements show, per-element layout, crosshair |
| Save | Save/load, share links, export/import .breach files, campaigns |
Most sections start collapsed — click a header to expand it. The ? button on the editor toolbar opens this manual. Everything you do in the editor is undoable with Ctrl+Z, and the level autosaves in your browser while you edit (toggle on the Save tab).
The menu bar
On a desktop-sized window there is a thin File · Edit · Tools · Help bar across the very top of the screen while you are editing — the same layout you already know from other creative software. It is a shortcut, not a second system: every item drives the exact same control in the panel, so it can never disagree with it. On phone-width screens the bar is hidden and the panel is the whole interface.
| Menu | What it holds |
|---|---|
| File | New level, Save, Import, Export, Copy share link, Clear browser save, Main menu |
| Edit | Undo, Delete all objects |
| Tools | Logic graph, Animation editor, Outliner, Command palette, Settings |
| Help | This field manual, inline help |
If you only want an empty space to build in and would like to keep your world, look and rules, use Edit ▸ Delete all objects instead — that removes the props and leaves every setting alone.
Editor referenceBuild tab
Add shape
+ Box, + Sphere, + Cylinder, + Cone, + Ramp, + Stairs, + Dome, + Tube, + Ring drop a primitive in front of the camera. Every shape gets the full Material editor. The first four use exact box/sphere colliders; the construction shapes (Ramp/Stairs/Dome/Tube/Ring) collide with their real triangles, so you can walk and drive up a ramp or staircase, shelter under a dome (it's hollow — visible from inside), run through a tube, or hop through a ring. Like every primitive they're authored to a 1×1×1 footprint with the base at floor level, so scaling and floor-snapping behave exactly like the box: stretch a Ramp long and low for a drivable slope, or scale Stairs up for building-sized steps. A Pillar and the track pieces are also primitives under the hood.
Track builder
Snap-together race track pieces — covered in depth in Track builder & racing. With pieces placed, the Track appearance panel restyles the whole course at once: road colour, roughness and an optional road texture (with a tiles dial), painted-line colour, the kerb stripe pair, and the barrier colour. Saved with the level; Reset to stock returns the classic asphalt look.
Search free models
One search box finds free 3D models on Poly Pizza (no key needed) and Sketchfab (needs a free API token — enter it once, everywhere else shows “Token saved · change”). Click a result to place it. Every searched asset is recorded for the level's Credits screen automatically.
Object & selection
With something selected, this section shows: swap/replace model, and the eight folds that give a prop behaviour — animation, locks, signals, dialogue, vehicle, joints, mechanisms, physics & destruction.
Material
For shape primitives: colour, texture map with U/V tiling and rotation, shininess, metalness, emissive glow — and Opacity. Opacity below 1 makes the shape see-through: glass = low opacity + high shininess, frosted plastic = mid opacity + low shininess, and a faint pane at the minimum (0.15) reads as a force field. A transparent prop stays completely solid — you can stand on a glass floor and bullets still hit it. Opacity saves with the level and carries through share links and multiplayer like every other material setting. Imported models keep their own materials — the section says so instead of hiding.
Transform & Handles
Transform is the numeric version of the gizmo: exact position, rotation and scale fields. Handles pick the gizmo mode (move / rotate / scale — also 1/2/3) and proportional scaling (4).
Groups
Every prop's Tag now sits at the top of Object & selection (and stays in the Signals fold — they edit the same tag). Ctrl+Shift+C collapses every editor section at once.
Outliner (scene hierarchy)
Press O (or the list button on the editor toolbar) for the Outliner — the whole placed scene as one panel: props, lights, enemy spawns, turrets and pickups, each with its tag. As levels grow this is the fastest way around:
- Search matches names, tags and folder names; the tag dropdown narrows the list to one tag.
- Folders: select some props, then use the Move → dropdown in the Props group to file them into a folder (or create a new one) — or just drag a row onto a folder (drop on the Props header to un-file it). Folders save with the level. Double-click a folder to rename it; a folder's eye/padlock hides or locks everything inside at once.
- Eye hides an object while editing only — deploys and play always show everything. Great for getting a roof out of the way.
- Padlock locks an object: viewport clicks and marquee boxes pass straight through it, so a big backdrop stops stealing every click. A locked object can't be selected or moved at all until you click its padlock again.
- Select all of a type: the grid button on a type header (or a folder) selects everything it contains — filter first to select just that slice (e.g. every prop tagged door).
- Double-click a prop or light to name it; names save with the level and make search actually useful.
Select multiple props and press Ctrl+G to group them — the group moves, rotates, scales and duplicates as one. Ctrl+Shift+G ungroups.
Prefabs
Turn any configured selection into a reusable component — a door with its trigger, an elevator, a trap, a whole furnished room. Select the props, type a name in the Prefabs section and hit Save selection: the capture keeps everything — signals, mechanism animation, physics and joints, vehicle tuning, locks, dialogue, materials. Place drops a copy 8 m ahead of the camera; every copy arrives grouped (moves as one) and heights are terrain-relative, so a room built on flat ground sits correctly on a hillside.
Your prefab library lives in your browser and follows you across levels — and every level embeds the prefabs it uses, so a shared or community level brings its components along (they join the library of whoever opens it, never overwriting same-named prefabs of their own).
Editing a prefab: change any placed copy — move parts, retag, recolor, even add new props to its group — select it and press Update on that prefab's row. The definition rewrites and every other copy in the level follows. Parts you deliberately changed on one specific copy (a raised panel, a renamed tag) are detected as local overrides and left exactly as you authored them — the toast reports how many were kept. Moving a whole copy around the map never counts as an override. Detach disconnects a copy so future updates skip it; × removes a prefab from your library (placed copies stay in their levels).
Editor referenceObject folds — giving props behaviour
Select any prop on the Build tab and open Object & selection. Eight folds, in panel order. (Signals and Mechanism get their full treatment in Signals, locks & mechanisms; Vehicle in Vehicle tuning.)
Animation
Plays a model's built-in clips. Pick the clip (or all clips at once), then when it plays — Auto (from level load), E Activate (player interacts), or Signals only (waits to be targeted) — and how: ⟳ Loop, ⇄ Ping-pong, or → Once. Built-in shapes have no clips (use Mechanism to move those); for models without animations, the Sketchfab search has an "Animated only" filter.
Lock
Lock picks the required key (red / blue / gold / green); pressing E on the prop then needs that key in hand — place a matching key pickup pad somewhere findable. Consume key on unlock spends the key (for one-key-one-door puzzles; off = a master key). A prop unlocks once per deploy, for everyone in MP.
Rig an imported model
A model you import is usually just geometry — no skeleton, so the animation editor can only move it as one piece. Select the prop and hit 🦴 Auto-rig model (T-pose) (in the Animation fold, beside the animation editor button): drop a marker on eight joints — chin, groin, both elbows, both wrists, both knees — and RUMPUS ENGINE builds a full humanoid skeleton and skins the mesh to it. After that the animation editor keyframes its arms, legs and spine like any character, and every custom clip in the level retargets onto it. It's the usual way to turn an imported character into an NPC.
The rig belongs to the model, not to one copy. Props share one loaded copy of each model, so the markers are stored against the model's URL — every copy of that shopkeeper stands up the same way, and the level saves one marker set however many you placed. Copies already standing in the scene pick up the new skeleton when the level reloads; a fresh one is rigged the moment it spawns. The same rigger is on the Player tab and the Enemies tab for those models. Works best on a model standing in a T-pose or A-pose.
Dialogue (NPC)
Name (shown over the prompt) + one line of dialogue per row (up to 120 × 200 chars); the player presses E to advance. The first line also fires the prop's On E signals — so a conversation can set the objective, drop a checkpoint, or open a door as it starts.
Replies, conditions & jumps
That's still all a simple NPC needs. When you want the player to answer, six marks turn the same box into a branching conversation — nothing else about it changes, and a script written before this still reads exactly the same way.
| Mark | What it does |
|---|---|
> text -> label | A reply button on the row above it. Up to six; the player clicks one, taps it, or presses 1–6. -> end finishes the conversation. Leave the arrow off and it just carries on to the next row. While replies are showing, E does nothing — the player has to answer. |
#label | Names the next row so a reply can jump to it. Not a line of dialogue itself. |
[if expr] | At the start of a row: skip that row unless it's true. At the end of a reply: hide that reply unless it's true — a locked option simply isn't offered. |
-> label | Jump instead of falling through into the next branch. Write it at the end of a line (I felt sassy once. -> end) or on a row of its own — both work. -> end stops the conversation there. It only counts as a jump when it's a single bare label at the very end of the row, so an arrow used as punctuation mid-sentence is left alone. |
{set name = 2} | Write a Logic variable when the row is shown or the reply is picked. + and − work too: {set coins + 1}. |
{event doorOpen} | Fire a Logic event — the same pulse an On event node catches. This and {set} are the bridge: a conversation can drive your whole graph. |
A condition compares two things with == != < <=
> >=. Either side can be a number, a Logic variable, or
item:someId — how many of that inventory item the player is carrying.
[if hasKey] with no operator means “it has been set at all”. An unset variable reads as
0, so a condition is never comparing against nothing.
Have you found the brass key?
> Here it is. -> gotIt [if item:brassKey >= 1]
> Still looking. -> notYet
> Leave. -> end
#gotIt
Then the vault is yours. {set questStage = 2} {event vaultOpen} -> end
#notYet
[if questStage >= 1] You said that last time.
Keep looking. It glints in the dark. -> end
#label below it — so picking the first reply plays every answer in the file. End each one with
-> end (or a jump). The editor watches for exactly this and warns you under the box, along with
any jump pointing at a #label that doesn't exist.Rows that start with a reply and have no line above them render as a bare choice prompt — useful for “what do you do?”. A label that doesn't exist ends the conversation rather than looping. Everything the player sees is escaped, so a shared level can't inject markup through a line or a button. Pair this with values that carry over and an NPC can remember you between levels.
Joint (physics)
| Control | What it does / how to use it |
|---|---|
| Physics joint (hinge) | Hinges the prop so it swings under physics. The prop must also be Dynamic (Physics fold) or the joint does nothing — the editor warns. |
| Anchor to | Blank = pinned to a fixed point in space (doors, see-saws). A prop tag = chained to that body — pendulums, rope bridges, and towed trailers (anchor to a drivable car's tag, keep axis Y, put the hinge at the trailer's front tongue; the car pulls it with real physics). |
| Hinge axis + X/Y/Z | Y = door, X = see-saw, Z = paddle. The offsets move the hinge point from the prop's origin — e.g. half the width so a door hinges at its edge. The cyan marker shows the live hinge point in the scene; the ring + line show the swing axis. |
| Limit the swing angle | Min/Max (±180°) — stop a door at 90°, a see-saw at ±25°. |
| Trailer tracking | 0–1: simulates tyre grip so a towed trailer trails straight instead of swinging out (0 = free hinge). It still yields in turns — raise it if the trailer whips around, lower if stiff. It centres on the angle it has at Deploy, so place the trailer in line behind the car. |
| Motor speed / strength | ±720 °/s drives the hinge (0 = free swing) — powered wheels, auto-closing doors, spinning hazards. |
Joints take effect on Deploy.
Physics & destruction
| Control | Range (default) | What it does / how to use it |
|---|---|---|
| Dynamic | off | Falls, tumbles, stacks on floors/ramps/crate tops, reacts to shots and rams. Resets to its authored spot on Deploy. Needs the page served over http(s) — file:// blocks the physics engine. |
| Weight | 0.05–200 | Heavier = harder to knock around, throws shorter, hits harder under Crushing-props rules. |
| Grabbable | on | Players can pick it up with G, carry and throw it. Grab label replaces the default prompt ("Ancient Tome — [G] to read"); Grab distance sets the reach. |
| 🔥 On fire | off | Burns with flames from level load and hurts anyone touching it (Burn dmg 0–60/s). For a barrel you shoot to ignite, leave this OFF and give it an Explosive Fuse instead. |
| Breakable | on | Shatters when shot. Health (1–2000) sets shots-to-break (refills each Deploy); Break style: Shatter = physics debris (with Pieces 3–90, Size 6–30%, Shards/Cubes shape), Puff = a quick burst + vanish (cheaper — use it for clutter). |
| 🎯 Objective target | off | Must be destroyed to win a Destroy mission; glows with a red beacon in play. |
| 💥 Explosive | off | Detonates when destroyed or on hard impact. Radius (2–20 m) + Damage (10–200) with falloff — hurts you too, and chain-reacts nearby explosives. Impact = the collision speed that sets it off (0 = shoot-only); Fuse = 0 blows instantly, above 0 a shot lights it and it blows after the fuse — shoot it, watch it catch, run. |
Editor referenceWorld tab
Sections: Environment · Auto-generate · Zones
Environment
Movement
Global player physics: Walk speed (4–60) · Run speed (4–100) · Crouch speed (1–40) · Jump (0–30) · Launch power (0.25–4, jump-pad multiplier) · Gravity (5–80) · Eye height (0.4–20).
Lighting — control by control
| Control | Range | What it does / how to use it |
|---|---|---|
| Sun (directional) | 0–4 | The main shadow-casting light's strength. 0 kills direct light entirely (flat, moody); ~0.9 default; 2+ is harsh desert noon. This is the only light that casts shadows. |
| Sun direction ° | 0–360 | Spins the sun around the map — every shadow swings live as you drag. Match it to the visible sun in your HDRI sky, or aim shadows across your racing line for drama. |
| Sun height ° | 5–89 | Angle above the horizon. 10–20° = long golden-hour shadows; 60°+ = tight noon shadows. Floored at 5° because a horizontal sun degenerates the shadow map. |
| Sky (ambient fill) | 0–3 | Hemisphere fill from above — lifts everything the sun doesn't reach. Low values make shadows read near-black. |
| Brightness lift | 0–2 | A flat ambient boost on top of everything. Use sparingly — it flattens contrast fast. Prefer raising Sky fill first. |
| Sun / Sky light colour | color | Tints direct light and the ambient fill separately. The default fill leans cool teal; pick a neutral grey to remove the cast, warm amber for sunset scenes. |
| Day/night cycle | on/off | The sun crosses the sky during play: dawn → noon (70° up) → dusk → midnight (below the horizon). Twilight ramps smoothly, the horizon crossings go golden, nights cool to a blue moonlight floor — dark but never black. Fog and flat skies dim after dark, and cars with headlights switch them on automatically when entered at night. Turning it off (or opening the editor) restores your authored sun instantly. |
| Cycle length s | 30–1200 | One full day+night. 30–60s = timelapse showpiece; 240 (default) = a day per 4 minutes; 1200 = a slow ambient drift across a long session. |
| Start at | Dawn/Noon/Dusk/Night | Where in the cycle each deploy begins. Start at Dusk for a level that slides into darkness mid-mission. |
Tip: the day/night cycle can't dim an HDRI sky texture (only fog, lights and flat-color skies) — for convincing nights, use a plain sky. Sun direction still sets where dawn breaks when the cycle is on.
Camera & view
Field of view (50–110) · View distance (60–2000 — the hard cutoff where geometry stops drawing; raise it for big racing arenas) · Fog density (lower = see farther into the dark) & colour · ground grid toggle. Depth of field: Focus distance = how far away stays sharp, In-focus range = the depth kept sharp around it, Blur strength = how soft everything else goes. Post-processing: Bloom + Bloom threshold (how bright a surface must be before it glows), Motion blur (trail strength), Vignette, Film grain, Saturation, Contrast — they all compose, DoF included, and they save with the level (the on/off switch is each player's preference).
Sky
Browse Poly Haven HDRIs in-editor or paste any equirectangular .hdr/.jpg URL
(an .hdr lights reflections too); presets Park / Mountain / Room / None (None = flat fog-colored sky).
Reflection strength (0–3) sets how strongly the sky shows up on metallic floors and walls — 0 for fully
matte scenes. Sky rotation° spins the panorama to aim its sun or horizon features.
Weather — control by control
| Control | Range | What it does / how to use it |
|---|---|---|
| None / Rain / Snow | — | Rain renders as line streaks that lean into the wind and stretch with fall speed; snow as soft round flakes that drift and sway per-flake. Both are one recycled particle layer riding the camera — density halves on phones automatically. |
| Amount | 0.1–1 | Particle density. 0.2 = light drizzle / flurries; 1 = downpour / blizzard. |
| Size | 0.5–2 | Streak length (rain) or flake size (snow), applied live as you drag. |
| Wind | 0–3 | 0 = dead calm (rain falls straight, snow just sways); 3 = storm — rain lies hard over, snow streams sideways. |
| Wind dir ° | 0–360 | Which way the wind blows. Line it up with your waterfall spray, flag props, or just against the player's line of travel for drama. |
The layer follows the camera and falls indoors too — keep sheltered scenes on None, or accept it as "atmosphere". Storm recipe: Rain, Amount 1, Size 1.4, Wind 2.5, day/night cycle parked at Dusk.
Floor & terrain
Floor colour / roughness / metalness, texture with tile W/H and rotation, and a texture search. Terrain: Height (0–18) and Detail (1–8) with Generate / Regenerate / Flatten, plus a terrain brush painted directly onto the ground — Raise / Lower / Smooth sculpt the height, Paint blends materials, and Scatter plants props. A colour-coded cursor ring follows your pointer showing the brush radius; in Paint mode the inner ring is where full strength ends and the soft edge begins, in Scatter mode it shows the planting spacing.
Material painting (the Paint brush mode)
Make the base floor your ground material (say, tiled grass), then paint up to three more textures straight onto it — a dirt path, a stone plaza, scorched earth. Pick a Layer, give it a texture (URL or the built-in free-texture search) and a Tiles count, then drag on the floor. It works on flat floors and sculpted terrain alike, and the result saves with the level (share links, gallery, multiplayer).
| Control | Range | What it does / how to use it |
|---|---|---|
| Layer 1 / 2 / 3 | — | Which paint layer the brush writes. A ● marks layers that already have a texture. Where layers overlap, the higher-numbered layer paints over the lower. |
| Tiles | 2–120 | How many times this layer's texture repeats across the arena — match it to your base floor tiling so the scale reads consistently. |
| Brush size | 2–40 | Radius in metres. Big for clearings, small for a winding footpath. |
| Soft edge | 0.05–0.95 | The blend band at the brush rim. Low = crisp painted edge; high = the grass-fades-into-dirt look. This is the "soft edges" dial. |
| Flow | 0.05–1 | How much each pass lays down. Low flow + repeated strokes builds up like an airbrush — great for subtle wear down the middle of a path. |
| Erase | — | The same brush removes the selected layer's paint instead of adding it. |
Path recipe: base floor = grass texture; Layer 1 = dirt, Tiles ≈ your floor tiling, Brush size 4–6, Soft edge 0.6, Flow 0.4 — then drag your route in two or three slow passes.
Landscape scatter (the Scatter brush mode)
Plant randomized props by dragging: trees, bushes, rocks — anything. Fill up to three slots, either from the free-model search (credited automatically) or with Use selected prop, which clones whatever's selected at its exact scale — including built-in shapes. Each slot has its own Size dial: for searched models it's the real-world size in metres (default 7 — tree height; crank it to 25 for giants), for cloned props it's a multiplier on their captured scale. Each pass drops Density (1–6) props at random spots inside the brush circle, each randomly rotated, varied by Size jitter (±0–60%), and sat on the terrain — a slow drag along a hillside plants a treeline.
Scattered props are normal props: marquee-select to move or delete them, undo works, and they save with the level. Budget note: each searched model adds a draw call — a few dozen trees is fine, hundreds will cost frames. Scattered primitives (rocks from spheres, fence posts from cylinders) are basically free thanks to instancing. Forest recipe: slot 1 = a tree, slot 2 = a second tree variety, slot 3 = a bush; Density 3, Size jitter 0.4, Brush size 15 — then wander the map edge in one slow pass.
Walls & arena
Show boundary walls (off = invisible but still solid), wall material/texture controls, and Arena size (15–2000) — half-width of the playable square. Racing levels usually want 300+.
Audio
A looping music track plus per-event sound rows: grenade explosion, coin pickup, powerup pickup, jump, hit marker, enemy kill (with per-enemy-type overrides), player hurt, and the car set — engine loop, brake, skid, boost. A built-in Freesound browser searches free sounds; each pick is credited automatically.
Auto-generate
Procedurally builds a starting layout (cover, buildings, scatter) you then edit by hand. There's also an AI scene builder — describe a scene in a sentence and it searches and places matching models (works best with a Poly Pizza or Sketchfab key).
Zones
Paintable volumes under World → Zones — pick a type at the top of the section, then + Add (at me) drops one where you stand. Triggers (see below), Audio zones (positional sound while inside a radius: URL, volume, loop), Death zones (instant kill between Base Y and Base Y + Height — lava, pits, out-of-bounds), Jump pads (launch on contact, scaled by the Movement fold's Launch power), Ladders (climbable volumes: W up, S down, jump to hop off; Facing sets which side you step off at the top), and Fire zones (damage per second inside, with a full particle look: density, size, hue, turbulence, wind, saturation, sparks, smoke mode — hue 30 is natural fire, 210 blue, 285 purple; saturation 0 turns it into grey smoke).
Triggers — “when something gets here”
Every other zone is a fixed behaviour: a death zone kills, a jump pad launches. A trigger does nothing by itself — it fires a Logic event and hands the moment to your graph, which is where your game actually lives. Before triggers the only things that could start a chain were match start, a timer, an enemy dying, a wave starting, or the player pressing E on a prop. Now you can say “when the player reaches here.”
| Control | What it does / how to use it |
|---|---|
| Event | The Logic event name it fires, e.g. reachedVault. The field shares the graph's event dropdown, so pick a name you already use instead of retyping it — and any name you type here shows up in the On event node's list. A trigger with no event name does nothing, and the panel tells you so. |
| When | Enters fires on the frame something crosses in (not every frame it stands there). Leaves is the mirror. Stays in pulses on a repeat interval for as long as something is inside — use it for damage-over-time, a capture point ticking up, or an alarm. |
| Who | Player, Enemy, or Anything. In co-op, “Player” means any living teammate — a door opens for whoever reaches it first, and a downed teammate doesn't hold it open. |
| Radius / Height / Base Y | A cylinder, exactly like the other zones: it spans Base Y up to Base Y + Height. Height matters — a short trigger can be jumped over, and a trigger on a balcony ignores the floor below it. Drag the blue dot with the move gizmo. |
| Repeat every | Only used by Stays in: seconds between pulses (0.1–60). |
| Only once | Fires at most once per match, whichever mode it's in. Restarting the match re-arms it, so a retry plays the same as a first attempt. |
The whole loop, end to end: drop a trigger at the vault door, set its event to reachedVault, then in
the Logic tab add On event reachedVault → Show message (or Open door, Spawn, Play cutscene, Set variable —
anything the graph can do). Triggers are evaluated by the host in multiplayer, and never while you're editing or paused.
Water zones — control by control
| Control | Range | What it does / how to use it |
|---|---|---|
| Radius | 1–120 | Footprint of the water cylinder. Puddle ≈ 2, pond ≈ 8–15, lake 30+. Chain several round zones for a winding river. |
| Depth | 0.05–20 | Water fills from Base Y up to Base Y + Depth; the animated surface sits on top. 0.05–0.3 = a glossy visual puddle; 0.3–1.2 = wading (players slowed, gravity still applies); 1.3+ = swimming (buoyancy, Space strokes up, C dives, the screen tints while your eyes are under). Deep water also brakes falls — jumping off a cliff into a deep pool is safe by design. |
| Base Y | −20–40 | The floor of the water volume. For a lake in a sculpted basin, set it at the basin floor so the surface lands at natural shore height. |
| X / Z | ±2000 | Exact placement (the zone also drops where you stand when added). |
| Water color | color | The deep tint. Murky green for swamps, deep teal for lakes, near-black for horror. The surface also picks up a sky tone via its fresnel and a glint from your actual sun direction — and the whole body follows the scene lighting: Sun/Sky sliders brighten or darken it, and the day/night cycle dims lakes and falls through dusk into a faint moonlit sheen. |
| Opacity | 0.1–0.95 | Low ≈ clear shallows (you can see the bottom); high ≈ opaque depths. Pair low opacity + tiny depth for puddles. |
| Waves | 0–2.5 | Ripple strength. 0 = glass (mirror-calm), 1 = default chop, 2+ = agitated. Purely visual. |
| Flow dir ° / Flow push | 0–360 / 0–12 | Turns the zone into a stream: the current pushes swimmers along Flow dir at Flow push strength, and the ripples visibly scroll with it. ~3 = lazy river you can swim against; 8+ = rapids that sweep you away. 0 push = still water. |
Water is mechanical, not just visual: cars slow in it (light splash → 45% of top speed in the shallows → 18% in deep water) and throw bow spray; dynamic props bob to the surface and float; enemies and bots wade at roughly half pace — funneling hostiles through a river is a legitimate defensive design. One draw call per surface, so lakes are phone-friendly.
Waterfalls — control by control
They live inside the Water tool, below the zones list. Each fall is two layered sheets of streaming columns (the back layer runs slower and dimmer for depth) plus a churning foam pool.
| Control | Range | What it does / how to use it |
|---|---|---|
| X / Z / Top Y | — | Where the lip of the fall sits. Put Top Y at the cliff edge height. |
| Drop | 1–60 | How far it falls. Match it to the cliff so the foam pool lands at the base (pool sits at Top Y − Drop). |
| Width | 0.5–60 | Sheet width. 1–2 = a rivulet, 6 = default cascade, 20+ = a broad curtain. |
| Facing ° | ±180 | Rotates the sheet — set it flush against the cliff face it pours over. |
| Tint / Opacity | — | Water color and sheet density. Low opacity + slow speed reads as a gentle veil; high opacity + fast speed as heavy whitewater. |
| Speed | 0.1–4 | How fast the water streams down (also scales the streak animation). |
| Splash | 0–2 | Foam pool intensity — how hard the base churns. |
| Pool width | 0.2–2.5 | Foam pool size as a multiple of the sheet width (default 1.15 spans the full fall). The pool is elliptical — wider along the sheet than out from it. |
| Sound URL / Volume | — | A loopable waterfall sound (Freesound: search “waterfall loop”). Volume falls off with distance automatically, and bigger falls are audible further; it plays through the SFX bus so master volume and mute apply. |
Standing in the sheet pushes you down into the plunge pool — pour a fall into a deep water zone and the combination is safe to ride down; onto dry ground, the landing is on you.
Editor referencePlayer tab
Sections: Handles · Object & selection · Transform · Characters
- Player avatar — import any model as the third-person body; scroll in the preview to zoom.
- Player start — drag the blue marker to set where the run begins; Facing° (−180…180) sets the initial look direction.
- Characters — the roster of player & enemy character models, with animation-slot mapping (clips are grouped by taxonomy: locomotion, combat, hits, deaths…). Characters picked here appear in multiplayer's CHARACTER menu too.
- Slide on touch — tap CROUCH while sprint-running; a standing tap still toggles crouch. On a controller the bag and item inspector are fully navigable: stick/D-pad moves the ring, A opens/uses (including Use — hold & place), B backs out.
- First-run tutorial — your first solo deploy shows a small coach pill (Move, Look, Fire, Jump, Sprint, Build menu); each step ticks off when you do it, the wording matches your input device, and the ✕ dismisses it for good.
- Model loading bar — picking a Sketchfab or Poly Pizza model shows a live progress pill (percent and MB) while it downloads, so you know it's coming.
- Joint tweaks — models that import with bent wrists, A-pose arms or twisted forearms can be fixed in-app: pick a bone on the Player tab (Joint tweaks), nudge X/Y/Z in degrees, and the offset rides on top of every animation. Live in the preview, saved with the character.
- Auto-rigger — a static, unrigged humanoid model (T-pose or A-pose) becomes a fully animated character without leaving the game. Load the model on the Player tab or an Enemies-tab slot and press Auto-rig model (T-pose) (each enemy type keeps its own markers; roster characters inherit the Player tab's rig when you add or update them): a Mixamo-style modal shows the model front-on — click chin → wrists → elbows → knees → groin (with Use Symmetry on, one click per pair fills both sides; drag to turn, scroll to zoom, click a step row to re-place it). AUTO-RIG fits a full humanoid skeleton to your markers, computes skin weights automatically (weights blend smoothly across knees and elbows and are diffused along the mesh surface, so deep bends curve instead of creasing), and switches the animation library on — the model walks, runs, crouches and shoots immediately. The markers are a few numbers saved with the level, so the rig rebuilds on every load; works at any model scale and with any rest pose (T or A — library clips align to the model's rest automatically). Blocky/stylized models deform best — fine-tune joints afterwards with Joint tweaks if needed.
- Animation editor — author your own skeletal clips entirely in the browser (desktop only; no Blender or
Mixamo needed). On the Player tab press 🎬 Animation editor: the model opens in a full-screen workspace with a
bone tree (friendly names, search), an orbit viewport (click a joint to select it, drag the selected joint to
rotate — hold X/Y/Z for a local axis, Shift-drag the hips to move them), an inspector
(exact angles, reset, key buttons) and a timeline (scrub, play with Space, drag keys, snap-to-frame,
K keys the selected bone, Shift+K keys the whole pose, Auto-key writes keys as you drag).
Clips save into the level (share codes, multiplayer and campaigns carry them) and appear in every per-state clip
picker next to built-in and library clips — or assign one directly from the editor's Assign panel (idle, walk,
reload, death, any state). Because clips are stored against the engine's normalized skeleton, the same clip retargets onto
any humanoid model. Ctrl+Z undoes inside the editor; deleting a clip warns where it's assigned.
Generate with AI — press ✨ AI and describe the motion in plain language
(“lifting a heavy box: start standing, bend down, grab it, then stand back up still holding it”).
Claude blocks it out as real keyframes on this model’s skeleton — it writes anatomical joint angles,
the engine converts them and clamps them to real joint limits, and the result drops onto the timeline for you to
scrub, deepen, retime and polish like any clip you authored. Nothing is saved until you press SAVE CLIP. Works on
props too (whole-model motion for doors, crates and vehicles). Needs your own Anthropic key —
add it under Settings → API keys.
Then keep going: the panel stays open and switches to Refine this clip — say
“bend deeper at the bottom”, “hold the grab a beat longer”,
“make the stand-up slower and heavier” and the clip is revised in place, as many passes as
you like (Ctrl+Enter to fire, Ctrl+Z to step back a pass). Refining reads
your clip back as joint angles, so it works on any clip — one you generated, one you keyframed by hand,
or a Quaternius clip you pulled in with Edit existing (“make this walk bouncier”).
Overlap & follow-through (on by default) drags each bone a few frames behind the one it hangs from, so the
hips lead and the hands and feet trail — the difference between motion that reads alive and motion where
everything snaps on the same frame. Turn it off for deliberately mechanical or robotic movement.
Edit an existing animation — the Edit existing… dropdown copies any clip already on the model
(its own clips, or a retargeted Quaternius library clip) into a new editable custom clip: it samples the clip
into keyframes (automatically thinned so it's hand-editable, not one key per frame), names it “<clip>
(edit)” so the original is never touched, and drops you straight into tweaking it. Take the pack's walk, adjust
the arm swing, save — your version plays in its place. Production tools: Mirror pose / Mirror clip (left↔right), Copy/Paste pose and
Copy/Paste keys at the playhead, a per-clip Curve mode (smooth / linear / step), Ghosts
(onion-skin skeletons at the previous and next keys), Export/Import of
.rumpusanimfiles to share clips between levels and creators, and timeline events — fire a sound (footsteps, casings, reload clicks) or a → Logic event (melee hit-windows, scripted beats) at any moment of the clip; they show as orange ticks on the timeline and fire wherever the clip plays. The editor also opens from the Enemies tab, and — since build 1064 — from any selected model prop (World tab → Animation): a humanoid prop uses the normal retargetable skeleton; a non-humanoid rig (dragon, windmill, crane) lists its own bones by name; and a model with no bones at all edits as a single Whole model track — rotate it, and Shift-drag to move it through space — so doors, floating crates and drive-by vehicles become keyframable cutscene pieces. Prop clips join the same level library and play through the prop’s normal triggers (Auto / E Activate / Signals, or a Logic Do action → anim) — saved clips re-arm live props instantly, and a clip never auto-plays unless you pick it on the prop. Combined with dialogue lines (a talkable prop is an NPC), this is the ambient-NPC and set-piece toolkit. Keys multi-select with Shift-click or by dragging a box across the dope sheet — the band now spans every bone row it crosses, so you can grab a whole span of keys across many bones at once (Shift adds to the selection). Select all grabs every key on every bone in one click, Deselect clears it, and Delete keys (or the Delete key) removes the whole selection; dragging any selected key moves the entire set together. A Root path toggle draws the hips trajectory so authored root motion is visible at a glance. The timeline is a dope sheet — one labeled row per keyed bone; grab keys on any row, scrub on the ruler — and Flatten to in-place removes the hips X/Z drift so an authored walk loops on the spot. - Action bindings — the engine drives most animation states automatically (walk, jump, hit reactions), but several — dodge, parry, block, holster, knockdown, get up, idle-to-combat — have no trigger of their own. An action binding is how you reach them: on the Player tab, pick an animation — either any clip the model carries, including one you authored in the animation editor, or one of the named slots — a key (or mouse button, gamepad button, and an auto-generated touch button players can drag anywhere), and optionally a Logic event. The action plays the clip for its full length — wire the event into the Logic tab to make it do something: a dodge that grants a speed burst, a taunt that scores a point, a salute that unlocks a door. Add a cooldown, and tick lock movement to plant the player for the clip. Up to 8 per level, saved with the level and synced in multiplayer — everyone sees your dodge. The editor warns if a key already belongs to a default control or another action, or if a bind still points at a clip the current model doesn't have (it falls back to the slot behind it rather than playing nothing).
- Built-in animation library — pick Standard (43 clips) or Pro (120 clips — every animation slot filled: 8-direction locomotion, climbs, turns, dodges, five hit reactions, two deaths) under Animation states and RUMPUS ENGINE retargets the CC0 clip pack (by Quaternius) onto your model's own skeleton. Any humanoid rig works: Mixamo-rigged, UE-style, Rigify and most others are recognized by bone name, and every slot stays overridable — the pack's clips just appear in the pickers alongside the model's own. No more exporting animations one at a time and converting them — and a model with no rig at all can be rigged right here (next item). Characters hold guns with both hands automatically — a per-frame arm IK plants the support hand on the forestock (tracking your aim) and pulls the trigger hand in only when the gun sits beyond its reach, so your tuned grip survives into play; the Player-tab preview shows the same hold, and a Two-handed weapon hold (IK) checkbox turns it off per character.
Live third-person preview
The Player tab's viewport is a free orbit for inspecting your model, so it deliberately ignores the Side / Distance / Height sliders — which used to mean the only way to judge the chase framing was to press play, look, pause and tweak again. Turn on Live third-person preview under Third-person camera and a small window shows the real chase framing around your model, updating as you drag. The hip / aim switch in its header flips between the two slider groups, so the …when aiming set is just as visible.
It shows the framing you authored, with no follow damping and no wall pull-in — those are live reactions to the world, and a preview that ducked behind scenery would tell you nothing about your framing. Everything else — pivot, offsets, the parallel look direction that pushes the body off-centre — is the same code the game runs.
Editor referenceEnemies tab
Sections: Enemies · Object & selection · Transform · Enemy gunfire
- Type picker — choose an enemy type, import a model for it (⤢ Auto-fit size matches the collider), live preview.
- Collider radius / height — size the damage hit-cylinder only (0 = auto-fit). They no longer affect movement or spacing; toggle Show colliders to see the pink cylinders on live enemies. Offsets re-center off-pivot models.
- Spawn markers — place exact spawn points with patrol/hunt mode, patrol radius, detect radius, facing, a patrol route, and “Appears on wave N” (0 = every wave). No markers = classic random waves.
- Height (build 1087) — put enemies on rooftops, balconies, catwalks and upper floors. Drag the marker up with the gizmo or type a Height in the inspector; it is measured from the ground beneath, like the player start, so it rides terrain edits instead of being stranded. A drop line and landing disc appear whenever the marker is floating above whatever it will land on — no line means it is already resting on a surface.
The enemy stands on the highest surface it finds at that height (a marker left slightly under a roof still snaps up onto it). If there is nothing solid up there, it holds the height and falls. Set it to 0 — the default, and what every level built before 1087 has — for ground level.
Heights go up to 1000. The slider drags to 120 by default and its track grows to fit anything taller — for a very high spawn, type the number in the box beside it.
- Height (build 1087) — put enemies on rooftops, balconies, catwalks and upper floors. Drag the marker up with the gizmo or type a Height in the inspector; it is measured from the ground beneath, like the player start, so it rides terrain edits instead of being stranded. A drop line and landing disc appear whenever the marker is floating above whatever it will land on — no line means it is already resting on a surface.
- Enemy gunfire — how enemy fire looks: bolt tip, streak, trail and muzzle flash.
The eight enemy types — how each one fights
| Type | HP | Speed | Hit | Behaviour — and how to fight it |
|---|---|---|---|---|
| Grunt | 30 | 6–9 | 9 | The baseline melee beeliner. Cannon fodder that teaches spacing. |
| Runner | 16 | 11–13 | 6 | Fast and fragile — closes distance alarmingly. Dies to almost anything if you hit it first. |
| Brute | 90 | 3.5–5 | 18 | Slow, heavy, hits like a truck. Kite it; never let it corner you. |
| Gunner | 24 | 4–6 | 4×4 | Ranged: holds an 11 m standoff and fires 4-round bursts while strafing sideways — harder to hit than it looks. Close the gap or take cover between bursts. |
| Sapper | 20 | 9.5–12.5 | blast 40 | A fast rusher that never swings — it detonates (6 m blast with falloff) when it reaches you, and also when killed. Drop it at range; never melee one. |
| Shieldbearer | 60 | 3–4.5 | 14 | Soaks frontal shots (they deal ~18% damage). It turns slowly, so strafe around its guard and flank. The shield stops bullets and melee — not explosions that engulf it. |
| Charger | 75 | 4.5–6 | 20 | At mid-range with line of sight it telegraphs a wind-up (~half a second) then lunges 16 m at high speed to slam you. Sidestep the dash during the wind-up. Up close it just melees. |
| BOSS | 900 | 2.8–4.2 | 28 | A ranged artillery piece with a 14 m standoff. Joins every Nth wave per the Boss every N waves rule (or wherever you place a boss spawn marker). |
Later waves bias toward the tougher and ranged types automatically in Random mode. Water slows all of them to about half pace — terrain is a weapon.
Editor referenceGameplay tab
Sections: Objectives & rules · Pickups · Loot · Inventory items · Build menu · Logic graph · Cutscenes
Objectives & rules is the heart of the level — the full reference is in Objectives & rules. The other sections:
- Pickups — pads that grant ammo, health, weapons, power-ups, keys and items. See Pickups & inventory.
- Loot — what enemies and loot boxes drop when destroyed; place loot boxes with a custom model, per-box contents, or random loot.
- Inventory items — define carryable items: name, type (3D object you can rotate/zoom in the inspector, or a Journal / note text page), description, model, scale, and what using the item does (use-type / key / amount / consume). Hand them out via pickup pads or signals-gated props.
- Build menu — the in-game radial Deploy menu (Tab): choose which shapes/models players can spawn while playing. All ten primitives (box, cylinder, sphere, cone, pillar, ramp, stairs, dome, tube, torus) or any custom model, each with colour/texture/scale plus Explosive, Unbreakable (shots can't shatter it) and Anchored (a static building block — no physics tumble).
- Build mode — picking a slot enters placement: a translucent ghost follows your aim and snaps flush to the face you point at (grid-aligned, Minecraft-style) or to a ground grid. Fire places and keeps building, and a misplaced block deletes just as fast — aim at it and press X / middle-click (desktop), LT (controller) or AIM (touch); only blocks placed this session delete, never the level itself. Rotate the ghost 90° with the scroll wheel or R (Shift+R rotates back), RB/LB on a controller, or the ROT chip on touch — the hint shows the current angle. Right-click toggles snap, Esc/Tab (or BUILD on touch) exits. On hilly terrain the ghost hugs the landscape and placements land exactly where it shows. Anchored + Unbreakable slots make true building blocks for forts and towers.
- Logic graph — node-based visual logic: variables, branches, timers, counters, loops, randomness and reusable functions, no code. See Visual logic — the Logic graph.
- Cutscenes — the camera-sequence editor. See Cutscenes.
Editor referenceWeapons tab
Sections: Object & selection · Transform · Effects
Per weapon you can import a replacement model (with framing/transform for both hip and aim view), set its shoot & reload sounds, override its damage, and disable the muzzle flash. Effects covers gunfire's look: Impacts (sparks, marks & debris where shots land), Tracer (the streak fire leaves in the air) and Bullet holes — decals stamped where shots hit walls, floors and props. Tune their size and lifetime or upload your own decal image (a soft-edged transparent PNG works best); it saves with the level so everyone sees it. Decals are pooled and fade out on their own, so long firefights never clutter the scene. In multiplayer, everyone's gunfire reads: joiners', bots' and enemies' tracers stop at the wall they hit and spark (and stamp) there, just like your own.
The arsenal — full stats
| Weapon | Mag / reserve | Dmg | Rate | Reload | Character |
|---|---|---|---|---|---|
| RIFLE | 30 / 90 | 12 | 95 ms auto | 1.1 s | Zero-spread full-auto all-rounder |
| SMG | 40 / 120 | 8 | 55 ms auto | 1.0 s | Fastest fire, slight spread, quietest gun (draws less aggro) |
| SHOTGUN | 6 / 24 | 9 × 8 pellets | 0.65 s | 1.3 s | 72 damage point-blank, wide spread — brutal in doorways |
| SNIPER | 5 / 20 | 95 | 1.4 s | 1.6 s | Scoped (right-click), one-shots most types; loudest weapon |
| ROCKET | 1 / 6 | 90 + splash | 0.9 s | 1.7 s | Projectile, 7 m blast — mind your own feet |
| CROWBAR | — | 60 | 0.5 s | — | Melee with 3.4 m reach and big knockback, no ammo ever |
| FISTS | — | 24 | 0.36 s | — | Always available; the Start unarmed loadout (G grabs/throws) |
The economy: attachments, upgrades, shop
Attachments — bought once with credits at the Weapon loadout screen, one per slot per weapon:
| Slot | Options (cost) | Effect |
|---|---|---|
| Optic | Red Dot ◆120 · 2× Scope ◆260 | Cleaner ADS zoom · magnified + slightly tighter fire |
| Muzzle | Compensator ◆200 · Suppressor ◆240 | 30% tighter spread · quieter shots + 15% tighter |
| Magazine | Extended ◆180 · Drum ◆340 | +50% mag · double mag |
| Tactical | Laser ◆160 · Angled Grip ◆150 | 40% tighter fire (+ visible beam) · 15% steadier |
Between-wave upgrade cards (solo, pick 1 of 3 after each cleared wave, if enabled in the rules): High-Velocity Rounds (+25% damage) · Trigger Job (+15% fire rate) · Reinforced Plating (+25 max HP, heals) · Combat Stims (+12% move speed) · Vampiric Rounds (heal 4/kill) · Scavenger (+30% credits) · Field Medic (heal 25 each wave) · Munitions Cache (+1 grenade now & each wave).
Supply chests spawn periodically (one purchase each, then consumed): Medkit ◆60 · Overshield ◆100 · Damage Core ◆120 · Speed Cell ◆80 · 3 Frags ◆90 · Ammo Crate ◆50 — plus one-time weapon unlocks (SMG ◆200, Shotgun ◆220, Rocket ◆320, Sniper ◆400, Crowbar ◆140). The Ammo Station (if enabled) refills your current weapon for its listed price.
Editor referenceSettings tab
- API keys — one home for every key the editor can use. Claude (Anthropic) unlocks the AI scene builder and AI animation generation; Sketchfab and Poly Pizza search the 3D model libraries (a shared key is built in, so these work out of the box — add your own only if you want higher limits or your own account’s access). Keys are stored in this browser only and are never written into a level, a share link, a campaign export, or sent to other players — anyone playing your levels needs no keys at all.
Editor referenceHUD tab
Sections: HUD · Crosshair
- Custom widgets (logic-driven) — add your own on-screen elements: Text, Timer, or Bar. They are live views of the Logic tab's variables: write {score} inside a label and it shows that variable's value in real time; a Timer reads a seconds variable and shows it as M:SS; a Bar fills value/max (max can be a number or another variable). Show when hides a widget until a variable is non-zero — so a Set-variable node can pop a scoreboard or banner mid-match. Position with 8 anchors + pixel offsets, style with size/colour/panel. Recipes: scoreboard = On enemy killed → Change variable score +1, plus a Text widget "SCORE {score}"; countdown = On start → Set variable time 120, Every 1 sec → Change variable time −1 → Branch time ≤ 0 → lose, plus a Timer widget reading time. Widgets save with the level and sync to every player in multiplayer (the host's numbers are the truth).
- Colours — accent, health, score.
- Fonts — separate UI and display fonts from an 18-font set (Chakra Petch, Orbitron, Rajdhani, Press Start 2P, VT323, Russo One, Bungee, JetBrains Mono…).
- Panels — shape (Angular / Rounded / Square), background opacity, border.
- Show in play — toggle each element: minimap, score, wave counter, ammo, health, crosshair, kill feed, interact prompt, grab hint, objective banner, NPC dialogue.
- Per-element layout — pick an element, then: Size (0.4–2.5×), X/Y offset (±2000 px), Opacity, plus Font and Tint for the text elements. While the HUD tab is open you're in live preview: drag the dashed outlines to position elements directly. Reset per element or the whole HUD. These settings save with the level — everyone who plays it sees your HUD.
- Crosshair — style ✛ Classic · + Cross · • Dot · ◯ Circle · ⊤ T-shape · ∅ None, with size, thickness, gap, center dot and colour.
Editor referenceSave tab
Sections: Title screen · Level file · Campaign
- 💾 Save / Clear save — browser save slot; Autosave while editing keeps it fresh.
- 🔗 Copy share link — the whole level compressed into a URL. See Saving & sharing.
- ⬇ Export / ⬆ Import — the level as a
.breachfile you can back up, edit or send (plain JSON inside; old.jsonexports still import). - 🗑 Delete all objects — fresh scene (undoable).
- Issues panel — live validation that catches the classic mistakes before a playtest does: locks with no matching key pad (and orphaned keys), pickup spots placed while pickups are off, audio zones with no sound URL, cutscene shots with fewer than 2 waypoints, signals targeting a tag no prop carries, signals with no target (only Win level and Play cutscene work targetless), contact signals filtered to a tag that doesn't exist, signals playing a cutscene that doesn't exist, and Signals-only mechanisms that nothing can ever trigger.
- Autosave — saves every few seconds while editing (never mid-PvP-match); the status line shows the last save time, or a storage-full warning that means "export a backup now". Undo holds the last 60 snapshots.
- Campaign — chain levels into a solo campaign: build a level → ➕ Add current level → repeat → ▶ Play campaign. Each level ends on its own win condition and loads the next; weapons, health and inventory carry over. Per-level: rename, Edit (loads it back into the editor with a "Save changes" button), ▲/▼ reorder, ✕ remove; Export/Import campaign moves the whole sequence as one file.
Title screen
Give a level its own home screen: anyone opening your share link or game URL lands on your title screen, not the engine menu. Tick Custom title screen, then set a game title, an optional tagline, an accent, and a backdrop — either Capture backdrop (a frame of your scene) or an uploaded image. Preview title screen shows it over the editor.
Look
Everything below is in the Look fold, and every control starts at exactly what the engine used to hardcode — a level made before this had no look settings and renders identically.
| Control | What it does |
|---|---|
| Font | The display face for the title, tagline and buttons — the same 18-font library the HUD uses, each option previewed in its own face. Fetched only if you pick one. |
| Title colour · Tagline | Independent colours. default puts either back. |
| Align | Centre, left or right — the text, the buttons and the logo move together. |
| Nudge | Slide the whole block up or down (±40% of the screen) to clear a face or a logo in your backdrop. |
| Image | Fill the screen (crops to fit) or Fit inside (letterboxes, so nothing is cut off). |
| Strength | How strongly the backdrop reads (0–100%). The default 55% is deliberately soft; push it up for real key art. |
| Darken | The vignette that keeps text readable over a busy image. Drop it to 0 to see the artwork clean. |
| Behind it | A flat background colour instead of the engine's dark gradient. Works with no image at all — a solid colour and a wordmark is a whole title screen. |
| Logo | Upload an image that sits above the title (height 6–40% of the screen). Clear the game title field and the logo stands alone — which is what a wordmark is for. |
| Play · Multiplayer | Rename the buttons. Blank keeps PLAY and MULTIPLAYER. |
End screens
The screens a player actually screenshots. In the same Look fold: a heading for victory and another for defeat (blank keeps the engine's MISSION COMPLETE / TERMINATED), a colour for each, and an optional backdrop image for each. The Font above applies here too — even with the custom title screen switched off, so a level that doesn't want a home screen can still end in its own type. Each has its own Preview button that shows the real screen over the editor.
SystemsTrack builder & racing
Laying track
On the Build tab, the Track builder places snap-together road pieces. Press T for top-down view (scroll to zoom), then click pieces — each snaps onto the exit of the selected piece (select any piece to branch from there), or the last one placed. Del removes the selected piece.
| Piece | Geometry |
|---|---|
| Start line | 16 m straight with the checkered band — the lap counter and grid. Every course needs exactly one. |
| Straight | 24 m straight |
| Short | 8 m straight — the fine-adjustment piece |
| 45° L / 45° R | Eighth-turn, 18 m radius |
| 90° L / 90° R | Quarter-turn, 18 m radius |
| Bank L / Bank R | Quarter-turn with camber that eases in and out — flat at both ends, so it joins flat pieces seamlessly |
| Ramp ↑ / Ramp ↓ | 24 m straight rising/falling 6 m — chain them for hills and jumps |
The road is 12 m wide. All lengths are multiples of 8, so closed circuits line up exactly — and when the two ends nearly meet, Close loop bridges the remaining gap — since build 896 it is a real solver (combinations of curves plus stretched straights), so heading mismatches and sideways misses close too, not just straight-ahead gaps.
🎲 Random track rolls a complete closed circuit in one click — banked corners and a ramp section onto an upper deck included — and you can restyle or hand-edit it from there. Keep clicking until you like the shape.
✏ Draw track is the fastest way to build a circuit: click it, sketch your track outline as one loop (it flips to top view while you draw), and release — the builder lays every piece to match your sketch, adds a start line and barrier walls, and the loop is closed by construction. It replaces the existing track (one undo step restores it), so you can redraw until the shape feels right, then restyle it under Track appearance.
Barrier walls
Per-piece (Barrier walls checkbox on the selected piece) or course-wide (Walls: whole track / Walls: remove all). Walls are a concrete base plus a clear catch-screen to car-body height; they follow banking and ramps.
The Race objective — setting by setting
| Setting | Range | What it does / how to use it |
|---|---|---|
| Laps to win | 1–99 | Crossing the checkered band on the Start-line piece arms lap 1; completing the count wins. 1 lap = sprint, 3 (default) = classic, 10+ = endurance where the ghost becomes your real rival. |
| AI rivals | 0–6 | 0 = pure time trial against the clock and your ghost. Rivals are cloned from your placed vehicle (same tuning, different liveries), gridded in staggered rows behind the line. They need a closed loop (use Close loop) to compute their racing line — the Save tab's issues panel warns if they can't spawn. |
| Rival pace | 0.4–1.3 | Their speed as a fraction of the physics-ideal racing line. 0.7 = learnable, 0.85 (default) = beatable with clean driving, 1.0 = flat-out, 1.1+ = you need the perfect line and slipstream-free corners. Each rival also runs slightly slower than the one ahead, so the field spreads naturally. |
On deploy you're auto-seated in your car, which is auto-gridded at pole position regardless of where it was parked in the editor. Throttle is locked through the 3-2-1 countdown and releases on GO. Every track piece is a checkpoint: cut the infield and the lap is voided with a toast (you need ~60% of pieces each lap). Losing rivals don't stop — if one finishes your remaining laps first, you get the RACE LOST screen with their name. Drive off the course (or off a ramp with no way back) and a red RETURN TO TRACK countdown appears — get back within 3 seconds or the car is placed back on the racing line at your last on-track spot, stopped and facing down the course.
- Race HUD — position (P n/N), lap counter, live lap time and session best, top-center.
- Checkpoints — every piece is a checkpoint; cutting the infield voids the lap with a toast.
- Ghost lap — your best lap replays as a translucent ghost; toggle with G while driving. It's stored per track shape, so editing the course retires the old ghost.
- Contact — cars collide: rear-end a rival to shunt them, side-swipe to knock them off line. They recover, and so can you.
- Results — per-lap times with the best starred; if a rival finishes first you'll see RACE LOST.
- Multiplayer racing — use Host race in the multiplayer menu: it checks the loaded level (objective Race, a start line, a car) before opening the room, and explains anything missing. One placed car is enough — on deploy the grid fills itself: every authored car lines up in a staggered two-abreast field, extra racers get an identical cloned car, and each player is auto-seated in their own (host takes pole). You see your rivals as their cars, live on track — not their characters — and anyone on foot again (exited, spectating) shows as their avatar as usual. Standings sync live and the first to finish wins on every screen. AI rivals sit multiplayer out — the humans are the field.
SystemsVehicle tuning — the deep dive
Any prop can be a car: select it → Object & selection → Vehicle (drivable) → tick Drivable vehicle (this also makes the prop non-dynamic — the car system owns its physics). A units toggle switches every speed field and the in-game speedometer between km/h and mph.
Performance
| Control | Range (default) | What it does / how to use it |
|---|---|---|
| Top speed | 5–200 (16) | Flat-out speed in your chosen units. ~36 km/h suits an arena runabout; 120+ needs a big arena and raised View distance. |
| Acceleration | 1–80 (18) | How hard it pulls to top speed. Also scales braking force (below). |
| Turn rate °/s | 20–400 (120) | How fast the car swings toward where you're steering. This is your requested rate — Cornering grip decides how much of it you get at speed. |
| Reverse | 2–120 (7) | Reverse top speed. Engages only from a stop (braking always comes first). |
| Boost × | 1–4 (1 = off) | Hold Shift to multiply speed. With Boost time (0.5–15 s) and Cooldown (0–30 s). Flames on boost adds exhaust fire — size, density, position offsets (use Side for a single tailpipe) and colour; the core glows white-hot and cools toward your colour, so try blue for an afterburner. |
Handling
| Control | Range (default) | What it does / how to use it |
|---|---|---|
| Grip | 1–12 (6) | How hard the tyres bite. Lower = loose and drifty (slides in turns); higher = planted. Hold Space to handbrake-drift regardless. |
| Cornering grip (G) | 0.6–4 (2.2) | The lateral G the tyres hold before the car pushes wide. Sports car ≈ 3, truck ≈ 1.2. This is the setting that decides how fast you can take a banked track curve. |
| Braking | 0.2–3 (1) | Brake bite when pressing against your travel. 1 = normal, low = long lazy stops, high = race-car stoppers. The nose dives under braking. |
| Suspension | 0–2 (1) | Body compression/rebound over kerbs, bumps and landings. 0 = rigid kart, 2 = soft off-roader. |
| Body lean | 0–2 (0.5) | Roll in turns and dive under braking. Purely visual — lower it if the car feels like a boat. |
| Launch | 0–3 (1) | How hard ramps throw the car. 0 = never leaves the ground (go-kart), raise it for big-air buggies. The nose follows the arc; suspension soaks the landing. |
Fitting a model
| Control | What it does / how to use it |
|---|---|
| Model facing ° | Rotate until the yellow arrow points out the front of your model — the car drives nose-first. Doesn't move the prop. |
| Pivot (m) | The red dot marks where the car spins when steering. Slide it toward the nose (+) if the model's origin sits at the tail, so it turns around its centre. Center pivot on model computes it from the bounding box in one click. For the most natural feel, land the dot near the rear axle. |
| Ride height (±m) | Trim if the model floats or sinks. 0 = auto-fit. |
| Hit area | The orange outline is the collision footprint props/enemies/rivals react to — Hit width/height/length (0.3–3×) scale each axis, Offset X/Y/Z recenters it. Fit it to the visible bodywork so contact looks honest. |
| Enter radius (m) | 0.5–12 (2.5): how close you must be for the "press E to drive" prompt — measured to the model's footprint, not its centre, so big trucks work. |
| Keep rolling on exit | Bail out at speed and the car coasts on (on by default). Off = it stops with you. |
Camera, lights, effects, wheels
| Control | What it does / how to use it |
|---|---|
| Camera view | Chase (third person) or Cockpit (driver POV); C flips while driving. Cockpit uses Seat forward/up/side to place your eyes inside the model. Camera back/up trim the chase distance (0 = auto-fit to model size). |
| Camera follows the car | On: the chase cam trails behind and re-centres when you stop moving the mouse (mouse still free-orbits). Off: a pure free orbit that stays where you point it. V flips it live. |
| Headlights | H toggles forward spotlights: beam colour, brightness (0–20), range (4–120 m), spread/height/forward placement, and "Start on when you get in". At night in a day/night-cycle level they switch on automatically. |
| Brake lights | Red tail glow while braking or reversing — colour, size, spread, height, back offset. |
| Tyre smoke / Skid marks | 0–2 each: 1 = normal, 0 = off; raise for dusty surfaces, lower for clean tarmac. |
| Ram damage | 0–300 (50): damage to enemies/bots/rival players you plough into, scaling with speed. 0 disables vehicular mayhem. |
| Wheels (procedural) | Spins + steers the model's wheel meshes by name — no animation clips needed. Auto-detect wheels guesses the wheel parts, the steered front pair and the spin axle from the model's named parts (you can still edit after). The Detected parts chips preview on hover — click to add to Wheels, Shift-click to mark as Front. Then Steer angle (0–60°) and Spin rate (negative if they roll backwards). If the model has no separate wheel parts, use the Animations rows instead to map drive-state clips (Idle/Forward/Backward/Turn left/Turn right). |
SystemsSignals, locks & mechanisms
These three folds are RUMPUS ENGINE's wiring: Mechanism makes a prop move, Signals connect cause to effect, and Lock gates it all behind keys. Together they build doors, elevators, traps, switch puzzles and win conditions.
Mechanism (the “xa” system)
Enable Animated mechanism on a prop, then set what it does — Move X/Y/Z (m), Rotate X/Y/Z (°), Scale X/Y/Z, a Pivot offset, and Duration (s):
- Playback: ⟳ Loop · ⇄ Ping-pong · → Once.
- Trigger: Auto (runs on level start) · E Activate (player presses E) · Signals only (waits for a signal).
- Waypoint path — add waypoints and the prop travels through them (overrides the Move offset): patrol platforms, cable cars, roaming hazards.
Signals
Making a prop usable with E is one checkbox now: Interactable (E) sits beside the Tag at the top of Object & selection. Tick it and the prop prompts Activate and fires its On E signals — no mechanism required. And a signal's target can simply be this (the first entry in the target drop-down): the prop the signal lives on, no tag needed. So "press E on the door, the door opens" is: Interactable ✓ + one signal On E → Toggle → this.
On the Signals fold, give props a tag, then add rules — when something happens to this prop, do something to a tagged target (or to this, the prop itself):
| When… | Meaning |
|---|---|
| On destroyed | This prop is broken (needs Physics & destruction health) |
| On E | The player activates it with E |
| On object placed | A tagged object is set down touching it (contact plates, altars) — optionally only from a specific tag |
| Do… | Effect on the target tag |
|---|---|
| Toggle / Open / Close | Drive the target's mechanism |
| Play anim | Play a named animation clip on the target |
| Unlock | Remove the target's lock |
| → Logic event | Pulse the Logic graph's matching On event nodes (no target needed) — the bridge from the physical world into your visual logic |
| Win level | Mission complete (no target needed) |
| Play cutscene | Run a named cutscene (no target needed) |
| Set objective | Change the objective banner text mid-run |
| Set checkpoint | Drop a respawn checkpoint here |
| Play sound | Play a sound URL |
The world verbs
Everything above changes a prop or the UI. These change the world — and because they live in the same list, a prop signal and a Logic Do action node can both use them. None of them take a target tag; they take a place or a who.
| Do… | Effect |
|---|---|
| Spawn enemies | Make 1–20 enemies of any type (Grunt · Runner · Brute · Gunner · Sapper · Shieldbearer · Charger · BOSS) at a place. A squad scatters in a small ring instead of stacking on one point, and every one is un-buried and floor-snapped exactly like a wave spawn. |
| Spawn pickup | Drop a live pickup pad — any kind the Pickups section offers, including a specific inventory item — at a place. It lands at that place's height, so a pickup asked for at a balcony prop is on the balcony. |
| Damage / Heal | By an amount, to the player, all enemies, or the nearest enemy. Damage runs the normal hurt path (flash, shake, shield soak); healing never exceeds max health. |
| Kill | Same three targets, no amount. Killing an enemy runs the real death — coin drops, the kill feed, the ragdoll, and the graph's On enemy killed event. Killing the player runs the normal defeat flow, so “Respawn at checkpoint” still applies. |
| Teleport | Move the player, all enemies or the nearest enemy to a place. The player arrives standing still (never mid-fall) and drops anything they were carrying; enemies land on the real floor and re-decide where to go. |
| Give item / Take item | Put an inventory item straight into the player's hands, or take it back — the quest reward, and the fuse that gets spent when it's used. Pick the item from a dropdown of everything the level defines; a count is optional. |
| Set player stat | Bend one of five rules of the game: Move speed, Jump height, Gravity, Max health, Damage dealt. See below. |
| Play music | Take over the music track for this match — the boss theme when the door opens. A blank URL is deliberate silence. It never overwrites the level's own music setting, so a theme you played while testing can't end up saved into the level, and the next match starts on the level's track again. |
| Command enemies | Tell all enemies or the nearest one what to do: Hunt the player · Patrol · Hold position · Alert them to a place (identical to hearing a gunshot there — they wake and converge) · Lose the player (they forget you and their search timers reset: the stealth reset) · Move their post to a place (reassign a guard; it replaces any authored patrol route). Every one of these drives state the AI already reads, so a commanded enemy behaves like an authored one from the very next frame. |
Every stat is a multiplier of what the level authored, which means ×1 always puts it back exactly — there's no hidden “original value” to lose track of. Move speed ×0.4 is a swamp, Gravity ×0.3 is the moon, Jump ×2 plus Gravity ×0.5 is a floaty platformer. Applying the same rule twice never compounds, so a repeating trigger can't slow you to a standstill. Max health is a multiple of the engine's baseline 100 (×1.5 = 150), and raising the ceiling doesn't secretly heal you. A stat springs back at the start of every match — and only the stats a rule actually touched are reset, so a +25 max HP perk keeps its bonus.
A “place” is a tag. Type or pick one and it resolves to the prop carrying it — the same naming system the rest of the signal system uses, so you point at something you can see and select in the viewport. Two names are built in: me (blank means the same thing) is wherever the player is standing, and start is the level's player start. A trigger volume answers to its own event name, so the zone that fires a rule can also be the spot it acts on — On event reachedVault → Spawn 4 Brutes at reachedVault. If several props share a tag, each use picks one at random, so “spawn at guardPost” scatters a patrol across all of them. A place nobody carries does nothing — the verb is skipped rather than firing at the world origin.
The advanced gates
- Needs N different senders — the receiving prop only reacts once N different props have signalled it (the same sender firing twice counts once). Both pressure plates; all three generators.
- Needs item — a rule can require the player to be carrying an inventory item, with an optional consume: “On E, if carrying the fuse, do Open — and spend the fuse.” A locked prop without the item shows a LOCKED toast naming what's missing.
- On object placed extras — filter by a from tag (only the tagged object triggers it, blank = any physical prop), choose Touching it vs Inside it, and optionally consume the placed object (it vanishes when it lands — sacrificial offerings).
Locks & keys
The Lock fold requires a key (red / blue / gold / green) before E works on the prop, with optional Consume key on unlock. Keys are granted by key pickup pads (one-shot — they don't respawn), appear as HUD chips, and can carry a custom display name set on the pickup.
SystemsVisual logic — the Logic graph
The signal system wires one cause to one effect. The Logic graph (Gameplay tab ▸ Logic graph ▸ Open logic graph) is the layer above it: a full-screen node canvas where you build real game logic — counters, timers, branches, variables, randomness, loops and reusable functions — without writing code. Drag the board to pan, wheel to zoom, drag nodes by their headers, drag an output port onto an input port to wire them, click a wire to remove it. Tag, event-name, animation-clip and sound fields are drop-downs: they list every tag your props and lights already carry (with a count), every event name declared anywhere, every clip name your placed models ship, and every sound URL the level already uses — pick from the list or type a brand-new value.
| Category | Nodes |
|---|---|
| Events (cyan) | On start · On event (named — fired by prop signals via → Logic event, by Send event, by a trigger volume, or by a line of dialogue) · Every X sec (optional fire limit) · On enemy killed · On enemy spots you · On enemy damaged · On wave start |
| Flow (yellow) | Branch (compare two values with ==/!=/</≤/>/≥ — either side can be a number or a variable name) · Counter (an "each count" output plus a "target reached" output that auto-resets; reset pin) · Delay · Repeat (N passes, optional gap, #i is the loop index) · Random (up to four weighted outputs) · Only once (reset pin) |
| State (green) | Set variable (a value, or a random integer in a min–max range) · Change variable (+/−) |
| Actions (orange) | Do action — every signal verb: toggle/open/close, play anim, unlock, cutscene, objective, checkpoint, sound, plus the world verbs (spawn enemies, spawn pickup, damage, heal, kill, teleport, give/take item, set player stat, play music, command enemies) · Show message (with live {variable} interpolation: SCORE {score}!) · Send event · Win level · Lose level |
Reusable functions are the On event / Send event pair: build a chain once behind a named event and call it from anywhere — the calling chain continues after the call. A classic graph: On start → Set score = 0; a pressure plate fires → Logic event "scored" → Change score +1 → Branch score ≥ 5 → Show message → Win level.
Enemy hooks
The AI had exactly one connection to the graph: On enemy killed. Two more entries close the loop.
| Node | Fires when |
|---|---|
| On enemy spots you | An enemy goes from oblivious to alerted — once per alert, not every frame it's hunting you. It covers every way that happens: seeing you, hearing gunfire, catching a blast, or a rule telling it to. It re-arms when the enemy gives up, so the next time it notices you it fires again. |
| On enemy damaged | An enemy takes a hit and survives it — a boss phase change at half health, a retreat, an alarm. A killing blow fires On enemy killed instead; one hit never fires both. |
Neither carries which enemy it was, on purpose: pair them with Command enemies (above) and you have the whole classic loop in four nodes — On enemy spots you → Change alarm +1 → Command all enemies: Alert them to vaultDoor. A stealth game is the same loop plus Command enemies: Lose the player on the other side. Both cost nothing until you actually put one on the board.
Values that carry over
Normally every variable resets when a level starts — which quietly rules out anything with progress: a running coin total, a quest stage, a shortcut you unlocked. Under Gameplay ▸ Logic graph, below the Open button, every variable name in the level is listed with a tick box. Tick one and it survives into the next level of the campaign.
| What happens | When |
|---|---|
| The carried value is put back into the variable | At the start of every match, before On start runs — so your first node can already read it |
| The live value is carried forward | Only when the level is cleared |
| The value rewinds to what you walked in with | On a retry — the level was not cleared, so nothing was committed |
| Everything resets to zero | When you start the campaign from the top, or hit Clear in the panel |
That asymmetry is on purpose: a player can never lose progress by dying, and can never farm a level by
replaying the first half of it. A variable you tick but never write settles at 0 rather than nothing,
so a Branch on it is never comparing against a blank.
Also keep them between sessions is a separate opt-in below the list. With it on, the carried values are written to the player's browser, so they can close the tab and come back to the same progress; with it off — the default — nothing is stored anywhere. The panel always shows what is being carried right now, with one button to throw it away.
SystemsPickups & inventory
Pickup pads
Gameplay tab → Pickups. Toggle spawning, the base disc, and the bounce/rotate animation; then place pads with + Place ahead or edit each spot's kind, transform and (for items) which inventory item it grants. The kinds:
| Kind | Grants |
|---|---|
| +Health | +50 integrity |
| +Ammo / +Grenade | Reserve ammo / a grenade |
| Rifle · SMG · Shotgun · Sniper · Rocket | That weapon |
| 2× Dmg · Speed · Shield | Timed power-up |
| Red / Blue / Gold / Green Key | The matching key (one-shot; see Locks) |
| Inventory Item | A specific item from your catalog |
Inventory — the Use actions
Items defined under Inventory items land in the player's inventory (I): 3D objects open in a rotate/zoom inspector, journals open as text pages. Each item's Use action decides what the Use button does:
| Use action | What happens |
|---|---|
| Not usable | Pure lore/collectible — inspect and carry only. |
| Unlock (acts as a key) | Behaves as the chosen key colour for locked props — a story-flavoured alternative to the colored key pads ("Rusty Cellar Key"). |
| Heal the player | Restores the set HP (1–999). |
| Refill all ammo | Tops up every weapon. |
| Place in the world | The deep one: using it puts the item's model in the player's hands; G places it (and can pick it back up). The placed object carries its own signals — so placing the idol on the altar can open a door, win the level, or fire a cutscene. This is the machinery behind fetch-and-place puzzles. |
Consumed on use (default on) spends the item; off makes it reusable. Journal items get a text page; 3D items get a model + scale (1 ≈ 2 m across in the inspector). In campaigns, inventory carries between levels.
Loot & coins
Loot sets what enemies and loot boxes drop. Coins (spawned on kills) are the in-run currency for the shop and weapon attachments.
SystemsObjectives & rules
The eight objectives
| Objective | Settings & the fine print |
|---|---|
| Eliminate | Classic waves — Win after N waves (0 = endless), boss every N waves, Random or Pre-built spawns. |
| Survival | Survive seconds (10–999, default 120): hostiles spawn endlessly; outlast the countdown. |
| Extraction | The beacon auto-places across the arena from your spawn. Hold seconds (1–30) inside Zone radius (1.5–10 m) — leaving lets the progress drift back down, so commit. |
| Defend | Hold the zone for a total of Hold seconds — the clock pauses while nobody stands in it, so you can rotate out to clear pressure, but the mission only advances while you hold. |
| Destroy | Blow up every prop flagged 🎯 Objective target (Physics & destruction fold). They glow with a red beacon. |
| Escort | A payload travels from your spawn to the delivery beacon — it only moves while a player stays within Escort radius. Step away and it stops. |
| Puzzle | No enemies ever spawn — you win via a Win level signal (a contact plate, an E-activated exit). Pairs with Start unarmed + flashlight for pure adventure. |
| Race | First to the lap count — full settings in Racing. |
Rules that shape the run
- Objective text — the goal banner (players re-read it with J; signals can rewrite it mid-run).
- Respawn at checkpoint (solo) — death returns you to the last checkpoint instead of ending the run.
- Wave mode — Random, or Pre-built from your spawn markers (optionally single-pass, no respawns); between-wave upgrade cards in solo.
- Fall damage — on/off for player and AI, with safe speed and damage scaling. Ragdoll on death. Crushing props — heavy movers deal damage, with min speed.
- Camera view — how players see your level: First person (the classic), Third-person, Top-down, or Side-scroller. Saved with the level, so it carries through share links, the community gallery and multiplayer.
- Third-person — an over-the-shoulder chase camera that smoothly follows the player with damping (it eases after sprints, jumps and turns instead of being bolted rigid; aiming tightens it back to exact). Controls and aim stay first-person-style. Tune the framing and the Follow smoothing slider under Player tab → Third-person framing — smoothing is also a player preference, so it applies when anyone toggles third-person from the pause menu too.
- Top-down — a fixed isometric-tilt camera follows the player; WASD moves on the map (screen-relative), and the mouse steers a cursor: your character faces it, shots hit whatever is under it, and grenades lob onto it (up to the grenade's throw-force range), twin-stick style. Cars keep their full handling — instant chase/racing levels. Camera distance sets the zoom (8–80).
- Side-scroller — the camera locks to one side and players run along a single lane (pick east–west or north–south). A/D run, Space jumps, and the mouse aims anywhere within the plane (grenades arc to the cursor too). Players are held on the lane they deploy on, so build your level along it — ramps and stairs shine here.
- Camera framing (build 1085) — both fixed views orbit the player, and every part of the orbit is yours:
Reset camera puts everything back to the mode's default. Levels built before build 1085 frame exactly as they always did — the old fixed angles are the defaults.
Control What it does Camera distance How far back the camera orbits (top 8–80, side 6–60) Rotate Swings the camera around the player. Top-down: full 360°, and WASD rotates with it so W is always up-screen. Side-scroller: ±60° for an angled 2.5D look — the player still runs along the lane. Tilt Angle above the horizon. Top-down 15°–89° (89 is almost straight down, low is strongly isometric); side-scroller −30°–60°, so you can look down on the lane or up at it. Height Raises or lowers what the camera is centred on. Camera and aim point move together, so the whole frame shifts vertically without changing the angle — handy for showing more headroom, or a pit below. Roll Tips the horizon up to ±30° for a dutch angle. - Seeing the camera while you build (build 1084) — top-down and side-scroller levels don't have a camera you place; it is worked out from the player start, the camera distance and (side only) the lane axis. So the editor draws it for you:
- A blue box in the viewport is the camera, sitting exactly where the player's will be.
- The blue rectangle in front of it is the frame — everything inside it is on screen at deploy, in your window's real aspect ratio. Drag the camera-distance slider and watch it grow and shrink.
- In side-scroller levels a gold plane and ground line mark the lane. Players are locked to it, so anything you build off the plane is scenery they can never reach — this is the single easiest thing to get wrong, and now it is visible.
- Live camera preview — a small window showing exactly what a player sees standing on the start point. It updates as you build, and you can drag it anywhere or close it. Also under Tools ▸ Play-camera preview.
- Stand in it puts the editor's fly camera in the play camera's exact position and angle. Press F to go back to flying normally.
- Cutscenes, turret seats and the PvP killcam keep their own cameras; the editor always flies free. In both fixed views your character model is visible and enemies aim at it as normal.
- Hands / unarmed — start with fists only, optionally allow picking up weapons found in the level; the flashlight (brightness, cone, softness, range, colour).
- Hit numbers — floating damage numbers with font size and hit/kill colours.
- Multiplayer spawn area — confine MP spawns to a circle or drawn polygon.
- End-screen messages — custom victory and defeat text.
SystemsCutscenes — shot by shot
Gameplay tab → Cutscenes. A cutscene is a list of camera shots played back-to-back with hard cuts; each shot flies through its own waypoints. Cutscene #1 is the intro (toggle Play intro flythrough on deploy); every additional cutscene is named and fired by a signal's Play cutscene action. Any key or tap skips playback.
Waypoints: fly the editor camera to a spot, click + Add camera waypoint (current view), repeat — 2+ points move the camera; a single point is a held shot. Per point: Go to (jump the editor view there), Set (overwrite with the current view), 👁 (aim the editor at your subject, then click to store a look-target), ⊘ (clear it), ✕ (delete).
| Shot control | Range | What it does / how to use it |
|---|---|---|
| Lens start / end | 14–120 mm | Different values = a zoom across the shot. 35 → 85 pushes in on the subject; wide 18 for establishing vistas. |
| Rack focus | on/off | The shot carries its own depth of field, separate from the world's: Focus start/end (the cyan disc is sharp at the start, the orange at the end), Blur start/end (0–4×), Focus band (how much depth stays sharp). A slow focus pull from foreground prop to distant door is pure cinema. (DoF is off on mobile.) |
| Duration | 1–120 s | The move itself, one-way. |
| Hold start / end | 0–10 s | Freezes the framing before the move starts (establish) and after it ends (settle). Total shot = hold + duration + hold. |
| Dutch start / end | ±60° | Tilts the horizon. Equal values hold the tilt; different values roll the camera across the shot — unease on demand. |
| Framing | — | Aim at player start (or a per-point 👁 target) vs Look along path (a fly-through that looks where it's going). |
| Motion / Path | — | Smooth (ease in+out) / Constant / Ease in / Ease out, on a Linear path or a Smooth curve (needs 3+ waypoints — it curves through them at constant speed). |
| Cutscene audio | URL | A one-shot track (voiceover, sting) that starts with the cutscene and stops when it ends or is skipped. Searchable on Freesound; the file must allow CORS. |
▶ Cutscene previews all shots, ▶ This shot just one, and the camera preview window shows live framing while you scrub. Show character at the player start puts your avatar in frame for intros.
SystemsMultiplayer
Peer-to-peer over WebRTC — no accounts, no servers to rent. One player hosts and shares the 5-character room code (or joiners pick from the Open games list); everyone else joins, and the host's level transfers automatically — including custom models and sounds. While a host waits in the pre-game lobby, the room is listed in everyone's Open games list automatically (a tiny lobby directory on rumpusengine.com) and drops off the moment the match starts or the host leaves.
Modes — the actual rules
| Mode | Win condition |
|---|---|
| CO-OP | Waves and objectives vs the AI, together — including multiplayer racing on race levels (standings sync live; first to finish wins on every screen) |
| 1 v 1 DUEL | First to 5 kills. No bots allowed; the editor is locked during a duel. |
| FREE-FOR-ALL | Everyone vs everyone — first player to the kill target takes it |
| TEAM DEATHMATCH | Red vs Blue, no friendly fire — first team total to the kill target |
| KING OF THE HILL | Scored by holding the zone, not kills — capture accrues points; first to the target wins. Bots actually play it: they prioritize capturing an unowned point over chasing fights. |
Bot difficulty — what the presets actually change
| Preset | Speed | Aim accuracy | HP | Engage range | Feel |
|---|---|---|---|---|---|
| Recruit | 62% | 34%, wide spray | 80 | 38 m | Wanders, misses, dies — a warm-up |
| Regular | 85% | 60% | 100 | 52 m | An honest opponent |
| Veteran | 100% | 78%, tight | 120 | 60 m | Punishes open ground |
| Elite | 112% | 90%, laser | 150 | 70 m | Faster than you and barely misses — bring cover |
PvP hosts pick bot count (0–7) and difficulty when hosting, or Fill with bots from the lobby. Bots fight like players now: they carry visible weapons, throw grenades (including flushing you out of cover), duck behind cover to reload, and wear random characters from the level's roster so no two look alike.
Match rules — when hosting, the host can restrict which weapons are allowed (melee always stays in) and set starting grenades (0–6) for everyone; the rules reach every joiner and bot automatically.
The lobby is a proper pre-game screen: a live 3D character select (models rotate, colours preview, CHARACTERS and COLORS read as separate groups), a MATCH INFO panel, rotating tips — and creators can attach a lobby backdrop image to a level (Save tab ▸ Title screen ▸ Multiplayer lobby backdrop) that every player sees, softly blurred, behind the lobby. Joiners watching the level transfer see a live LOADING WORLD % instead of a frozen screen. Matches end with a podium ceremony — standings, medals, and an MVP callout in team modes.
What syncs: player movement and state, enemies, kill credit, coins and pickups, prop animations and mechanisms, unlocks and keys, objective progress, race standings, chat, and the host's custom HUD/sounds.
ExtrasTips & troubleshooting
- Sketchfab search says it needs a token — it's a free API key: sketchfab.com → Settings → Password & API. Paste it once in any search box; every other box switches to “Token saved · change”.
- A shared level is missing models — Sketchfab downloads require each player's own token; Poly Pizza models need none. Prefer Poly Pizza for levels you plan to share widely.
- The game looks out of date — hard-refresh (Ctrl+Shift+R) and check the build number bottom-left of the home menu.
- Performance dips — post-FX sheds passes automatically under load, but the biggest wins are yours: fewer point lights, smaller textures, fewer high-poly Sketchfab models. Adaptive resolution (pause menu) trades sharpness for frame rate on sustained drops — turn it off if you'd rather keep full resolution and accept the dips.
- Edges look jagged / aliased — check Adaptive resolution in the pause menu: when the frame rate struggles it lowers the render resolution, which reads as shimmer on edges; untick it for full sharpness. (Since build 872, Visual effects keeps proper antialiasing — older builds lost it whenever effects were on.)
- My race rivals won't spawn — rivals need a closed track loop (use Close loop) and a placed drivable vehicle to clone. The Save tab's issues panel calls this out.
- A mechanism won't fire — check its Trigger: Signals only waits for a signal; E Activate may be gated by a Lock. The signal's target tag must match exactly.
- I can't find a setting — sections remember their collapsed state; expand the section headers. Selection folds (Vehicle, Signals…) only appear with a prop selected on the Build tab.