Log inGet started
World

COINFALL

Commits

Every published commit of this world, on every branch, newest first.

7def4b70bdfix(coinfall): the tube looked broken because it was, all the time The composite bleed sat at 0.65 texels with nothing scaling it, so every edge in the game carried a red/cyan split from the first frame to the last. That is what reads as 'the corruption is a rendering bug' - it was never corruption, it was the baseline, and it never turned off. 0.65 -> 0.12, with glow, scanline and vignette pulled back to match. The hall was also too dark to see what is in it. It is dressed with 42 wall cabinets, 10 bays, a change booth, a patterned carpet and ceiling fixtures, and at the old gain a player could make out one machine and nothing else - which is why it read as an empty corridor. Hall gain 1.0 -> 2.4, lamp reach 9 -> 11.zero-proxy @ DESKTOP-DB3UJOJ · Aug 1, 2026main+0~14-0962364014btune(coinfall): machine surfaces lit for machine distance, not corridor distance The cabinet fills the frame from 0.6 m away. Carried over from the hall, whose lamp gain is aimed at surfaces metres down a corridor, every machine surface blew out to flat white: the chipped red paint read as fire-engine red and the worn steel deck as pale yellow. Gain, lamp intensity and range are now set for the distance the player actually sees these from, and each tint multiplies its texture down rather than up.zero-proxy @ DESKTOP-DB3UJOJ · Jul 31, 2026main+0~33-0f844f334ddfeat(coinfall): one look, every surface textured and on the ps1 shader The hall was atlas-textured PS1 and the machines were flat untextured PBR, which is two different games in one frame: the PBR surfaces were lit by scene lights the PS1 shader does not use, and never dithered, snapped or fogged with anything around them. - Nine seamless surface textures generated: cabinet paint, playfield deck, brass, steel, bone, membrane, chrome, a lit marquee panel and a phosphor display. - All eleven machine materials rebound to ps1 with a texture, the hall's lighting and fog parameters, and a uv_tile suited to the part they cover. - Every one added to the material drive list. A material left off it is a surface that never rots, never dims into the fog, and is not lit by the machine the player is standing at.zero-proxy @ DESKTOP-DB3UJOJ · Jul 31, 2026main+54~35-0c3a0419994feat(coinfall): the site's paperwork is the extras, and the tube stops eating it - EXTRAS now opens on SITE PAPERWORK: six documents, one per cabinet, shown as the cream sheets they are once recovered and as a dark slug until then. They are the reason to go deeper — the records are inside the machines. - The printout's stock is a used cream rather than a fresh sheet: the tube blooms every bright surface and was eating the small type off it. - The display chain re-asserts its whole property set for a couple of seconds after registration. A write landing in the same breath as the registration does not stick, so every fresh install came up with a black tint and the game ran invisibly behind it.zero-proxy @ DESKTOP-DB3UJOJ · Jul 31, 2026main+0~8-015fbd15126feat(coinfall): the game opens on a document, and the machines have names A closing inventory prints itself line by line on continuous-feed paper before the first machine. The story is the arithmetic between two of its lines -- six machines on the floor, five accounted for -- and nothing in it explains anything. It is skippable, and it ends on a shutter. - cf_lore: one home for the site's paperwork. The opening inventory, a note per machine recovered by killing it, and the machines' own names and the line the hall says the first time you stand at one. - Five new sounds: a tube failing to strike, the print head, something breathing through a grille, the shutter, and a sub-bass bed under the whole sheet. - The relic token is re-armed after a missed quota. It was only re-armed on a BANKED quota, so the pool closed for the rest of the run the first time one was missed. - Quota 1 drops 70 -> 52. A full playthrough failed it three times running on the first machine and died in three minutes.zero-proxy @ DESKTOP-DB3UJOJ · Jul 31, 2026main+29~12-0e87dcec397fix(coinfall): the machine feeds the relic token that reaches the relic pool A relic is offered by pushing a token over the ledge, and nothing but the debug hook ever put a token on a bed -- so the whole pool was unreachable in a real run. The live machine now feeds one a few seconds into every quota.zero-proxy @ DESKTOP-DB3UJOJ · Jul 31, 2026main+0~2-03a3b48408ffeat(coinfall): every relic and every machine mechanic proven against the field Measured, all twelve relics: - NUDGE moves 247 of 280 coins forward (mean +13.2 mm) against a control of -0.2 mm with the arm frozen; MAGNET clears a quota from a standing start that the same frozen arm pays nothing from; SPILL adds ten coins and takes ten from the hand; HALT freezes the arm and expires; TITHE turns 15 corruption into 51 bank. GREASED SHELF, HEAVY COIN and THIRD HAND reach the machine (payout 1.4x, mass 2x, two coins per press); IRON LUNG hands its point over on the spot; DEBT RELIEF lengthens the clock 60 -> 80; SPLIT TONGUE widens the draft 3 -> 4. Mechanics, per machine: - THE TITHE takes a share of what crosses its slot rather than all of it. - THE MAW holds its platform while the throat pulls the bed back. Driving the platform backwards at the same time crushed the bed against the wall -- 66 coins destroyed against 1 paid -- and is now 6 taken against 23 paid. - A machine tops its own bed back up as its mechanic eats it.zero-proxy @ DESKTOP-DB3UJOJ · Jul 31, 2026main+0~2-08ee6c6b745fix(coinfall): the pusher pays, on measurements rather than guesses - Physics.setVelocity applies its vector in the body's own frame (#7618), so every machine on the left wall was driving itself out of its own cabinet down the hall. The pusher is driven in its local frame and clamped to its rails. - The moving platform reached only the back third of the field, so a swept coin landed on static steel and nothing could move it again. It now runs to within a few coins of the lip. - The bed is laid TOUCHING and staggered: at a 6%% pitch the coins sat 2 mm apart and a push died in the first gap. Measured, 30 coins dropped into that bed banked exactly zero. - The bed fills its base layer solid before heaping, and is loaded at the level the machine holds at rest with the drive stopped -- an overfilled bed shed most of a quota over the lip before the player touched it. - Prizes are scattered through the bed rather than parked at the front edge. - A machine loads its own bed from its update, sweeping orphans a hot reload left behind: a field written on a component in the frame it was added is overwritten when the component initialises. - Pay events are collected and fired after the settle walk. Firing inside it ran the quota check, which cleared the field the walk was still indexing. - Quota targets recalibrated against measured throughput.zero-proxy @ DESKTOP-DB3UJOJ · Jul 31, 2026main+0~12-0d562145f17fix(coinfall): one measured description of the playfield, and a machine that can be finished The machine component carried its own copy of the playfield, 90 mm below the one the cabinet is built from. It drove the pusher a metre into the air and ran the stroke across the cabinet's width instead of along its depth, so nothing pushed and the bed drained off the front on its own. - cf_models.FIELD_METRICS is now derived from cf_pusher.SPEC - cf_machine rewritten on that spec: it drives the pusher through the module's own velocity drive, lays the bed and the trinkets through fillBed/layTrinkets, and each variant runs its own mechanic (tithe slot, maw's inhale, the choir's live mouth, the last machine's peristaltic wave) - the run counted the shrine as a clearable machine, so it could never be won - the CRT wrote no defaults, so an untouched tint multiplied the whole screen to black - the key light is a real light again, not a property on materials the machines do not use - the audio emitters are adopted by name instead of respawned every hot reload --- chore(coinfall): drop the pusher validation bench scene It was scaffolding for measuring the field and never had an entrypoint, a README or a camera, so it blocked every push. --- fix(coinfall): pin the coin's token texture by guid A dotted-path literal does not resolve in the live asset index at publish, so the whole world refused to push. --- fix(coinfall): write the coin's texture reference in the resolvable form A `__ref` with a dotted path is not what the publish gate resolves; a bare `ref:` guid is. --- chore(coinfall): stage the field texture the refs module points at --- chore(coinfall): stage every authored asset so the published tree is complete The refs module points at meshes, textures and clips that were live in the engine but had never been recorded, so publish refused on each in turn.zero-proxy @ DESKTOP-DB3UJOJ · Jul 31, 2026main+160~39-0f591fc0d75COINFALL: keyboard on every screen, and machines that open loadedzero-proxy @ DESKTOP-DB3UJOJ · Jul 26, 2026main+0~6-0ca8aff7929COINFALL: set the cabinet in its own arcade and phosphor faceszero-proxy @ DESKTOP-DB3UJOJ · Jul 26, 2026main+2~4-01ed79f1df7COINFALL: the tube covers the world, not the HUDzero-proxy @ DESKTOP-DB3UJOJ · Jul 26, 2026main+0~5-0a32df93196COINFALL: open the play chamber and give each machine its own pile --- COINFALL: carry the key light position as scalars, not a float3 --- COINFALL: re-mint the field atlas so the playfield is not painted blackzero-proxy @ DESKTOP-DB3UJOJ · Jul 26, 2026main+0~26-0ca0326d895COINFALL: stand the player on a floor that exists, bind the cabinet atlas, answer the menu keyszero-proxy @ DESKTOP-DB3UJOJ · Jul 26, 2026main+0~12-0cab975ed99COINFALL: PS1 horror roguelite coin pusherzero-proxy @ DESKTOP-DB3UJOJ · Jul 26, 2026main+323~0-0