# LANE 9 — the fun layer: still scales, the Roomba, the incident report, chair riding *Spec'd and executed by Fable, 2026-08-03. Owns `game/` only.* Four features, one commit each, every one riding systems that already exist. House rule respected throughout: **the game never says so** — no tutorials, no popups explaining. ## 0. The scales sleep at spawn *(bug fix — restores a red gate)* `probe_levels` reads 0.48 m/s residual in the grocer: the scale pan (`Main.gd:391`, `angular_damp = 0.25`, origin at the pivot) is near-neutrally balanced, so spawn jitter never dies. Fix: after the joint has resolved (~0.6 s), zero the pan's velocities and put it to sleep. The swing feel after a hit is untouched — this is a spawn-settle, same spirit as the spawn guard. Gate: all six sites back to `0.00 m/s`. ## 1. The Roomba *(scripts/Roomba.gd)* A robot vacuum that patrols the site **eating your debris** — the anti-combo antagonist. - `class_name Roomba extends Smashable`, `kind = "steel"` — so the weapon matrix already works: bare hands are futile (clank), a crowbar dents it, a sledge can genuinely kill it (and the payslip bills you for it, because it's company property). - Wander: slow patrol; when debris (group `debris`) is within sniff range it steers there. - Eat: an Area3D mouth; debris it touches shrinks and vanishes with a little vacuum whirr, and **each item eaten deducts score** (`Main._score`), with an occasional smug beep. - Dent it and it panics: beeps, flees fast for a few seconds. - Procedural audio (beeps + whirr) synthesized in `_ready` — no assets, house style. - Spawns in every site EXCEPT LEVEL 0 (`_backrooms == null` check) — nothing cute in the Backrooms — and not in the Gauntlet round itself. ## 2. The incident report *(scripts/Receipt.gd)* When a meltdown ends (`Rage.calmed` after a SNAP), a dot-matrix incident report prints, line by line, itemizing what you broke *during that window*: `OBJECT · unit $ · ×N`, then `TOTAL DAMAGES`, then `DEDUCTED FROM PAY`. One synth chirp per printed line. Collected via `Main._on_smashed` while `Rage.is_meltdown()`. Any key (or 5 s) dismisses. All drawn/synthesized in code — no textures, no audio files. ## 3. Ride the office chair *(scripts/ChairRide.gd + Player hooks)* `E` on an office chair (piece named `office-chair`, within 2.5 m, hands empty) mounts it. - The chair stays a real RigidBody3D; the player follows it kinematically (collision paused), camera up top. WASD pushes it (strong forward, weak steering — deliberately bad), momentum is real, the floor is the office. Space/E hops off with a small dismount. - Ramming does what physics says: mass × speed scatters furniture; brittle things (vinyl, glass, produce) break on impact via their existing `brittle_speed` — no new damage code. - If the chair shatters mid-ride (it's `plastic`; you CAN sledge your own vehicle), the ride ends on the spot, comedically. ## Gates (each commit) Headless smoke clean · `probe_levels` all sites `0.00 m/s` · `probe_overlap` CLEAN. README controls table updated in the final commit.