Seasons & Weather

The climate system drives a 100-day year divided into four 25-day seasons. Weather and temperature shift each day, affecting mood, foraging efficiency, and the forest spirit.

Overview

Time in Elf Revel is measured in ticks. One in-game day is 100 ticks. A full year is 100 days (10,000 ticks), split evenly into four seasons of 25 days each. At each day boundary, the climate system advances the season (if needed), rolls for new weather, and computes a daily base temperature with jitter.

Temperature updates every tick based on time of day. Weather persists with 70% momentum -- there is only a 30% chance it changes on any given day within the same season, while season boundaries always force a reroll.

How It Works

The Year Cycle

SeasonDaysDay Range (in year)Description
Spring0--240--24Awakening. Balanced foraging. Spirit is sensitive.
Summer25--4925--49Peak abundance. Highest foraging multiplier.
Autumn50--7450--74Declining bounty. Snow begins to appear.
Winter75--9975--99Harsh. Reduced foraging. Snow is common. Spirit dormant.

Years wrap: day 100 is Spring of year 1, day 200 is Spring of year 2, and so on.

Source: src/sim/climate.rs, SEASON_LENGTH = 25, YEAR_LENGTH = 100, Season::from_day.

Time of Day

Each 100-tick day is divided into four periods:

PeriodTick Range (within day)Temperature Modifier
Dawn0--9-5
Day10--69+0 (base)
Dusk70--84-3
Night85--99-8

The temperature modifier is applied to the daily base temperature each tick. Dawn and Night are the coldest periods.

Source: src/sim/world.rs, TimeOfDay::from_tick. src/sim/climate.rs, Climate::update_temperature.

Temperature Curve

Each season defines a quadratic temperature curve with three control points: start, mid-extreme, and end. The temperature is interpolated across the 25 days of the season using quadratic interpolation, then jittered by a random value in the range +/-5.

SeasonStart TempMid-ExtremeEnd Temp
Spring354555
Summer557565
Autumn654530
Winter301525

The interpolation formula uses quadratic Bezier-style weighting:

base = start x (1-t)(1-2t) + mid x 4t(1-t) + end x t(2t-1)

Where t = day_in_season / 24 (0.0 to 1.0).

After interpolation, jitter of +/-5 is applied, and the result is clamped to 0--100. Temperature can never go below 0 or above 100.

Source: src/sim/climate.rs, Season::temperature_curve and Climate::advance_day.

Temperature Thresholds

ConditionThresholdEffect
ColdTemperature < 25Outdoor mood penalty: "Chilled" -2
HotTemperature > 75Universal mood penalty: "Sweltering" -1

Cold only affects elves outdoors (not within Manhattan distance 2 of a roofed building). Hot affects everyone.

Source: src/sim/climate.rs, is_cold() and is_hot(). src/sim/systems.rs, weather_mood_system.

Weather System

Weather is determined daily. On a season boundary, weather is always rerolled. Within a season, there is a 30% chance of reroll and a 70% chance the previous weather persists (momentum).

Source: src/sim/climate.rs, Climate::advance_day -- rng.gen::<f32>() < 0.3 triggers reroll.

Weather Types

WeatherDescriptionPossible Seasons
ClearSunny skies. No special effects.All
CloudyOvercast. No direct effects.All
RainOutdoor mood penalty.All
StormFlavor event (neutral mood).All
SnowOutdoor beauty bonus.Autumn, Winter only
FogInspiration boost for skilled musicians.All

Snow has zero weight in Spring and Summer -- it physically cannot occur in those seasons.

Source: src/sim/climate.rs, Weather::season_weights.

Values & Formulas

Season Weather Weights

Each weather type has a probability weight per season. To get the percentage chance, divide by the row total (100 in all cases).

WeatherSpringSummerAutumnWinter
Clear40604030
Cloudy25152525
Rain25102010
Storm510105
Snow00525
Fog5505

Notable patterns:

  • Summer is 60% Clear -- the best season for outdoor work.
  • Winter has a 25% Snow chance -- the highest of any weather type besides Clear.
  • Fog only appears in Spring, Summer, and Winter (0% in Autumn).
  • Storms are rare in Spring and Winter (5%), more common in Summer and Autumn (10%).

Source: src/sim/climate.rs, Weather::season_weights.

Seasonal Mood Modifiers

In addition to weather, each season applies a persistent mood modifier to all elves. These are refreshed at every day boundary using replace semantics.

SeasonModifierValueDuration
Spring"Spring optimism"+21 day (100 ticks)
Summer(none)----
Autumn"Autumn melancholy"-11 day (100 ticks)
Winter"Winter stillness"-11 day (100 ticks)

