Go to file
Monster Robot Party 4bcd7b49d9 LANE7: four workplaces, built from data
Office.gd is gone. Floorplan.gd consumes a spec Dictionary — bounds, palette, walls
with doors and glazing styles, window runs with mullions and blinds, ceiling style,
light grid and style, slabs, static props, desk clusters, chairs, level-specific
smashables and spawn — and Levels.gd holds four of them.

Making this data rather than four subclasses means a site is authorable in minutes,
levels can be diffed, and a real generator can later emit the same structure (a BSP
split of the footprint -> rooms -> doors on shared walls -> fittings by room type).
That was the actual answer to "can we use this git to generate plans": the repo John
found is OpenSCAD SVG->STL for 3D printing, with no generation, no plan parsing, no
room polygons and GPL-3.0, so it can't help — but Office.gd was already most of a
parametric plan builder, and lifting its numbers out is the real path.

The four sites are deliberately not reskins; they differ in the three things a player
actually reads — palette, light, and what the walls are made of:

  SCRANTON      magnolia, grey carpet, drop ceiling, fluorescent troffers, daylight
                down one glazed wall. The baseline.
  PAWNEE        civic beige and blue-grey, low partitions everywhere, a public
                counter, pinboards. Municipal and over-partitioned.
  THE INCUBATOR timber floor, white walls, 3 m ceiling, PENDANT lights, glass wall
                onto a pool. Nobody has an office; they work at a dining table.
  SUB-LEVEL 4   concrete, NO windows at all, exposed services, bare strip lights, a
                wall of server racks. The light is green and everything is junk.

L cycles sites in-game; _load_level tears down the shell, rebuilds, re-registers task
stations and re-arms the shift.

tools/gen_level_props.py adds ten more procedural props. The filing cabinet is the
important one: it exports as a CARCASS plus a separate DRAWER, each with its own
floor-centre origin, so the Gauntlet can pull a drawer out as its own rigid body and
spill the files. Also file folder, desk phone, guillotine, shredder, server rack,
sofa, wastebin, stapler.

dev/probe_levels.gd builds every level and reports residual motion after a full
second. All four read 0.00 m/s.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-07-31 17:58:41 +10:00
game LANE7: four workplaces, built from data 2026-07-31 17:58:41 +10:00
LANES LANE7: CUBICLE HELL — the tilt loop, the job, and the payslip 2026-07-31 17:34:34 +10:00
tools LANE7: four workplaces, built from data 2026-07-31 17:58:41 +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: CUBICLE HELL — the tilt loop, the job, and the payslip 2026-07-31 17:34:34 +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.

Level 01 is an open-plan office after the Dunder Mifflin floor plan. 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.