Forest Spirit
The forest spirit is the ancient consciousness of the woodland that surrounds your settlement. As you clear trees and expand, its anger rises. If left unchecked, the spirit's displeasure manifests as alerts, mood effects, and a growing threat to your colony's harmony.
Overview
The forest spirit is tracked by a single meter value from 0 to 100. The meter determines the spirit's state, which escalates through four tiers as anger accumulates. Clearing forest tiles raises the meter; natural decay at dawn and Garden buildings lower it. The challenge is to balance expansion (which requires clearing) with the spirit's tolerance.
How It Works
Spirit States
The spirit's behavior is determined by its meter value:
| State | Meter Range | Description |
|---|---|---|
| Harmony | 0--20 | Peaceful coexistence. No negative effects. |
| Tension | 21--50 | The forest stirs. Alert appears in the UI. |
| Displeasure | 51--75 | Active resistance. The settlement feels the pressure. |
| Anger | 76--100 | The forest is hostile. Significant penalties. |
The meter is clamped to 0--100 using saturating arithmetic -- it cannot go below 0 or above 100.
Source: src/sim/world.rs, ForestSpirit::state -- match on meter ranges. ForestSpirit::add and sub use saturating ops with min(100).
Anger Triggers
The only action that raises the spirit meter is clearing forest tiles. When an elf completes a ClearForest task, changing a YoungForest tile to Meadow:
| Season | Anger Increase Per Tile |
|---|---|
| Spring | +7 |
| All other seasons | +5 |
Spring incurs a heavier penalty because the forest is awakening -- clearing during this time is seen as desecration. There is no penalty for simply walking through or gathering from forest tiles.
Each cleared tile also produces 3 Wood and grants 10 Building XP to the elf who cleared it.
Source: src/sim/systems.rs, clear_forest_system -- spirit.add(if season == Season::Spring { 7 } else { 5 }).
Calming Mechanics
The spirit meter decays through two mechanisms, both applied at dawn (once per day, when tick is a multiple of the day length):
Natural Decay
The spirit naturally calms by -1 per dawn.
The doc-comments in the source describe seasonal variation (Spring: -2, Summer/Autumn: -1, Winter: 0 dormant), but the current implementation applies a flat -1 regardless of season.
Source: src/sim/systems.rs, forest_spirit_system -- spirit.sub(1).
Garden Calming
Each Garden building reduces the spirit meter by -2 per dawn. This stacks with natural decay and with multiple gardens.
| Gardens | Total Dawn Decay |
|---|---|
| 0 | -1 (natural only) |
| 1 | -3 (-1 natural, -2 garden) |
| 2 | -5 (-1 natural, -4 gardens) |
| 3 | -7 (-1 natural, -6 gardens) |
Gardens work regardless of season -- even when natural decay is minimal, gardens still calm the spirit. This makes them the primary tool for spirit management.
Source: src/sim/systems.rs, forest_spirit_system -- spirit.sub((garden_count as u8) * 2). Confirmed by test: "Gardens should reduce spirit faster" asserts 20 - 5 = 15 with 2 gardens.
Rate of Change Examples
Clearing without gardens (non-Spring): Each cleared tile adds +5. Dawn decay removes -1. Net per day if you clear one tile: +4.
Clearing with 2 gardens (non-Spring): Each cleared tile adds +5. Dawn decay removes -5 (-1 natural, -4 gardens). Net per day if you clear one tile: +0 -- perfectly balanced.
No clearing with 2 gardens: Dawn decay removes -5 per day. A meter at 50 reaches 0 in 10 days.
Spring clearing without gardens: Each cleared tile adds +7. Dawn decay removes -1. Net per day if you clear one tile: +6. The meter rises quickly.
Values & Formulas
Spirit Meter Math
| Action | Effect | When |
|---|---|---|
| Clear YoungForest tile (Spring) | +7 | On task completion |
| Clear YoungForest tile (other seasons) | +5 | On task completion |
| Natural dawn decay | -1 | Every dawn |
| Per Garden at dawn | -2 | Every dawn |
| Meter minimum | 0 | Saturating subtraction |
| Meter maximum | 100 | Capped at 100 |
Days to Reach Key Thresholds (No Gardens)
Starting from Harmony (meter 0), clearing one tile per day:
| Target State | Meter Required | Days (non-Spring) | Days (Spring) |
|---|---|---|---|
| Tension | 21 | 6 days (6 clears x net +4 = 24) | 4 days (4 x net +6 = 24) |
| Displeasure | 51 | 13 days | 9 days |
| Anger | 76 | 19 days | 13 days |
Days to Calm from Key States (No Clearing)
With various garden counts, days to return from Anger (meter 76) to Harmony (meter 20):
| Gardens | Dawn Decay | Days to Drop 56 Points |
|---|---|---|
| 0 | -1/day | 56 days |
| 1 | -3/day | 19 days |
| 2 | -5/day | 12 days |
| 3 | -7/day | 8 days |
Clearing Progress Rate
The ClearForest task progresses at a rate of 5 + building_skill per tick, completing at 100:
| Building Skill | Progress/Tick | Ticks to Complete |
|---|---|---|
| 1 | 6 | 17 ticks |
| 3 | 8 | 13 ticks |
| 5 | 10 | 10 ticks |
| 10 | 15 | 7 ticks |
Higher-skill builders clear faster, which means they can also anger the spirit faster.
Source: src/sim/systems.rs, clear_forest_system -- rate = (5 + skill).max(1), completes at progress >= 100.
Interactions
Seasons
The spirit meter interacts with Seasons & Weather in two ways:
- Spring penalty: Clearing in Spring costs +7 instead of +5. Plan heavy expansion for Summer or Autumn.
- Dawn timing: Spirit decay happens once per dawn. Since a day is 100 ticks and dawn is ticks 0--9, the decay fires at the start of each new day.
Buildings
Gardens are the primary spirit management tool at -2/dawn each. Other buildings have no direct spirit interaction, but expanding your settlement by clearing forest to make room for buildings is what drives the meter up in the first place.
Mood and Satisfaction
The spirit meter currently produces UI alerts when above Harmony but does not directly apply mood modifiers. However, the consequences of reaching high anger states constrain your expansion, which can indirectly affect elf satisfaction by limiting available resources and building space.
Cultural Advisor
The Curator monitors the spirit state and includes it in settlement alerts when above Harmony. The Dummy Curator factors spirit state into its clearing decisions, avoiding forest clearing when the spirit is already elevated.
Terrain
Only YoungForest tiles can be cleared (converted to Meadow). AncientForest tiles cannot be cleared. This means the spirit meter has a natural ceiling based on the number of YoungForest tiles on the map.
Source: src/sim/systems.rs, clear_forest_system -- checks terrain == Terrain::YoungForest.
Tips
-
Build 2 Gardens early. Two Gardens provide -4/dawn on top of the -1 natural decay, for a total of -5/dawn. This exactly offsets clearing one YoungForest tile per day in non-Spring seasons, keeping the meter stable.
-
Avoid clearing in Spring. The +7 per tile (vs. +5) and the fact that Spring is when the forest is most sensitive makes it the worst season for expansion. Use Spring for composing, socializing, and stockpiling.
-
The 20 → 21 boundary matters. Crossing from Harmony to Tension triggers a persistent alert in the UI. If the spirit reaches Tension, stop clearing and let gardens work it back down before resuming.
-
Plan clearing bursts with recovery periods. If you need to clear 5 tiles quickly, do it in a batch during Summer (+25 meter), then pause clearing for several days. With 2 Gardens, the meter drops at -5/day.
-
Track the cleared tile count. The game tracks total tiles cleared. More clearing means less forest for foraging and beauty effects. Clear strategically -- only where you need building space.
-
Gardens are dual-purpose. They calm the spirit (-2/dawn) AND provide +3 beauty/tick to nearby elves AND boost the beauty need. Build them at the edges of your settlement, facing the forest.
-
You cannot anger the spirit by gathering. Foraging, gathering wood from resource nodes, and walking through forest tiles are all safe. Only the ClearForest task (which converts tiles) provokes the spirit.
-
AncientForest is safe. You physically cannot clear AncientForest tiles. They provide higher beauty values (+2 vs. +1 for YoungForest) and a 30% chance of FineWood resource nodes. Expand into YoungForest areas instead.