Dummy Curator (Rule-Based Fallback)

Overview

The DummyCurator is the settlement's rule-based cultural advisor. It runs on every platform (including WASM/browser), requires no external tools, and handles the essential decisions for a functioning settlement: role assignment, resource priorities, building construction, revel scheduling, and patron-directed composer promotion.

It also serves as the fallback for the LLM Curator -- whenever the LLM is unavailable, over budget, or between consultations, the dummy curator's logic runs instead.

How It Works

Consultation Cadence

The dummy curator runs once per game day, at day boundaries. A game day is 100 ticks (DAY_LENGTH = 100). The check is:

current_day = tick / 100
prev_day    = (tick - 1) / 100
consult if  current_day != prev_day

At the start of each consultation, the cleared_today flag resets to false, allowing one forest clearing per day.

Internal State

FieldTypePurpose
bootstrappedboolWhether initial role assignment has run (once per game)
clearings_since_gardenu32Forest tiles cleared since the last garden was built; triggers garden construction at 2
cleared_todayboolLimits forest clearing to one per consultation (reset each day)

Player Messages

When consult_with_message is called, the dummy curator runs its normal decision tree and appends a Message command acknowledging the input:

Understood, I'll consider your input: "..."

It does not actually modify its behavior based on the message -- that is an LLM Curator capability.

Decision Tree

Each consultation runs three phases in order: bootstrap roles, resource priority, and building queue (which also handles revel scheduling and composer promotion).

Phase 1: Bootstrap Roles

Runs once on the first consultation (bootstrapped == false). Assigns every elf a starting role based on gathering skill.

Algorithm:

  1. Query all elves with their gathering skill value.
  2. Sort by gathering skill, descending (best gatherer first).
  3. Assign roles by index:
IndexRoleRationale
0 (best gatherer)GathererMost efficient food/resource collector
1-2BuilderConstruction workforce
3+GathererRemaining elves gather resources

With the default 8 starting elves, you get: 1 top Gatherer, 2 Builders, 5 additional Gatherers.

Phase 2: Resource Priority

Runs every consultation. Sets the settlement's gathering priority order based on food levels.

ConditionPriority Order
Food < 20Food > Wood > Stone
Food >= 20Wood > Stone > Food

The priority is always emitted, but only generates a PriorityShifted event if the new order differs from the current one.

Phase 3: Building Queue + Revel + Composer

The most complex phase. Skips entirely if the build queue already has a pending building. Otherwise, evaluates in order:

Spirit Management (Garden After Clearings)

Condition: clearings_since_garden >= 2 AND wood >= 5

Queues a Garden and resets clearings_since_garden to 0. This takes absolute priority over all other building decisions -- clearing forest angers the forest spirit, and gardens appease it.

Building Priority Order

If spirit management did not trigger, buildings are evaluated in this fixed order:

PriorityBuildingConditionPurpose
1Dwellingdwelling_count < 3 AND wood >= 10Elf rest and shelter
2Gardengarden_count == 0 AND wood >= 5Spirit appeasement
3Workshopworkshop_count == 0 AND wood >= 10 AND stone >= 10Enables composing
4FeastHallfeast_hall_count == 0 AND wood >= 15 AND stone >= 5Enables revels

Only one building is queued per consultation. The first matching condition wins.

Revel Scheduling

Evaluated after building decisions. All five conditions must be true:

ConditionCheck
No revel activerevel_state == RevelState::None
Feast hall existsAt least one FeastHall building
Compositions existworld.compositions is non-empty
Enough elves availableAt least 5 elves without CreativeBlock
Sufficient foodFood >= 5 normally; food >= 15 in Winter
Cooldown elapsedEither first revel ever (last_revel_tick == 0) or at least 400 ticks since last revel

The winter food threshold (15 vs 5) is the dummy curator's only climate-aware rule. The 400-tick cooldown is equivalent to 4 game days.

Patron-Directed Composer Promotion

Evaluated last, only after bootstrap. When the patron's ArtisticDirection is anything other than Balanced (FavorMastery, FavorOriginality, or FavorEmotion):

  1. Find the elf with the highest music skill.
  2. If no elf currently holds the Composer role, assign the best musician as Composer.
  3. If someone is already Composer, skip (does not re-evaluate).

This ensures non-Balanced artistic directions produce compositions aligned with the patron's taste.

Values & Formulas

Resource Thresholds

ResourceThresholdEffect
Food< 20Priority shifts to Food-first
Wood>= 5Can build Garden
Wood>= 10Can build Dwelling or Workshop
Wood>= 15Can build FeastHall
Stone>= 5Can build FeastHall
Stone>= 10Can build Workshop

Building Material Costs (Required to Queue)

BuildingWoodStone
Dwelling10--
Garden5--
Workshop1010
FeastHall155

Revel Preconditions

ParameterValue
Minimum elves (no CreativeBlock)5
Food (non-winter)>= 5
Food (winter)>= 15
Cooldown between revels400 ticks (4 days)
Required buildingFeastHall
Required contentAt least 1 composition

Spirit Management

ParameterValue
Clearings before forced garden2
Max clearings per consultation1 (cleared_today flag)

Interactions

  • How the Curator Works -- the overall curator architecture and command dispatch system.
  • LLM Curator -- the Claude-backed advisor that uses the dummy curator as its fallback.
  • Needs & Mood -- morale and satisfaction values that the dummy curator does not directly read (it uses resource thresholds instead).

Tips

  • The dummy curator builds at most 3 Dwellings, 1 Garden (via priority order), 1 Workshop, and 1 FeastHall. Additional gardens come from the spirit management rule (every 2 forest clearings).
  • It never reassigns roles after bootstrap. If you want role changes with the dummy curator, you need to switch to the LLM curator or restart.
  • Winter is the most dangerous season for revels. The food threshold triples from 5 to 15. Make sure your gatherers have been stocking up through autumn.
  • The dummy curator ignores player messages beyond acknowledging them. For actual message-responsive behavior, use the LLM Curator.
  • The clearings_since_garden counter persists across days and is tracked via the on_forest_cleared callback. Both direct ClearForest commands and build-site clearings increment it.
  • With 8 starting elves and the bootstrap allocation (6 Gatherers, 2 Builders), the settlement usually accumulates enough wood for its first Dwelling within the first 2-3 days.