COINFALL
fix(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.
d562145f174e755965eab429dfed7d2bdcd3701aa6f33340bf2888f05776c196- Author
- zero-proxy @ DESKTOP-DB3UJOJ
- Date
- Jul 31, 2026
- Branch
- main
- Parent
- f591fc0d75
199 files changed
- Changed.world_entrypoint.luau6.3 KB → 6.3 KBBeforeAfter
- Changedcf_director.componentFolderBeforeAfter
- Changedcf_director.component/init.luau33.0 KB → 35.3 KBBeforeAfter
- Changedcf_display.moduleFolderBeforeAfter
- Changedcf_display.module/init.luau3.5 KB → 5.4 KBBeforeAfter
- Changedcf_geo.moduleFolderBeforeAfter
- Changedcf_geo.module/init.luau11.8 KB → 12.3 KBBeforeAfter
- Changedcf_m_coin.mesh/data.zmsh1.8 KB → 1.8 KBBeforeAfter
- Changedcf_m_eye.mesh/data.zmsh5.4 KB → 5.4 KBBeforeAfter
- Changedcf_m_pusher_arm.mesh/data.zmsh1.8 KB → 1.8 KBBeforeAfter
- Changedcf_m_pusher_deck.mesh/data.zmsh4.5 KB → 4.5 KBBeforeAfter
- Changedcf_m_pusher_shelf.mesh/data.zmsh2.3 KB → 2.3 KBBeforeAfter
- Changedcf_m_pusher_shell.mesh/data.zmsh23.9 KB → 23.9 KBBeforeAfter
- Changedcf_m_pusher_shell_dead.mesh/data.zmsh24.2 KB → 24.2 KBBeforeAfter
- Changedcf_m_pusher_shell_dead_glow.mesh/data.zmsh4.3 KB → 4.3 KBBeforeAfter
- Changedcf_m_pusher_shell_glow.mesh/data.zmsh4.6 KB → 4.6 KBBeforeAfter
- Changedcf_m_pusher_shell_shrine.mesh/data.zmsh23.9 KB → 23.9 KBBeforeAfter
- Changedcf_m_pusher_shell_shrine_glow.mesh/data.zmsh4.6 KB → 4.6 KBBeforeAfter
- Changedcf_m_relic.mesh/data.zmsh4.3 KB → 4.3 KBBeforeAfter
- Changedcf_machine.componentFolderBeforeAfter
- Changedcf_machine.component/init.luau15.5 KB → 24.4 KBBeforeAfter
- Changedcf_mats.moduleFolderBeforeAfter
- Changedcf_mats.module/init.luau5.2 KB → 6.9 KBBeforeAfter
- Changedcf_models.moduleFolderBeforeAfter
- Changedcf_models.module/init.luau27.8 KB → 30.7 KBBeforeAfter
- Addedcf_pusher.moduleFolderAfter
- Addedcf_pusher.module/.metadata17 BAfter
- Addedcf_pusher.module/README.md190 BAfter
- Addedcf_pusher.module/init.luau37.9 KBAfter
- Changedcf_refs.moduleFolderBeforeAfter
- Changedcf_refs.module/init.luau4.8 KB → 5.5 KBBeforeAfter
- Addedcf_shell.moduleFolderAfter
- Addedcf_shell.module/.metadata17 BAfter
- Addedcf_shell.module/README.md189 BAfter
- Addedcf_shell.module/init.luau43.7 KBAfter
- Changedcf_state.moduleFolderBeforeAfter
- Changedcf_state.module/init.luau9.5 KB → 9.7 KBBeforeAfter
- Changedcf_ui.componentFolderBeforeAfter
- Changedcf_ui.component/init.luau35.4 KB → 29.5 KBBeforeAfter
- Changedcf_world.moduleFolderBeforeAfter
- Changedcf_world.module/init.luau15.1 KB → 14.4 KBBeforeAfter
- Addedcfp_bone.materialFolderAfter
- Addedcfp_bone.material/.metadata38 BAfter
- Addedcfp_bone.material/mat.yaml111 BAfter
- Addedcfp_bone.material/preview.png119 KBAfter
- Addedcfp_brass.materialFolderAfter
- Addedcfp_brass.material/.metadata38 BAfter
- Addedcfp_brass.material/mat.yaml114 BAfter
- Addedcfp_brass.material/preview.png116 KBAfter
- Addedcfp_chrome.materialFolderAfter
- Addedcfp_chrome.material/.metadata38 BAfter
- Addedcfp_chrome.material/mat.yaml114 BAfter
- Addedcfp_chrome.material/preview.png117 KBAfter
- Addedcfp_coin.materialFolderAfter
- Addedcfp_coin.material/.metadata38 BAfter
- Addedcfp_coin.material/README.md193 BAfter
- Addedcfp_coin.material/mat.yaml158 BAfter
- Addedcfp_coin.material/preview.png112 KBAfter
- Addedcfp_deck.materialFolderAfter
- Addedcfp_deck.material/.metadata38 BAfter
- Addedcfp_deck.material/mat.yaml111 BAfter
- Addedcfp_deck.material/preview.png113 KBAfter
- Addedcfp_flesh.materialFolderAfter
- Addedcfp_flesh.material/.metadata38 BAfter
- Addedcfp_flesh.material/mat.yaml111 BAfter
- Addedcfp_flesh.material/preview.png114 KBAfter
- Addedcfp_glass.materialFolderAfter
- Addedcfp_glass.material/.metadata38 BAfter
- Addedcfp_glass.material/mat.yaml411 BAfter
- Addedcfp_glass.material/preview.png118 KBAfter
- Addedcfp_machine_choir.bundleFolderAfter
- Addedcfp_machine_choir.bundle/.metadata184 BAfter
- Addedcfp_machine_choir.bundle/entity_template50.7 KBAfter
- Addedcfp_machine_choir.bundle/preview.png113 KBAfter
- Addedcfp_machine_last.bundleFolderAfter
- Addedcfp_machine_last.bundle/.metadata184 BAfter
- Addedcfp_machine_last.bundle/entity_template56.5 KBAfter
- Addedcfp_machine_last.bundle/preview.png112 KBAfter
- Addedcfp_machine_maw.bundleFolderAfter
- Addedcfp_machine_maw.bundle/.metadata184 BAfter
- Addedcfp_machine_maw.bundle/entity_template55.7 KBAfter
- Addedcfp_machine_maw.bundle/preview.png111 KBAfter
- Addedcfp_machine_parlour.bundleFolderAfter
- Addedcfp_machine_parlour.bundle/.metadata184 BAfter
- Addedcfp_machine_parlour.bundle/entity_template34.7 KBAfter
- Addedcfp_machine_parlour.bundle/preview.png11.8 KBAfter
- Addedcfp_machine_tithe.bundleFolderAfter
- Addedcfp_machine_tithe.bundle/.metadata184 BAfter
- Addedcfp_machine_tithe.bundle/entity_template38.1 KBAfter
- Addedcfp_machine_tithe.bundle/preview.png11.9 KBAfter
- Addedcfp_neon.materialFolderAfter
- Addedcfp_neon.material/.metadata38 BAfter
- Addedcfp_neon.material/mat.yaml169 BAfter
- Addedcfp_neon.material/preview.png125 KBAfter
- Addedcfp_screen.materialFolderAfter
- Addedcfp_screen.material/.metadata38 BAfter
- Addedcfp_screen.material/mat.yaml170 BAfter
- Addedcfp_screen.material/preview.png124 KBAfter
- Addedcfp_shell.materialFolderAfter
- Addedcfp_shell.material/.metadata38 BAfter
- Addedcfp_shell.material/mat.yaml112 BAfter
- Addedcfp_shell.material/preview.png112 KBAfter
- Addedcfp_shell_lit.materialFolderAfter
- Addedcfp_shell_lit.material/.metadata38 BAfter
- Addedcfp_shell_lit.material/mat.yaml114 BAfter
- Addedcfp_shell_lit.material/preview.png116 KBAfter
- Addedcfp_steel.materialFolderAfter
- Addedcfp_steel.material/.metadata38 BAfter
- Addedcfp_steel.material/mat.yaml114 BAfter
- Addedcfp_steel.material/preview.png117 KBAfter
- Changedcrt.shaderFolderBeforeAfter
- Changedcrt.shader/properties.yaml774 B → 1.0 KBBeforeAfter
- Addedfonts/PressStart2P-Regular.ttf118 KBAfter
- Changedfonts/PressStart2P_Regular.fontFolderBeforeAfter
- Addedfonts/PressStart2P_Regular.font/.metadata203 BAfter
- Addedfonts/PressStart2P_Regular.font/data.zfnt330 KBAfter
- Addedfonts/VT323-Regular.ttf153 KBAfter
- Changedfonts/VT323_Regular.fontFolderBeforeAfter
- Addedfonts/VT323_Regular.font/.metadata195 BAfter
- Addedfonts/VT323_Regular.font/data.zfnt786 KBAfter
- Addedgenerated/audio/a_single_arcade_coin_dropping_into_a_met.soundClipFolderAfter
- Addedgenerated/audio/a_single_arcade_coin_dropping_into_a_met.soundClip/.metadata352 BAfter
- Addedgenerated/audio/a_single_arcade_coin_dropping_into_a_met.soundClip/README.md126 BAfter
- Addedgenerated/audio/a_single_arcade_coin_dropping_into_a_met.soundClip/data.zaud24.7 KBAfter
- Addedgenerated/audio/a_single_arcade_coin_dropping_into_a_met.soundClip/source.mp333.1 KBAfter
- Addedgenerated/images/A_cheap_gold-plated_prize_ring_with_a_du.png1.0 MBAfter
- Addedgenerated/images/A_cheap_gold_plated_prize_ring_with_a_du.textureFolderAfter
- Addedgenerated/images/A_cheap_gold_plated_prize_ring_with_a_du.texture/.metadata834 BAfter
- Addedgenerated/images/A_cheap_gold_plated_prize_ring_with_a_du.texture/README.md174 BAfter
- Addedgenerated/images/A_cheap_gold_plated_prize_ring_with_a_du.texture/data.ztex5.6 MBAfter
- Addedgenerated/images/A_cheap_gold_plated_prize_ring_with_a_du.texture/preview.png118 KBAfter
- Addedgenerated/images/A_single_yellowed_molar_strung_on_a_shor.png944 KBAfter
- Addedgenerated/images/A_single_yellowed_molar_strung_on_a_shor.textureFolderAfter
- Addedgenerated/images/A_single_yellowed_molar_strung_on_a_shor.texture/.metadata807 BAfter
- Addedgenerated/images/A_single_yellowed_molar_strung_on_a_shor.texture/README.md174 BAfter
- Addedgenerated/images/A_single_yellowed_molar_strung_on_a_shor.texture/data.ztex5.6 MBAfter
- Addedgenerated/images/A_single_yellowed_molar_strung_on_a_shor.texture/preview.png118 KBAfter
- Addedgenerated/images/A_small_tarnished_silver_locket_on_a_bro.png1.0 MBAfter
- Addedgenerated/images/A_small_tarnished_silver_locket_on_a_bro.textureFolderAfter
- Addedgenerated/images/A_small_tarnished_silver_locket_on_a_bro.texture/.metadata828 BAfter
- Addedgenerated/images/A_small_tarnished_silver_locket_on_a_bro.texture/README.md174 BAfter
- Addedgenerated/images/A_small_tarnished_silver_locket_on_a_bro.texture/data.ztex5.6 MBAfter
- Addedgenerated/images/A_small_tarnished_silver_locket_on_a_bro.texture/preview.png120 KBAfter
- Addedgenerated/images/A_tarnished_brass_arcade_token__milled_e.png1.2 MBAfter
- Addedgenerated/images/A_tarnished_brass_arcade_token__milled_e.textureFolderAfter
- Addedgenerated/images/A_tarnished_brass_arcade_token__milled_e.texture/.metadata698 BAfter
- Addedgenerated/images/A_tarnished_brass_arcade_token__milled_e.texture/README.md174 BAfter
- Addedgenerated/images/A_tarnished_brass_arcade_token__milled_e.texture/data.ztex5.6 MBAfter
- Addedgenerated/images/A_tarnished_brass_arcade_token__milled_e.texture/preview.png117 KBAfter
- Addedgenerated/meshes/A_cheap_gold-plated_prize_ring_with_a_du.glb2.8 MBAfter
- Addedgenerated/meshes/A_cheap_gold_plated_prize_ring_with_a_du.bundleFolderAfter
- Addedgenerated/meshes/A_cheap_gold_plated_prize_ring_with_a_du.bundle/.metadata586 BAfter
- Addedgenerated/meshes/A_cheap_gold_plated_prize_ring_with_a_du.bundle/A_cheap_gold-plated_prize_ring_with_a_du.glb2.8 MBAfter
- Addedgenerated/meshes/A_cheap_gold_plated_prize_ring_with_a_du.bundle/entity_template756 BAfter
- Addedgenerated/meshes/A_cheap_gold_plated_prize_ring_with_a_du.bundle/material/Material_0.materialFolderAfter
- Addedgenerated/meshes/A_cheap_gold_plated_prize_ring_with_a_du.bundle/material/Material_0.material/.metadata38 BAfter
- Addedgenerated/meshes/A_cheap_gold_plated_prize_ring_with_a_du.bundle/material/Material_0.material/mat.yaml235 BAfter
- Addedgenerated/meshes/A_cheap_gold_plated_prize_ring_with_a_du.bundle/material/Material_0.material/preview.png118 KBAfter
- Addedgenerated/meshes/A_cheap_gold_plated_prize_ring_with_a_du.bundle/material/Material_1.materialFolderAfter
- Addedgenerated/meshes/A_cheap_gold_plated_prize_ring_with_a_du.bundle/material/Material_1.material/.metadata38 BAfter
- Addedgenerated/meshes/A_cheap_gold_plated_prize_ring_with_a_du.bundle/material/Material_1.material/mat.yaml118 BAfter
- Addedgenerated/meshes/A_cheap_gold_plated_prize_ring_with_a_du.bundle/material/Material_1.material/preview.png115 KBAfter
- Addedgenerated/meshes/A_cheap_gold_plated_prize_ring_with_a_du.bundle/mesh/nodes_0_.meshFolderAfter
- Addedgenerated/meshes/A_cheap_gold_plated_prize_ring_with_a_du.bundle/mesh/nodes_0_.mesh/.metadata17 BAfter
- Addedgenerated/meshes/A_cheap_gold_plated_prize_ring_with_a_du.bundle/mesh/nodes_0_.mesh/README.md134 BAfter
- Addedgenerated/meshes/A_cheap_gold_plated_prize_ring_with_a_du.bundle/mesh/nodes_0_.mesh/data.zmsh53.6 KBAfter
- Addedgenerated/meshes/A_cheap_gold_plated_prize_ring_with_a_du.bundle/preview.png115 KBAfter
- Addedgenerated/meshes/A_cheap_gold_plated_prize_ring_with_a_du.bundle/texture/Material_0_albedo.textureFolderAfter
- Addedgenerated/meshes/A_cheap_gold_plated_prize_ring_with_a_du.bundle/texture/Material_0_albedo.texture/.metadata142 BAfter
- Addedgenerated/meshes/A_cheap_gold_plated_prize_ring_with_a_du.bundle/texture/Material_0_albedo.texture/README.md174 BAfter
- Addedgenerated/meshes/A_cheap_gold_plated_prize_ring_with_a_du.bundle/texture/Material_0_albedo.texture/data.ztex6.8 MBAfter
- Addedgenerated/meshes/A_cheap_gold_plated_prize_ring_with_a_du.bundle/texture/Material_0_albedo.texture/preview.png125 KBAfter
- Addedgenerated/meshes/A_cheap_gold_plated_prize_ring_with_a_du.bundle/texture/Material_0_albedo.texture/source.png6.8 MBAfter
- Addedreference/SPEC.md4.5 KBAfter
- Addedreference/Spider-Man_Single-1P_left-persp.jpg467 KBAfter
- Addedreference/Spider-Man_Single-1P_right-persp.jpg456 KBAfter
- Addedreference/Spider-Man_Single-1P_straight-600x1198.jpg208 KBAfter
- Addedreference/castlevania_marble.jpg4.9 MBAfter
- Addedreference/castlevania_marble_small.jpg568 KBAfter
- Addedreference/cv_field.jpg994 KBAfter
- Addedreference/western_dream.jpg1.9 MBAfter
- Addedreference/western_dream_small.jpg393 KBAfter
- Changedscenes/main.sceneFolderBeforeAfter
- Changedscenes/main.scene/scene.json6.3 KB → 10.3 KBBeforeAfter
- Addedskills/modeling-from-reference.agentSkillFolderAfter
- Addedskills/modeling-from-reference.agentSkill/.metadata123 BAfter
- Addedskills/modeling-from-reference.agentSkill/README.md763 BAfter
- Addedskills/modeling-from-reference.agentSkill/compound-forms.agentSkillFolderAfter
- Addedskills/modeling-from-reference.agentSkill/compound-forms.agentSkill/.metadata17 BAfter
- Addedskills/modeling-from-reference.agentSkill/compound-forms.agentSkill/README.md292 BAfter
- Addedskills/modeling-from-reference.agentSkill/compound-forms.agentSkill/instructions.md5.0 KBAfter
- Addedskills/modeling-from-reference.agentSkill/compound-forms.agentSkill/skill.yaml1.3 KBAfter
- Addedskills/modeling-from-reference.agentSkill/instructions.md8.8 KBAfter
- Addedskills/modeling-from-reference.agentSkill/measuring.agentSkillFolderAfter
- Addedskills/modeling-from-reference.agentSkill/measuring.agentSkill/.metadata17 BAfter
- Addedskills/modeling-from-reference.agentSkill/measuring.agentSkill/README.md301 BAfter
- Addedskills/modeling-from-reference.agentSkill/measuring.agentSkill/instructions.md3.3 KBAfter
- Addedskills/modeling-from-reference.agentSkill/measuring.agentSkill/skill.yaml3.3 KBAfter
- Addedskills/modeling-from-reference.agentSkill/skill.yaml11.0 KBAfter