Please disclose if any significant portion of your mod was created using AI tools by adding the 'AI Generated' category. Failing to do so may result in the mod being removed from Thunderstore.
WeatherGordion
Weather on 71-Gordion: rain, fog, storms and combined weathers at the Company, with configurable weights and a day that actually passes.
CHANGELOG
Changelog
1.0.5
- Config sections renumbered
1. General,2. Weathers,3. Time. The gap where a scrap section used to be looked like something had gone missing. Done now, before release, because renaming a section later would leave everyone's settings behind in the old one.
1.0.4
- Clients could have got the same weather with different numbers. WeatherRegistry syncs which
weather a moon gets, but not the values behind it: every client runs
RoundManager.SetToCurrentLevelWeatherfrom its own level generation and readsweatherVariable/weatherVariable2out of its own pool entry. On a client the pool was only being built when they joined the lobby, so anyone who missed that window would have found no Gordion entry, kept whatever those fields held before, and seen the flood at a different height and the fog at a different density than the host. The pool is now rebuilt immediately before that read, on every player, on every landing. - Weather variables are borrowed from a vanilla moon in preference to a modded one, so host and clients settle on the same donor even when their moon mods differ.
1.0.3
- Multiplayer: every player now gets the same time of day. The day offset was being set from the
local
globalTimeat the moment each machine noticed the landing, so host and clients each started their Gordion day from a slightly different number — different clocks, different flood levels, different progression timing. It is a flat zero now, andglobalTimeitself is server-synced, so the same arithmetic runs on identical inputs everywhere. - Lightning target rescans are host-only.
StormyWeather's targeting loop already returns early for anyone who is not the owner, so clients were paying for a scene-wide sweep that could only disagree with the host about what may be struck. - The end-of-day freeze guard no longer fires when the day has genuinely run out, and reports itself once instead of every frame.
- README documents the networking model in full: what the host decides, what is computed locally from shared inputs, and what a player without the mod sees.
1.0.2
- The Gordion day froze the instant it started, and took the weather with it. TimeOfDay derives
local time as
(globalTime + OffsetFromGlobalTime) * DaySpeedMultiplier % (totalTime + 1)and then setsglobalTimeAtEndOfDayfrom it; Gordion's authored offset — never meant to produce a sensible time on a moon with no day cycle — landed past the end of the day, so that value came out behind the current time andMoveGlobalTime's clamp pinnedglobalTimein place. The log showed it stuck at 100 every visit. The offset is now zeroed against the current global time so the visit starts at dawn with a full day ahead, and the driver re-checks each frame in case anything recomputes it. This one bug also explains the previous report of Flooded water not rising and storms never striking: the water level isglobalTime / 1080 * weatherVariable2, and random thunder fires onglobalTime > randomThunderTime. Neither could ever advance. - Lightning now has targets on Gordion.
StormyWeatherscans for conductive items exactly once, fifteen seconds after the storm starts, and the targeting loop skips anything still in the ship. On a moon that spawns no scrap and where every metal object starts in the ship and is then carried out and sold, that single scan leaves the storm with nothing it may hit. The list is now rebuilt every few seconds while on Gordion. - The HUD clock is asserted rather than requested.
SetClockVisibleonly nudgesHUDElement.targetAlpha, whichHUDManager.Updatelerps towards, so a later writer or a disabled element wins. The canvas group's alpha is now written directly, and the element re-activated if something turned it off. - Dust Clouds is no longer in the default weather line. Existing configs keep their value — remove
DustClouds@80fromWeather weightsby hand, or delete the setting to pick up the new default.
1.0.1
- The mod could not load at all. The declared dependency GUID for MrovLib was
mrov.MrovLib, taken from its config file name; the plugin actually registers itself as plainMrovLib, so BepInEx refused the mod with "missing dependencies" and neither the config file nor any weather ever appeared. - Flooded water stayed at world height 0 and never rose.
RoundManager.SetToCurrentLevelWeathercopiesweatherVariable/weatherVariable2out of the moon's own pool entry, andFloodWeatherderives its rise fromglobalTime / 1080 * weatherVariable2— so the zeroes in an injected entry meant no depth and no rise. Injected entries now borrow their variables from a moon that defines the weather, which also fixes Foggy's density range collapsing to an empty span. - The HUD clock never showed. Vanilla only touches clock visibility from
TimeOfDay.SetInsideLightingDimness, reached fromMoveTimeOfDayand only whensunAnimatoris set, and it hides the clock whenever the player counts as indoors — which at the Company is most of the visit. The clock is now asserted from LateUpdate, indoors included, in both time modes. - New:
Ship leaves at end of day(RealTime, on by default). The whole midnight-departure branch lives inTimeOfDayEventsbehindplanetHasTime, so it can never fire at the Company; the mod now calls the game's own networkedSetShipToLeaveOnMidnightClientRpcinstead, warning at 90% of the day exactly like vanilla. Turn it off to keep departure manual. normalizedTimeOfDayis recomputed each frame in RealTime mode. Vanilla only updates it insideif (sunAnimator != null), and progressing weather is driven by that value.
1.0.0
- First release. Weather on 71-Gordion: the moon's empty
randomWeatherspool is filled and it is removed from theCompanyblacklist WeatherRegistry applies to every weather by default, so rain, fog, dust, storms, floods and eclipses can all happen at the Company. - Per-weather weights in one config line, using the same names as the section titles in
mrov.WeatherRegistry.cfg— so combined and progressing weathers from WeatherTweaks and Combined Weathers Toolkit work by name too. - Three time modes.
RealTimestarts the game's own clock for the visit so progressing weather and the rising Flooded water work;Simulateddrives a day and the HUD clock entirely on its own timer without touching the game clock;Offkeeps the moon timeless. planetHasTimeis deliberately never changed. It is not what runs the clock —TimeOfDay.Updatekeys offcurrentDayTimeStarted— but it is what decides whether leaving burns a deadline day, whether the ship departs at midnight, whether landing late is refused, and whether the end-of-round stats screen plays. Leaving it alone keeps all of that vanilla, and keeps every other mod that identifies the Company moon by!planetHasTimeworking.- The quota deadline is held at its pre-landing value while the clock runs, because
TimeOfDay.MoveGlobalTimedrains it regardless of moon and would otherwise cost days and move the company buying rate. - Nothing is written to
mrov.WeatherRegistry.cfg: filters and weights are changed in memory with BepInEx config saving suppressed for the duration of the write.