Recent updates for Shogun Exodus introduce significant expansions to the weather and visual effect systems alongside backend stability improvements. Updates 199 and 200 introduce independent ambient fireflies and entry-latched snow and wind effects, powered by lightweight GPU particle renderers. The fireflies condition applies time- and temperature-gated visuals accompanied by a temporary happiness status effect for living characters, while the snow presentation system dynamically alters rain episodes when freezing temperatures occur at onset. Both systems operate through modular availability and presentation contracts, maintaining full synchronization with simulation speeds and time controls without burdening CPU performance.
Complementing the atmospheric additions, Update 198 resolves an invalid node reference error in the corpse registry during scene transitions and save loads. Together, these patches update the save schema to version 3, expand developer tools for granular testing of weather states, and deliver updated documentation for modding and system architecture.
Raw Patch Notes
UPDATE 2026-08-27 #198 - Corpse Registry Reload Safety - Fixed `CorpseSystem` raising `Trying to assign invalid previously freed instance` on its first assignment tick after loading or travelling away from a scene containing a registered corpse. The persistent autoload now removes corpse records when their scene-owned nodes exit the tree and validates cached corpse and undertaker Variants before casting them to typed Nodes. - The existing group scan still registers corpses restored from a save. No save schema, hauling behavior, assignment cadence, or Weather behavior changed. - Files: `Autoload/CorpseSystem.gd`, `DeveloperFiles/current-game-setup.txt`, `DeveloperFiles/update-log.txt`. UPDATE 2026-09-03 #199 - Fireflies Weather-Ambience Condition and Effect - Added the independent `fireflies` Condition track with `none` and `fireflies` states. Fireflies may enter from 19:00 through 03:59 with no Precipitation, Calm/Gentle Wind, and Warm through Extremely Warm Temperature; Clouds and Fog are ignored. Active Fireflies stop at 06:00. None uses base weight 4 and 5-15-hour dwell; Fireflies use base weight 1 and 2-6-hour dwell, with the authored Wet/Flat/Dry characteristic multipliers. The ordinary Weather HUD shows Fireflies only while active. - Added the generic non-clustering `availability` state contract: wrapped entry hours, an optional active cutoff, and entry/persistence observations of other tracks. Availability affects weights/execution and re-plans observers when relevant brackets change without unioning them into the primary planner clusters. Pending Spawn goals wait until the next eligible window/conditions; Force bypasses availability for one newly rolled dwell so a visual can be tested at any time. - Integrated the developer-authored `Fireflies.tscn` as one reusable `fireflies` Effect through `FireflyEffect.gd` and `firefly_effects.json`. Its one GPUParticles2D is anchored at 75% viewport width along the bottom on the non-darkened `overall_background` host, behind the Castle. The tuned unshaded CanvasItem material provides local per-particle glow. Activation starts emission; natural removal now explicitly reaches the renderer even with a zero-duration fade, stops emission, and lets existing particles drain for one maximum lifetime. Explicit Force/load/location/data-reload paths still retire instantly. Particle speed/drain obey TimeSystem pause and x1/x2/x4, camera/culling work is viewport-bound, and CPU work reports as `weather_fx/fireflies`. - Added the positive `Beautiful fireflies` Status Effect (+10 Happiness) to every living Shogun/Servant while the Fireflies Condition is active. The generic mod-facing `scene_status_effects` state contract and signal-driven `WeatherStatusEffectSystem` keep this gameplay link out of the visual renderer, update on Condition/location/actor lifecycle events, and remove the buff as soon as Fireflies end rather than waiting for residual particles. `WorldIndex` now publishes actor registration lifecycle signals so characters entering during active Fireflies are covered without polling. - Dev Tools discovers the new track through the existing generic data path and labels availability-gated actions `Spawn Naturally` and `Spawn Instantly`. No Firefly controller, extra tick channel, per-frame character scan, per-particle CPU work, Light2D, SubViewport, or CanvasGroup was added. - Added the mod-facing availability/effect contracts, current architecture/background-host documentation, a Fireflies loading hint, and the implementation brief. - Files: `Autoload/WeatherSystem.gd`, `Autoload/WeatherStatusEffectSystem.gd`, `Autoload/WorldIndex.gd`, `project.godot`, `Scripts/Weather_Systems/FireflyEffect.gd`, `Scripts/Weather_Systems/WeatherEffectsBinder.gd`, `Scripts/DevTools/DevToolsMenu.gd`, `Scenes/Enviroment/Weather_Systems/Fireflies.tscn`, `Data/Weather_Systems/conditions.json`, `Data/Weather_Systems/Effects/firefly_effects.json`, `Data/Stats/status_effects.json`, `Data/LoadingScreenText.json`, `DeveloperFiles/Weather_System_Explainer.txt`, `DeveloperFiles/World_Background_Explainer.txt`, `DeveloperFiles/current-game-setup.txt`, `DeveloperFiles/mod-guide.txt`, `DeveloperFiles/briefs/fireflies-weather-ambience-brief.md`, `DeveloperFiles/update-log.txt`. UPDATE 2026-09-03 #200 - Entry-Latched Snow and Wind Visual Effects - Added the generic track-level `presentation` contract for visual/HUD variants of an unchanged planned episode. Exact scalar requirements are evaluated once at entry, the chosen variant (including an explicit base choice) persists per location and through save/load, and it clears only when the track leaves its declared episode states. Presentation overrides may replace copy and Effect requests but never planner identity, weights, dependencies, dwell, transitions, environment, or gameplay effects. Save schema is now version 3. - Implemented Snow as a presentation of the existing Light Rain/Rain/Heavy Rain episode rather than a Condition or planner state. Exact Temperature <= -1°C when precipitation leaves `none` latches Light Snow/Snow/Heavy Snow until precipitation returns to `none`; later Temperature and intensity changes do not switch Rain/Snow midway. HUD names and authored snow tooltips use the same saved choice as the mixer. Existing Rain weights, Cloud prerequisites, transitions, dwell, and 0.5-game-hour fades remain authoritative. - Integrated the developer-authored `Snow_Effect.tscn` through one reusable foreground `snow_sheet` GPUParticles2D renderer and `snow_effects.json`. Light/normal/Heavy allocate 100/300/600 particles and interpolate visible density across the existing precipitation fade. The renderer consumes cached raw Wind endpoints and linearly maps the authored 30/60/90/120 km/h guide to intrinsic speed 2/4/10/20 and gravity X 0/-100/-200/-400. TimeSystem multiplies intrinsic motion, camera work is viewport-bound, and CPU work reports as `weather_fx/snow_sheet`. The screen-relative emitter uses local coordinates, is anchored one quarter viewport above screen center so flakes enter view earlier, and begins runtime simulation only after its first complete binder configuration, preventing its preprocessed particles from remaining outside the camera-relative view. - Heavy Snow retains Heavy Rain's lower-priority Light Fog haze but supplies request-local pure-white `#ffffffde`; an actual Fog Condition at priority 0 remains authoritative and keeps its normal tint without creating a second full-screen Fog shader. - Integrated `Wind_Effect.tscn` as one reusable foreground `wind_sheet` GPU renderer. Windy/Strong/Severe/Violent/Catastrophic presets use amount 25/40/50/60/75, gravity X -200/-220/-280/-300/-350, and intrinsic speed 2/2.5/4/6/8. Calm Winds and Gentle Breeze request no Wind Effect. Natural removal stops emission and drains existing particles; pause/x1/x2/x4 and viewport fitting reuse the existing Effect conventions, with CPU work under `weather_fx/wind_sheet`. Its screen-relative emitter likewise uses local coordinates and starts once only after the binder has positioned and configured it. - Dev Tools now expands data-defined presentations beside their underlying states. Precipitation offers explicit Rain and Snow Spawn/Force rows without changing Temperature or adding planner states; Spawn carries the chosen presentation through the normal graph walk and Force applies it immediately. Existing Wind state and exact-value controls automatically test its new renderer. - Updated the player precipitation/Wind hints and the Weather, modding, current-architecture, and World Background host documentation. No new Weather track, Condition, controller, planning dependency, tick channel, pawn scan, CPU particle path, SubViewport, CanvasGroup, or world-sized allocation was added. - Files: `Autoload/WeatherSystem.gd`, `Scripts/DevTools/DevToolsMenu.gd`, `Scripts/Weather_Systems/SnowSheet.gd`, `Scripts/Weather_Systems/WindSheet.gd`, `Scenes/Enviroment/Weather_Systems/Snow_Effect.tscn`, `Scenes/Enviroment/Weather_Systems/Wind_Effect.tscn`, `Data/Weather_Systems/conditions.json`, `Data/Weather_Systems/Effects/snow_effects.json`, `Data/Weather_Systems/Effects/wind_effects.json`, `Data/LoadingScreenText.json`, `DeveloperFiles/Weather_System_Explainer.txt`, `DeveloperFiles/World_Background_Explainer.txt`, `DeveloperFiles/current-game-setup.txt`, `DeveloperFiles/mod-guide.txt`, `DeveloperFiles/briefs/snow-and-wind-visual-effects-brief.md`, `DeveloperFiles/update-log.txt`.
*This is an automated post, using Python and LLMs to summarize game updates. Mistakes, while rare, may happen.

Leave a Reply