Go to file
Monster Robot Party 61757d24bc LANE6: rigged FPS viewmodel, weapon loadout + material matrix, 4 HUD styles
Hands/POV
- Cut a real first-person arms rig out of the GODVERSE modular character kit
  (tools/gen_fps_arms.py): ch01 hands + per-side sleeves on the full 65-bone
  mixamorig skeleton, so all 20 finger bones per hand are poseable at runtime.
  Textures shrunk to 1k; 4.2 MB.
- ViewModel.gd instances that rig ONCE PER HAND and places each instance so its
  own hand bone lands on the grip — no IK. Grip orientation is measured off the
  rig at load (pinky->index knuckle = bore axis, elbow->hand = forearm dir), so
  it survives re-tuning grip_rest_rot instead of needing new euler angles.
- Motion layers: look-sway with spring-back, walk bob scaled by speed and weapon
  heft, idle breathe, landing dip, weapon lower/raise on swap.
- Sleeve material overridden (donor asset is a fantasy leather bracer); hand
  material forced non-metallic (its spec/gloss maps rendered skin as bronze).

Weapons
- Weapon.gd replaces MeleeAttack: 6 weapons, 4 swing archetypes, and the
  weapon-vs-material matrix from the founding chat.
- Smashable moves from binary hits_to_break to hp/toughness, giving three
  outcomes: break, dent, or futile (dead clank, no score, HUD nudge). The box
  cutter genuinely shreds cardboard and genuinely cannot hurt a filing cabinet.
- The hit lands at Weapon.contact THROUGH the swing, not on the click — that
  delay is most of why the sledge feels different from the cutter.
- Slots on 1-6 / wheel / Q; game modes moved to M, HUD cycle to H.

HUD
- Hud.gd: Arcade, Minimal, Work Order (a corporate destruction docket that fills
  in line items) and Dev, over one shared data feed. Scoring + combo multipliers.

Dev harness (not shipped)
- macOS screen-recording perms aren't available to the CLI, so the game records
  itself: dev/demo.tscn + DemoDriver.gd drive a scripted tour for --write-movie,
  and dev/probe_*.gd print rig/scale/placement numbers.

Fix: tools/gen_viewmodel.py box() scaled by size/2 on top of primitive_cube_add's
already-unit side length, halving every box — which detached the bat's blade.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-07-31 16:34:00 +10:00
game LANE6: rigged FPS viewmodel, weapon loadout + material matrix, 4 HUD styles 2026-07-31 16:34:00 +10:00
LANES LANE5 spec: harden 3GOD (close open mode, plug SSRF) + deploy web toy publicly 2026-07-14 22:47:22 +10:00
tools LANE6: rigged FPS viewmodel, weapon loadout + material matrix, 4 HUD styles 2026-07-31 16:34:00 +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 Restructure into monorepo: game/ is the Godot lane 2026-07-14 15:33:13 +10:00

DESTROYULATOR

Clock out. Smash everything.

A comedic, non-violent, first-person workplace-destruction game from Monster Robot Party. Level 01 is our actual record store. Nobody gets hurt but the furniture.

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).
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).

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.