Go to file
Monster Robot Party 0e80d393c1 LANE9: the grocer is still again — settle sweep + parked scale pans
probe_levels was red (0.15-0.48 m/s residual, grocer): the pin-jointed scale pans
hang neutrally balanced so the joint solve re-wakes them forever, and 310 packed
bodies (bottles on shelves, nested fruit) trade contact micro-jitter for seconds.
Two mechanisms, both one-shot at spawn, neither touching gameplay feel:

- scale pans PARK frozen once the joint has resolved (plain .sleeping doesn't stick
  — the joint re-wakes its island every frame) and unfreeze the first time the
  player comes within 1.7 m. You cannot see a pan swing from further than that.
- a settle sweep the frame the spawn-guard window closes: bodies drifting slower
  than 0.5 m/s are put to bed. Anything faster is left for the guard to name —
  a real mis-spawn still fails loudly.

probe_levels also names the culprit properly now ([class, parent] — name-collided
siblings all render as @RigidBody3D@N, which is how three different scale pans
masqueraded as one mystery body across runs).

All six sites: 0.00 m/s. probe_overlap: CLEAN.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-08-03 23:57:25 +10:00
game LANE9: the grocer is still again — settle sweep + parked scale pans 2026-08-03 23:57:25 +10:00
LANES LANE9 spec: still scales, the Roomba, the incident report, chair riding 2026-08-03 23:49:53 +10:00
tools LANE8: scales that swing, bags that don't open, and fruit you can throw 2026-08-01 11:22:47 +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 LANE8: the greengrocer — soft stock, stacks that collapse, and litres 2026-08-01 09:38:35 +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.

Six sites (Scranton branch, Pawnee city hall, a hacker house, a windowless IT basement, a greengrocer where everything is soft except the bottles, 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.