Tumblefire Update — August 9, 2026
Hey everyone,
Big update! Lots of changes in this one — let's get into it:
Gameplay
- Add store localization pipeline + 30 Steam locale bundles
- Name the bound key on interact prompts, draw them on top, label the hotbar and vitals (#516)
- Dress the New Game confirm as paper, unhide the stamp, warn only on real progress (#515)
- Crosshair style selector + Kenney CC0 crosshair/splat/particle assets
- Dust veil — denser slipstream + mid-height haze layer + ground fog to shroud the wake despawn (#459)
- Trailer assembler (ffmpeg xfade) + capture-status README (#497)
- Adding updated godot bridgge
- Ui: MenuButtonJuice across pause, settings, training modal, skill-tree chips
- Ui: tween-driven UI polish from Godot-Tween-Controls-UI + headless regression harness
- Sweep corpses, loot and stains off the train instead of dragging them
- Prune the puppet entry when its NPC has been freed
- Make the HUD's optional-scene guards real, and gate the case that aborts
- Make the HUD readable — weight, size and a bench to judge it on
- Make the no-contract ride real and reachable
- Stop the unit tier waiting on the wall clock
- Stop a joining rider spawning under the train on Brimstone
- Delete the settings menu that wrote to the wrong store
- The deletion pass the July audit was waiting on
- Stop reinforcements dropping their loot into a Window
- Hold the camera for a beat when you arrive, then hand it back
- Kill both order-dependent failures at their source
- Make the map say which job you picked, and how hard each one is
- Give the travel train a whistle and a beat to leave on
- Spawn beside the train, and make LAN sessions findable
- Arrive on the train, and make it boardable to leave
- Say RODE OUT EARLY, and record measured loot density
- Replace the exit lock with an early-departure fare
- The Char theme now carries the body voice (#343)
- Bitter was rendering as Thin everywhere (#343)
- The train leaves before the world arrives
- The locker only hands you what you have earned
- Per-run orientation + cover-art placement, keep audio, HEVC in gameplay recorders
- Record audio, add random backing music, hide HUD clutter
- Bigger cars, doors that open, ladders that climb, and a fall that kills
- Give each faction a cast of roles, gear and action animations
- Add 10v10 battle and looting demo-recording modes
- Stop knockback launching NPCs into the sky; centre tumbleweed visual
- Rebuild the train heist: roof route, textured stock, blown safe
- Space hitched horses along their rails
- Restyle skill trees and settings onto Letterpress & Ember
- Rebuild main menu as a wanted poster with juice
- Hold the travel screen for 5s and smooth the train animation
- Add one-time review prompt after first successful mission
- HUD polish pass: palette-unified panels, styled vitals bars, hotbar refresh
- Add files yknow
- Give the airship its procedural envelope + gondola visuals
- Adding cactuses
- Map inertia, remembered difficulty, world difficulty scaling
- Replace mission list with drag-map mission select
- Add startup wishlist prompt for demo builds
- Rebuild menu, browse sessions and current session screens FFW-style
- Add wishlist button to demo upgrade prompt
- Upgrade summary, mission select, session and travel screens
- Add gunfight recording mode + Steam art rebuild prompts
- Rideable horses and boardable/pilotable airship
- Add portrait/landscape gameplay clip recorder + capture hook
- Drive embedded GLB animations from velocity
- Refine cactus cast: expressive brows, denser spines, candelabra arms
- Cactus cast: distinct per-faction silhouettes + higher detail
- Build own cactus cast in bpy; replace purchased cactus cowboy
- Re-vendor lrd_vehicle_system from FF e48a116; horse/wagon/airship prefabs
- Add cactus citizen pilot: rigged cactus_character with idle/walk/run/jump
- Add studio Steam monetization & cross-promotion strategy doc
- Add Letterpress & Ember visual identity system
- Record true upstreams in provenance stamps
- Vendor lrd_vehicle_system and lrd_character_system from FragileFrontier
- Migrate test suite from GUT to GdUnit4 and remove GUT
- Split skill_tree_ui.gd (999 lines) into 3 focused modules
- Update remaining 3 NPC specialists to use NPCSpecialistBase
- Slim mission_system.gd further by delegating to extracted modules
- Add world_events.gd and final mission_network_sync update
- Slim down pause_menu.gd and update remaining sync/component files
- Split game_ui.gd (1324 lines) into 4 focused HUD sub-components
- Add dopamine loop SFX assets (streaks, jackpot, near-miss, checkpoints)
- Adding new audio files
- Add RewardManager + JuiceManager dopamine loop systems
- Add Discord community link and post-mission feedback prompt
Fire & Destruction
- [fx/player] Splat decals, bullet marks, corpse sweep, and a step-up that actually fires (#522)
- Give the locomotive's stack plume a soft edge and smoke colour (#519)
- Stop scoring the hideout — the hub is not a graded ride (#518)
- Polish: transitions/readability/perf pass (Tumblefire)
- Measure the new 575-burnable scenario — WSLg-routed RTX 3050 run, 39.4 ms mean, still FAIL (#402)
- Migrate translation script from Gemini to OpenRouter/DeepSeek v4 flash 0731
- Explosion flash lights, weapon-scaled cactus deaths, tracer brighten (#421) (#487)
- Combined fire+destruction budget — debris pooling + measured loose-body ceiling (#406) (#483)
- Persistent rubble — settled debris becomes static piles that stay for the ride (#405) (#482)
- Shared LOD cost budget, distant-fire merging, and a town sky glow (#400) (#481)
- Stop a distant camera dragging the detail grid off a live fire (#399)
- Simulate a whole town, not a 16-metre box (#399)
- Stop a zero regeneration delay from re-fuelling burnt ground
- Stop the ignition-frame scan stall — 89 ms to 1.4 ms, and constant
- Cut the fire spread solver by 1.5-1.8x, and build the harness that proves it
- Measure fire and destruction together, in one harness (#406)
- Make fire, horses and other players able to kill you
- Measure fire LOD from the camera, not the world origin
- Make the heat haze a real refraction, and let the smoke be seen through
- Make buildings stand up because something holds them up
- The voxel fire cost was the solver, not the flames — measured, then halved
- Burn the station down, stand it on the ground, and orbit on the way in
- Give Stillwater a creek worth crossing and a bridge worth burning
- Let the player reach town before it burns down
- Give a joining player their own body back, and stop the smoke reading as paper
- A doused building no longer reports itself alight
- Fire the player's tracer from the barrel, and give it the gun's weight
- Make town-burn runs pinnable, and record that a single run is not evidence
- Seat the rider inside the coach, and let the station burn down
- Own the wind in one place, and make the burn cycle readable (#401)
- Measure the windowed town burn, and fix the sweep that was aborting on freed parts (#402)
- Rebalance chaos around buildings, and tell the player one came down (#432)
- Credit a burned building once, and stop losing consumed parts
- Report the chaos breakdown, and stop grading fire on reach
- Add the town-burn benchmark harness and measure Dust Creek (#402)
- Raise the voxel hop cap so spatial spread isn't capped at 6 m
- Correct stale spread-generation comment left by #398
- Remove the 3-generation spread cap so fire can cross a town (#398)
- HUD text you can read over a burning town (#343)
- The smoke bomb is a thing you throw, not a cloud that appears
- Smoke bombs actually hide you: real cloud, and sight lines that break
- Make a co-op client's fire actually burn, and settle the fire-arrow role
- Make gunfire audible: mix chain, near-field shots, voice pool
- Make gunfights read: tracers, gun smoke, and a gun that points forward
- Fix the town-burn clip framing itself out of the fire
- Make the cars shootable, burnable and big enough to fight in
- Synthesise whistle and chuff, and let chaos drive the throttle
- Decay chaos heat over time so towns settle down
- Wounded NPCs leave a juice trail; fire deaths char instead of spray
- Score demolition, drop what you shoot the supports out from under
- Add chaos-driven mid-raid events; revive faction reinforcements
- [npc] fix burning-mesh look, eternal fires, NPC shuffle, TNT hitch
- Rework voxel flame visuals and add 4.7 fire-front area lights
- Reset chaos on return to hideout so the chaos layer stops
- Add missing test_fire_spread_containment.gd.uid sidecar
- Contain runaway spread and rebuild the plume as flames + two smoke layers
- Fire from the muzzle, not the chase camera; [world] breakable window glass, rolling tumbleweed props; [player] make mantling deliberate; [ui] fix top-right HUD overlap
- Combat hit reg, collision, sheriff law, NPC spacing, burn pace, dialog contrast
- Switch demo clip to real Dust Creek town on fire
- Add fire-showcase demo driver for hands-free clips
- Gate idle FireComponents, jitter monitor timers, trim fog
- Dusk/fog atmosphere, scattered clutter, campfire, more airships
- Add barrel/crate/tumbleweed clutter kit + campfire prop
- Add modular saloon pilot: kit-part GLB, per-part fire + physics collapse
- Fix dynamite freeze, hideout campfire ground fire, shatter compile cascade
- Document P2P smoke scope in a README
- Fix ENet dying without GodotSteam + add real-socket P2P smoke tests
- Fix dead fire path, loadout desync, reload soft-lock, hotbar mismatch
- Revendor LRD fire system with emitter throttling and AABB regions
- Add headless two-process ENet P2P smoke
- Implement Hammer (#326) and stop non-fire weapons starting fires
- Implement Fire Arrows (#322): guaranteed spreading ignition
- Reconcile faction/weapon test suites to real API; add fire perf scene
- Integrate LRD voxel fire as the spatial sim via a hybrid bridge
- Vendor LRD Fire System addon and decouple shared fire components
- Add narrated demo-recording pipeline (Tumblefire)
- Delegate fire visuals/audio to child modules, update NPCs to use NPCSpecialistBase
- Merge anticheat systems and split fire_component visuals/audio
- Add combat juice, NPC barks, and chaos meter polish
Combat & Weapons
- Toon-ify PSX desert pack textures — posterize + ink outlines to match the cel/flat-toon direction (#457)
- Ui: MenuButtonJuice on weapon locker — pointer-less mode for small buttons
- Give the guns their reach back, and say when they run out
- Shoot at the town from the airship, not at the airship
- Clear test_mission_system — a bypassed condition and a wrong matcher
- Put the damage numbers back over the target and the objective back on the HUD
- Make the throw preview predict the throw
- Point the barrel forward, and stop silently refusing shots
- Price the fare off each job, and fix the null bullet-pool host
- Apply locker loadout changes to the live hotbar immediately
- The helm can aim, and a scene to prove it (#341)
- The host holds the rope: co-op lasso, and 38 weapon tests that never ran
- A partner's arrows should be visible: co-op projectile replication
- A shotgun should land heavier than a pistol: per-weapon firing feel
- The hammer swings: an arc, and a way through a wall
- Lasso: a restrained state on the rope's end, plus the rope itself
- Throwing knives: a real blade that sticks, and an ammo economy
- Give the bow a real arrow: physics projectile, drop, and its own model
- Finish the rifle: aimed-only precision, scope zoom, own model and crack
- Finish the shotgun: damage falloff, its own model, pellet tracers and bang
- Convert combat one-shots to trimmed WAV, fix a 406 ms shot delay
- Material impacts, shell casings, hit flinch and tracer light
- Fix camera shake and framing, and slow the look while aiming
- Make hits, kills and deaths read — cactus juice, crits, real damage
- Scale hostiles to player count; settle WeaponUpgrades scope; refresh store copy
- Rebuild title settings + weapon locker, and let every weapon break buildings
- Make the thrown match a real lit projectile with throw animations
- Fix NPCs never firing, rework weapon visuals, fix inverted roofs
- Fix riding — animated model, seating, handling and mounted aim
- Soften horse handling, add jump + mounted shooting; [npcs] anim quality pass, ground snap, idle + walk dust; [world] modelled rolling tumbleweeds
- Repaint decor prop textures in flat toon style to match cactus characters
- Complete hideout weapon locker (#327)
- Implement remaining expanded weapons (#319-#321, #323-#325)
- Add weapon test bench + WeaponLoadout backbone for hideout locker
- Bring the expanded weapon arsenal back in scope
- Split weapon_component into 3 files, merge MissionCoordinator into MissionSystem
World & Environment
- Preview cameras, specialist idle gestures, facings, and rewritten dialogue (#521)
- Restore the dead first-run flow, orient the hideout spawn, fix solo travel tips (#512)
- Fix the town intro never playing, and make capture settings reachable (#489)
- Revive the dead capture overlays, make them findable, and open every town on a birds-eye shot (#488)
- Split hideout.gd three ways, and give the hub a harness at last
- Dress every kit building, and fix three things that were silently broken
- A collapsing building takes its own clutter down with it
- Let a building own its dressing, and fix the way onto the train roof
- Put a name on the paper — assassinate jobs in all four towns
- Let a town post more than one job, and let the board turn over
- Give each specialist a prop that says what they do
- Unfreeze the specialists — stop the Mixamo idle eating their clips
- Ride the train out of every town
- Give residents work to do, and the locomotive a voice
- Add the locomotive station and a cactus-theme pass
- Pull labelled props off the walls and re-author the prop layout
- Per-town palettes, working glow, faction read
- Replace NPC arrival toasts with world-space info panels
- Fix contracts never starting in three of four towns
- Fix modular kit UVs, rebuild atlases, close gambrel roof
- Fix silent levels: 3D listener, level music, ambience
- Add TNT barrels that explode with fiery debris when shot
- Hideout polish: night sky exterior, sealed shell, faded prompts
- Real window cutouts + walk-to-open swinging doors on modular buildings
- Fix ledge mantle on modular buildings (forward-down scan)
- Rebuild Stillwater layout + stylized ground dressing for towns
- Polish props, placement, texturing and lighting in The Warren
- Hideout cactus NPCs + interactables, clutter layout, NPC telegraph audio, HUD wanted indicator
- Cactus cohesion pass: Mission Mary + dressing
- Walk-in interiors: put door panels on a passable layer
- Moor an airship over dust creek; within-faction cactus variety
- Add framed glass windows to modular building kit
- Fully modular buildings; orient streets; two-horse wagon team
- Add modular dentist office + blacksmith (chimney); retire last PSX
- Swap barn/houses to modular kit; hitching posts; fix bank facing
- Add barn + two house types to modular kit; town-facing schematic
- Dust_creek: swap modular buildings + hitch horses and wagon
- Swap PSX saloon/bank/sheriff/store/church for modular kit prefabs
- Wire cactus cast into all four teardown towns
- Expand modular kit: bank, sheriff office, general store, church
Co-Op & Multiplayer
- Instant replay + collapse slow-motion, co-op-safe (closes #408) (#484)
- Make test_npc_info_panel establish its own multiplayer state
- Drive clients' own NPCs instead of stacking capsules on them (#418, #419)
- Consolidate the two co-op UIs into one CoopScreen, Steam or not
- Fix dead telegraph post and repair the multiplayer/session UI surface
- Expose achievements, records, co-op and a live practice range
- Add --auto-host/--auto-join dev flags for local multiplayer testing
- Add run_multiplayer_test.bat for local two-instance visual multiplayer testing
- Finalize player_multiplayer_sync NetworkSyncBase integration
- Update interest_management and player_multiplayer_sync to use NetworkSyncBase
- Complete remaining modularization — NPC base, marker merge, pause multiplayer panel, more sync files
Bug Fixes
- Update localization pipeline: use_existing_capsules + BH store_shots + render_label overflow fix
- Stale 'SoundEffects' bus name — SFX sounds bypassed the SFX slider (#494)
- Wrap two over-length lines in ui_ports_test.gd (unblock CI lint) (#486)
- Pin the regeneration queue with tests, and fix a one-tick deadline drift
- Fix the detection warning, and delete the HUD nodes nothing ever showed
- Give a joining client a spawner path it can actually resolve
- Make the unit job blocking, and fix the command that never ran
- Clear test_faction_ai, and fix two real defects it was hiding
- Fix the AI/mission cluster, and a sentinel patrol that never circled
- Clear the signal cluster — same lambda bug, plus one wrong assert_signal
- Fix the money cluster: two root causes, thirteen failing cases
- A scene for actually riding the horse (#340)
- Fix player death: fall over, fail the ride, stop the audio leak
- Fill out the ride summary and fix the HUD drawing over it
- Hide HUD on the travel screen, fix notifications, always summarise a ride out
- Fix horse grey-screen on mount; [core] silence Steam getAppID error
- Fix vehicle console errors, add mission skyboxes, solid western session browser
- Fix Godot binary detection when GODOT is a full path
- Soften travel/mission-select vignettes, animate loading-screen train; [world] fix airship grey-camera
- Fix cross-references left stale by the PM/docs/store-art reorg
- Fix end-card CTA text stacking one letter per line
- Fix portrait crop, fit CTA end card, open clips on store art
- Guard null steam_api in cloud saves; drop removed tap_back_pos
- Fix cactus NPCs not animating while walking
- Harden dopamine loop: fix broken APIs, add pity timer, wire dead code
- Add rabbit_developer_console plugin and enable it
- Rewrite commands to use rabbit_developer_console_plugin API
- Add in-game debug console with command system
Performance
- Make the HUD survive an ultrawide frame and a lit backdrop
- Guarantee the train is off frame when depart() returns
- Pin the benchmark camera so a frame time can be attributed (#402)
- Encode gameplay clips as 30fps H.265 CRF 28 and delete raw AVIs after transcode
Thanks for playing Tumblefire and for all the feedback — it genuinely shapes where this game goes next. If you run into anything weird, drop us a line in the community hub or on Discord. We read everything.
— David McHale (HeartCoded) & the Lost Rabbit Digital team
Build f96048c · Full changelog on GitHub
