Go to file
Monster Robot Party 006c324f1f LANE7: LEVEL 0 gets an entity, a tape, and a loop
THE ENTITY (Entity.gd) borrows from three places and each borrowing does a job:

  SLENDERMAN  it does not move while you look at it, and has closed the distance every
              time you look back. Looking is ALSO what builds the static — so the safe
              option (keep it in view) kills you slowly and the fast option (run) lets
              it catch up. That's the trap, and it's why Slender worked.
  XENOMORPH   it hunts SOUND, and the thing you came here to do is smash furniture.
              Every break and every puff of powder drops a marker it walks toward.
              Playing well is what feeds it. A loud enough noise overrides the freeze,
              because staring is a valid answer to a stalker and not a valid answer to
              something that just heard a sledgehammer hit a filing cabinet.
  BLAIR WITCH the level wraps: walk far enough and you come out of the opposite wall
              into the same room, because every room here IS the same room. A wrap is
              also when it repositions, so "I've been here before" and "it's already
              here" land in the same second.

It can't be fought. Getting caught doesn't kill you — it costs a lungful, a spike of
rage, and the knowledge that it can do that whenever it likes.

Deliberately unresolved design: 2.5 m, faceless, arms past the knees, cranium swept
backwards. Slenderman from the front, something else in profile. A silhouette your brain
finishes beats a monster it recognises. Blair Witch stick totems hang in the maze.

THE TAPE (Dread.gd) — one shader: grain, scanlines, chroma split, a wandering tracking
tear, an edge that breathes when it's near but unseen, and Slender interference driven
straight off the stare. The static IS the read-out; there's no meter for it.

TWO BUGS WORTH THE COMMIT MESSAGE
1. `seen_now` was a pure view-cone test with NO line of sight, so it built static
   through walls — and in a maze that's most of the time.
2. Fixing that exposed the real one: the generated maze was so dense there was no
   sightline longer than a few metres ANYWHERE, which kills the entity outright, since
   a stalker you can never see can never be stared at. Thinned the generator — skip a
   third of the lattice lines, much bigger gaps — which also matches the reference
   photographs far better. They're mostly open floor with occasional slabs, not
   corridors.

dev/probe_horror.gd verifies all of it headlessly, including hunting for a clear
sightline first (otherwise the Slender test silently tests nothing).

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-07-31 19:25:28 +10:00
game LANE7: LEVEL 0 gets an entity, a tape, and a loop 2026-07-31 19:25:28 +10:00
LANES LANE7: LEVEL 0 gets an entity, a tape, and a loop 2026-07-31 19:25:28 +10:00
tools LANE7: LEVEL 0 gets an entity, a tape, and a loop 2026-07-31 19:25:28 +10:00
web LANE5: deploy web toy to digalot.fyi/destroy + depot already hardened 2026-07-14 23:24:49 +10:00
.gitignore LANE6: rigged FPS viewmodel, weapon loadout + material matrix, 4 HUD styles 2026-07-31 16:34:00 +10:00
destroyulater.txt Restructure into monorepo: game/ is the Godot lane 2026-07-14 15:33:13 +10:00
README.md LANE7: LEVEL 0 — the Backrooms, generated walls, and the dust mechanic 2026-07-31 19:05:56 +10:00

DESTROYULATOR

Clock out. Smash everything.

A comedic, non-violent, first-person workplace-destruction game from Monster Robot Party. Nobody gets hurt but the furniture.

The game is CUBICLE HELL. You work a shift doing deliberately infuriating office tasks. A rage meter fills. When it fills you snap, and you physically cannot go back to your desk until you've broken enough things. Then you sit back down and try to earn the rest of your day. Your score is your payslip: wages earned minus damages caused — so during a meltdown you want to wreck a lot of cheap rubbish rather than one expensive filing cabinet. Falling Down, scored by payroll.

Five sites (Scranton branch, Pawnee city hall, a hacker house, a windowless IT basement, and the Backrooms — where the walls are procedurally generated and everything you're there to destroy is invisible until you coat it in extinguisher powder, some of which you breathe) and four modes (Cubicle Hell, the Gauntlet, Total Destruction, Against the Clock). Sites are data, not code — see game/scripts/Levels.gd.

Design, built and planned, lives in LANES/LANE7-cubicle-hell.md.

Monorepo layout — one lane per directory

Dir Lane What
game/ Lane 1 — the game Godot 4.7 (Jolt physics, Mac-native). The shippable build.
web/ Lane 3 — web toy Three.js dig-and-destroy demo (planned; thriftgod-adjacent).
tools/ asset build Blender generators for the viewmodel + office props. Re-runnable.
LANES/ coordination Execution specs for parallel Claude/Opus work sessions.
3D-STORE/ not in git 700MB Blender/Unreal source-asset vault (see .gitignore).
destroyulater.txt lore The founding chat where the idea happened.

Asset generation lives in its own repo: ~/Documents/meshgod (text→GLB factory). The first-person arms are cut from ~/Documents/character_kit_modular (the GODVERSE modular character kit) by tools/gen_fps_arms.py.

Rules for parallel work sessions

  • A lane session writes ONLY inside its own directory. Cross-lane contracts (asset formats, file drops) are specified in LANES/*.md.
  • Every change to game/ must pass the headless smoke test before commit: Godot --headless --path game --quit-after 180 with zero script errors.
  • GLB convention everywhere: glTF Y-up, 1 unit = 1 m, origin at floor-center.