Seasons and weather
The planet year is four equal seasons on the existing world clock. Weather is one state per biome zone, biased by that biome’s climate and the current season.
Calendar
WorldClock.day is still the source of truth. With world_clock.days_per_season (default 30) the year is 120 game days:
year = day / (days_per_season * 4)(0-based on the wire; the HUD shows year 1)seasonis spring, summer, autumn, or winter from the day within the year
Scrubbing the day on System → Game time moves the season. There is no second clock.
Where weather lives
Biome zones are the weather regions. Ground outside every zone uses weather.default_biome_id (temperate plains).
Each biome in World → Biomes has:
weather_weightsfor clear, rain, drought, storm, snow, and cloudyheat_bias(arid runs hot, mountains run cold)snow_capable— snow weight is zero unless this is on and the season’s snow multiplier is above zero
A roll lasts weather.period_hours game hours (default 6). It is a pure function of the zone id, the period, and the weights, so a restart or a time jump keeps the same weather. System → Game time can force a state on one zone until cleared or the worker restarts. That override is not saved.
Heat at a point is season heat + biome bias + a per-state delta + a day-night swing (weather.diurnal_amplitude, warmest at 15:00). The status line shows that heat as Celsius (temp_at_zero_c + heat * degrees_per_heat, defaults 16°C and 18). Bands are cold, mild, and hot (weather.cold_threshold, weather.hot_threshold).
The moon is one cycle of weather.moon_cycle_days (default 8). Day 0 of a cycle is new and the middle is full. The HUD adds the phase (Summer, year 2 · Full moon).
What it changes
- Thirst. A hot band multiplies thirst drain from
hot_thirst_mult_minup tohot_thirst_mult_maxas heat rises. Mild and cold do not. Indoors, the character is sheltered and skips the modifier. - Cold. Below
cold_threshold, hunger rises fromcold_hunger_mult_mintocold_hunger_mult_maxacrosscold_span, and stamina recovery falls tocold_stamina_regen_min. No health damage. Indoors skip this too. The temperature number still shows. - Growth.
weather.growth_multreplaces the flat farming weather stub for crops at that cell, and the same number is the harvest respawnweather_mult(base / fertility * mult). Rain is above 1 (faster crops, longer wild respawn). Drought and snow are below 1. Cloudy is near 1. If the biome catalog cannot resolve the cell, farming keepsdefault_weather_mult.
The HUD and the terminal client clock line shows the season, the 1-based year, the moon phase, the local weather name (Clear, Rain, Drought, Storm, Snow, Cloudy), and the temperature.
Outdoors, the gfx map paints sparse world-locked wet patches on rain and storm ground, and pale snow spots while a zone is snowing. Rain, storm, snow, and cloudy darken both day and night on top of the clock. Clear and drought leave the clock's night darkness in place. A gibbous or full moon lifts that darkness only slightly toward silver and draws a pale disc on the map. Clouds hide the disc. Lightning plays only while the weather under the player is a storm. These overlays are client-only; they do not change the roll.