Spring is the most mood-positive season (+2 baseline), while Autumn and Winter carry a persistent -1 drag on morale. Summer is neutral -- no seasonal modifier, but typically benefits from 60% Clear weather.

Source: src/sim/systems.rs, seasonal_mood_system.

Weather Mood Effects

These are applied by the weather mood system. "Outdoors" means the elf is more than Manhattan distance 2 from any Dwelling, Workshop, or Feast Hall.

Weather/ConditionTargetMood ValueDurationNotes
Rain (outdoors)Outdoor elves-1 "Caught in rain"50 ticksShelter negates
Snow (outdoors)Outdoor elves+2 "Snow-covered landscape"50 ticksBeauty bonus
StormAll elves0 "Sheltering from storm"50 ticksFlavor only
FogMusicians (skill > 5)+1 "Mysterious fog"50 ticksAlso +1 Nature inspiration
Cold (temp < 25, outdoors)Outdoor elves-2 "Chilled"50 ticksShelter negates
Hot (temp > 75)All elves-1 "Sweltering"50 ticksCannot be avoided

Mood effects use replace semantics -- they refresh the duration instead of stacking. An elf standing in rain for 100 ticks gets one -1 modifier refreshed repeatedly, not multiple stacking penalties.

Source: src/sim/systems.rs, weather_mood_system -- uses mood.replace().

Foraging Multipliers

The seasonal foraging multiplier affects passive sustenance gain when elves forage:

SeasonMultiplierEffective Foraging
Spring1.0xBaseline
Summer1.5xPeak abundance
Autumn1.25xSlight bonus
Winter0.5xHalved

Foraging happens every 10 ticks for elves with sustenance below 40. On forest terrain, the base gain is 8; on meadow or other walkable terrain, it is 5 (capped at 60). The seasonal multiplier applies to the overall foraging economy of the settlement.

Source: src/sim/climate.rs, Climate::season_foraging_multiplier. src/sim/systems.rs, foraging_system.

Interactions

Forest Spirit

The Forest Spirit responds differently to clearing based on season. Clearing forest in Spring adds +7 anger (vs. +5 in other seasons) because the forest is awakening. The spirit's natural dawn decay and garden calming also vary by season -- see the Forest Spirit page for details.

Composition and Inspiration

Fog weather adds +1 to the Nature inspiration channel for all elves, which can help trigger compositions. Snow gives a beauty mood bonus that feeds into morale, indirectly improving composition emotional depth.

Needs Decay

Weather does not directly change needs decay rates, but the mood modifiers it produces affect morale, which determines the morale state (Inspired/Normal/Stressed/Breaking). See Needs & Mood. Morale state in turn affects work speed: Inspired elves get +2 work speed, Stressed elves get -1.

Building Shelter

Roofed buildings (Dwelling, Workshop, Feast Hall) provide shelter within Manhattan distance 2. Gardens do not provide shelter -- they are open-air structures. In rainy or cold weather, having roofed buildings near work areas protects your elves from mood penalties.

Tips

  • Stockpile food before Winter. Foraging drops to 0.5x, and Snow weather (25% chance) adds further pressure. Aim for a food stockpile of 15+ by day 50 (mid-Autumn).

  • Summer is build season. With 60% Clear weather and 1.5x foraging, your elves can work outdoors without mood penalties and food accumulates naturally. Queue major construction projects for Summer.

  • Build roofed structures early. A single Dwelling shelters all elves within 2 tiles from rain (-1 mood) and cold (-2 mood). Place it centrally.

  • Fog is a gift for musicians. If you have a high-skill composer (Music > 5), fog gives them +1 mood and +1 Nature inspiration. Don't pull them indoors during fog.

  • Snow is surprisingly pleasant. The +2 beauty mood bonus outweighs any cold penalty for elves near shelter. Let your elves enjoy it, but make sure they have a warm building nearby.

  • Watch season transitions. Weather always rerolls at a season boundary. The jump from Autumn to Winter can bring sudden Snow (25% weight) and cold temperatures. Prepare your settlement layout accordingly.

  • Spring clearing is dangerous. Clearing forest in Spring costs +7 spirit anger instead of +5. If you need to expand, wait until Summer when the spirit is less reactive.

  • Night is the coldest period. At -8 from base temperature, Night in Winter can push temperatures down to single digits. Ensure resting elves are near Dwellings.

  • Spring is the best season for morale. The +2 "Spring optimism" modifier offsets rain penalties and helps recovering Discontented elves. Time revel performances for Spring to maximize audience mood.

  • Autumn and Winter stack mood drags. The -1 seasonal modifier on top of cold weather (-2) and rain (-1) can push morale down quickly. Plan building shelter completion before Autumn arrives.