Companions — Wiki
You are reading the frozen wiki for v0.23.0 — it describes that build and is never updated. Go to the current version →

Companions

A handful of companions, no supplies, no second chance: claw a settlement out of hunger, thirst and cold until it can carry itself — then send the one or two you can spare into a vast map of finds, secrets and dangers, while the larder back home still has to keep filling without them.
Where the build stands: the survival half and the self-running settlement are playable today. The far map is generated and worth crossing to look at — biomes, rivers, caves, landmarks — but its payoff is not built yet: outposts, hidden finds, unique gear and regional danger are Milestone 6 and 10.4 in ROADMAP.md. Today an expedition costs you a pair of hands at home and brings back map knowledge, not loot.
Living document · the long form of the in-game F1 reminder, plus the developer reference · describes build v0.23.0 · last revised 2026-09-08
This build is not downloadable — only the newest release is kept. Get the current version →
The party on the island

Two halves: the Player Guide is everything you need to play. In the game itself F1 is deliberately only a reminder — the keys, the rules that kill, one line each — and this page is where the long form and every number live. The Developer Reference below it maps each mechanic to its files, seams, tunables and console commands.

What changed in v0.23.0 short form

Everything this build brought, one line each — so this page says what it is before it says how the game works. The long form, with every reason and number behind them, is CHANGELOG.md in the repository.

v0.23.0 this build 2026-09-08

Added

  • Build the better material straight over the old one — the roof, the walls and the floor
  • The Build sites rule takes marked buildings apart
  • A wet fire pit shows a countdown to its next light
  • The weather has a place — fronts instead of one sky
  • The playtest personas settle where the human settles
  • The Skills tab (E) (user order: "Verschiebe Attribute + Skills in einen neuen, zusätzlichen Tab")
  • Category chips over the pack
  • The simulation clock and the chunk layer
  • The playtest personas run the supply line
  • The playtest personas play the human's opening
  • Tab writes the rule now
  • A ROOF, and walls that no longer are one
  • A roof needs bearing, and that is a real constraint
  • Close a room and it stakes its own roof
  • The roof is in the build menu
  • A roof you draw brings its own pillars
  • A roof is drawn faded, always — you never lose sight of the room under it
  • Walk somebody in under a roof and it disappears entirely
  • "Show roof" — a checkbox in the room panel
  • Everything you build now ages
  • Dev console: roof, roof offer <x> <y>, roof lay thatch|boards <x> <y>, `roof hover <x>…
  • A playtest run can now be watched, recorded and walked back into
  • The nightly server run plays a real matrix
  • Take a thing in hand, and put it back, with the mouse
  • A beaver dam is a bridge now — companions can walk over it
  • Hover an animal and the corner tells you about it
  • A blueprint can be staked over whatever is lying in the way, and the plot cleared afterwards
  • The character sheet says what the companion is doing right now
  • The build menu (Space) is one size at every level, and it sits in the middle of the screen
  • Against the wall, or with a gap — [Q] while placing
  • Four pieces of room furniture: a table, a chair, a bench and a cupboard
  • The fish trap — the first building in the game that produces with nobody at it
  • The reed basket — a store you can put down on the first evening
  • Reeds grow on the fresh-water shores
  • Kindling: any companion splits one log into four twigs at the bench (K)
  • THE MANOR — the second hand-authored place, and it plays nothing like the first (ROADMAP 6.2, dungeon pitch p. 15)
  • The compost heap: rotten food finally has somewhere to go
  • A workshop's yard is now a building you put up yourself — and you decide how big it is

Fixed

  • A torch you put away no longer relights itself when the game loads
  • The weather readout answers for where you are looking
  • A built roof can be taken down
  • A sleeping companion is drawn as the companion again
  • A tree standing on a staked plot could not be felled
  • The exchange window could stand on the event log and off the bottom of the screen
  • The room window could run off the bottom of the screen, and nothing stopped it
  • The pile window's second column is gone, and so is the line telling you to walk somebody over
  • The fire and workshop windows ran into the event log, and the pile window ran off the screen
  • The room's furnish list was too narrow for its own text
  • A companion who was already carrying something refused to work at all — and three trades refused for ever
  • "Carry full — bring the load in" was four different problems wearing one coat
  • Loading a companion to the +50% ceiling stranded him silently
  • A Haul rule with nothing haulable stole the turn from the rule below it
  • An overloaded healer gave up on the patient and blamed the settlement
  • The full test suite had been dying on its timeout for five hours, and no report said why
  • Three tests went red the moment the inland grew trees — and said nothing about a tree
  • A staked roof could be drawn and then never built
  • A lean-to over grass was staked and then refused forever
  • A window surface could have silently stopped reading the sky
  • The carrier gets into the cave from the cell BEFORE the mouth too
  • A companion carrying a fallen one can get into a cave again
  • A body is never laid down on a threshold
  • The mosquito field is a function of the seed again — and a loaded save grows the same swarms as the game it was saved in
  • The suite compiles again — master had been red on the server since 2026-09-03
  • Time warp no longer melts the frame
  • Pressing G on the new map killed the renderer
  • Two lazy autoload lookups (ResourceManager._fog, FogManager._cave_manager) resolved an…
  • One line named an autoload from a static function, and every review sheet under tests/ stopped starting
  • ci_run.sh --self-test had an expiry date and has been failing since 2026-08-31
  • Every save written by a playtest recorded "seed": 0
  • A companion holding a torch could never put it down again
  • A pack with more than twenty different things in it now shows all of them
  • A cave's way out can always be got out from under the HUD
  • An ordered drink or scoop goes to the water you CLICKED
  • A construction site now always shows what it will become
  • The build ghost was invisible over a wooden floor
  • Furniture stands flush against a wall
  • The nightly suite hung on master for an autoload written without a dot
  • …and the guard that exists for exactly this missed it, so the guard was widened
  • A settlement test placed a pile on a spot nobody had checked was free
  • A fleeing turkey lost its wings
  • A storm soaks you now — Companions caught in the open in a storm stayed bone dry: the wetness rule asked the sky by…
  • A workshop's work zone can be chosen again

Changed

  • A skill's bar measures the level it is working on, and lights up while it is being trained
  • Working on a building trains Building — raising it, mending it and taking it down
  • The roof a closed room stakes for itself now sits ON the walls
  • A tree gives far less wood
  • An order to pick something up is never refused any more
  • A roof bearer now carries seven cells, not three
  • A stockpile zone goes indoors, and steps over the posts
  • The crafting bench draws its tiles at the pack's size
  • The weather no longer turns in one frame
  • The exchange window is one size now, whatever it is an exchange with
  • THE WATERSKIN HOLDS 3 LITRES, not 5
  • HEIGHT NO LONGER TOUCHES GAMEPLAY
  • The four windows you open by clicking the map now look and behave like one window
  • A party of animals has a SIZE, and the world stops growing into itself
  • A carry that cannot heal now says so before you spend the window on it
  • A big map deals MORE herds now, not fatter ones
  • The dry country has lone trees now, where it used to have none at all
  • A site is scored on whether there is ENOUGH wood, not merely on whether there is wood
  • SAVE_VERSION is 6, and the rule behind it got wider
  • A new GDScript warning now fails the build; the old ones no longer shout
  • World generation now asks whether a site's water is CLEAN and whether it is there ALL YEAR
  • A torch is struck in the HAND, and the "[L] Light Torch" offer appears only for a companion holding one
  • An unseen, idle animal now sleeps its life clock too
  • The 1024² world stands up in a third of the time
  • The cactus costs a third of what it did to draw
  • THE MAP IS 768 × 768 — 1024² LASTED ONE DAY
  • THE MAP IS FOUR TIMES THE SIZE: 1024 × 1024 cells
  • Another 20% off the water, and one crater lake and one stone ring per map
  • Fixed: a landmark could be stamped on ground its own scorer had refused
  • Fixed: both_lakes had become the one achievement nobody could ever earn
  • Fixed: the title-screen clip captioned "standing stones" was filming an old camp
  • Fixed: the run-recorder's two temperature checks were measuring the weather
  • Fixed (pre-existing, not from this change): test_terrain's "a pool nobody has seen yet is not a water source" asserted its own precondition away
  • A card you have not unlocked is now a clear step darker than one you have
  • The map has 20% fewer rivers and lakes, and the crater lake lost its ring
  • A dusk census for the playtest agents — and a night-fuel fix that measured WORSE and was reverted
  • The playtest personas were measured against the current build, and most of what they reported was the instrument
  • A thing in your hand goes on with one left-click
  • Fishing has a bottom now, and not every cast lands
  • A door costs 2 wood, not 2 planks
  • Every build cost is drawn as well as named, and the workshops stopped explaining themselves
  • The Character and Cards tabs fill the companion window
  • The inventory tiles are a third bigger
  • The character sheet's two halves swapped places
  • Every bar on the sheet starts on the same vertical
  • The automation cards are a fifth bigger, and their writing is a third bigger
  • The tally on a card stands clear of its frame
  • The build ghost shows the building, and R turns everything
  • Feathers are drawn as feathers
  • The arrowhead is black
  • The arrow's proportions come off the arrow, not off the tile
  • The manor is a third smaller, its ends are raised, and its front door is a door
  • The manor stands in the temperate forest
  • The bedroll costs 2 hide + 2 cordage
  • Every alternative build cost is gone — one building, one price
  • The wildlife is 30 % thinner: 281 animals at the start, 541 at the ceiling
  • Zones are drawn only in the zone editor now
  • Five per-frame costs that bought nothing are gone
  • CaveManager was looked at and deliberately left alone
  • A proper bed costs proper timber: 4 planks, 4 leaves and 2 twigs
  • Ten felled trees buy the Lumberjack card again, not ninety
  • Wild plants grow in stands now, not one at a time all over the map
  • One right-click on a workshop now does both jobs: the queue first, then the trade
  • The right-click ring on workshops is gone
  • The "Open the yard" button is gone
  • Loading a save from before this change: whatever lay in a workshop's old store is dropped on…
  • A right-click on the job somebody is already doing now calls off the waypoints behind it

Overview

The title screen
Where a run begins. Continue resumes the paused game — on the hardest difficulty that is the only thing a save is for, never a way to undo a mistake.

What the game is, and the shape of a run.

You control a party of three companions from an RTS-style top-down view: box-select, right-click to command. There is no player avatar — the three are equals, and the party grows to at most eight by taking in wanderers you meet (see Your party). Every one has the full set of survival stats and can die individually; losing one is meant to feel tragic. On the hardest difficulty that loss is permanent (see Difficulty & saving). The only threats are nature — food, water, temperature, weather, seasons and distance — plus reactive wildlife that may defend itself. Nothing ever attacks your base.

A run is a cycle of three phases

  1. The manual opening — everything by hand, no automation. Scout for a viable site, live hand-to-mouth off what you find.
  2. The automated base — buildings unlock jobs, each companion's rule program runs the day, the settlement hums.
  3. Exhaustion → migration — the land wears out, the party packs what it can carry, treks, and starts over stronger: skills, equipment and recruits persist, the place does not. Each year winters bite harder.

The map is 768×768 cells — 2.25× the ground the run length was budgeted against, so how many settlement cycles fit on one is an open question rather than a settled number. Phases 1 and 2 are playable today; phase 3 is not built yet — nothing yet forces you off a working settlement, so a run ends when you stop, not when the land does.

Build your party before the world exists

Play does not drop you on the island. It opens the three companions you are about to take there — and you can press Start the run the second it appears.

The character creator
Three slots, three live previews. What you see is the actual map figure drawn by the game's own painter — front, in profile and from behind — so nothing on this screen is a mock-up of a companion you will then meet looking different.

The party you get without touching anything is already complete: three named, differently coloured people with rolled bodies and rolled dice. Everything below is optional.

What you can changeHowWhat it costs
NameType a first name and a patronymic, or press Roll name for another Nordic one.Nothing. An empty name is filled in for you at Start.
SexThe ◀ ▶ arrows.Nothing — but it is drawn: shoulders, waist, jaw and brow all follow it, and so does the silhouette the dice would deal. It decides nothing this companion can do, and it leaves the name, the age and the dice exactly as they are.
Hairstyle, marks, accessories, faceFour more ◀ ▶ arrow rows — one each, the value between the arrows.Nothing, on every difficulty. The arrows offer everything to everyone: all eighteen silhouettes whatever the sex above says. Only the dice are kept to it.
Hair colour, complexion, shirtClick a swatch. These stay a grid because a palette is for comparing.Nothing — but the shirt is the identity colour, and no two companions may share one: taking another's swaps them.
Age 18–60The slider.Nothing. Age is not a stat — nothing gets worse with the years. It shows in the hair: grey creeps in from 38 and is full by 50.
Attributes / + per attribute.Point buy against a fixed budget — see below.
The whole personReroll this one (that slot only) or Reroll all three.New dice, new body, new budget — and the look goes back to the one their identity gives them.
Looks are free. The dice are not.
Attributes are point buy against the sum that companion actually rolled (floor 2, cap 10). You can shape a person — take a point off Fitness to buy Perception — but you can never make the party stronger, and rerolling for luck is the only way to move the total. On Brutal the attributes do not move at all, while names and looks stay as free as anywhere else. Identifying with your party must not cost you a party.

Every attribute now bends something, and 6 is the average — a roll of 6 is worth nothing either way, and the spread between your three companions is the whole point. The range is 2 to 10. Nothing here is a party-wide bonus: a party of average people plays exactly the numbers this page quotes everywhere else.

AttributeWhat it doesWho to spend it on
IntelligenceLearns faster — experience on every skill, not one of them.Whoever you mean to make your specialist. It compounds: the fast learner is the one who reaches level 10.
FitnessTires slower and rests better — Tiredness falls off more slowly, and a night puts more back.The one who walks the long errands, and the one to leave sitting up with the fire on a cold night.
DexterityEvery kind of work goes faster — it multiplies the work clock of all the trades in Work & trades.The one who will stand at a workbench. It is the broadest of the five.
PerceptionSight radius and weather lead. It sees further, so it uncovers more fog per step — and it moves how much warning a weather-reader gets, pivoting on 6 like everything else: a 10 is worth about 10 minutes of extra lead, a 2 costs about that much.Your scout — and since v0.23.0 the only thing that lifts sight: high ground no longer does.
WillpowerCarries exhaustion better — it shrinks the penalty for being tired, never the tiredness itself.Whoever you know you will overwork. The bar still empties at the same rate; they just keep working through it.

Willpower is the one to read carefully: it does not let anybody sleep less. The Tiredness bar, the alerts and the sleep debt all behave exactly as they do for everyone else — only the drag on speed and work is lighter.

Attributes are the hand they were dealt — and what they make of it
The 2–10 above is what the dice can give. It is no longer a life sentence: every companion also has a character level, 1 to 40, and each level pays out 12 attribute points and lifts the ceiling — 2.5 points a level, from 10 at level 1 to 40 at level 13, because twelve points a level need somewhere to go.
  • Everything a companion does feeds it. Walking, any trade, building, herbalism, reading the sky — the level rides the same experience the skills do, so there is no separate list of things that count. If it trains a skill, it levels the person. It is the answer to "how much has this one actually lived through", which the per-trade ladders never gave: a specialist could top one out with everything else at nought.
  • A gold coin with a bright + struck into it appears on their status card the moment a point is waiting, and clears when there is none left to place, so a level-up cannot be quietly missed. Every other badge depicts the thing that is happening to a companion; this one is the only reward being held for you, and the rim is what says so. Place the points on the Character tab, which answers with a line in the same gold — "2 points to spend →", or "2 points held" when every attribute already sits at this level's ceiling and the next level is what unblocks them. Nothing is ever lost by waiting.
  • Points past 10 are worth steadily less. Nothing at or below 10 moved by a decimal — every number this page quotes is untouched, and an average 6 is still worth exactly nothing. Above 10 the curve flattens: an attribute pulled all the way to 40 is worth about twice the best possible roll's advantage, not eight times. Specialising to the ceiling is a real decision with a falling return, not the obviously correct play.
  • Levels are rare, and each one is worth having. A working companion is level 2 in the first week, 4 by day 30, 7 by day 100 and 11 by day 300; level 40 is something to hear about, not something to plan for. The first level costs 75 experience and lands on day two or three, the last step costs about 140 times that, and reaching 40 takes roughly 180,000 — the span of a long run across several settlements. That is the point: skills and levels are what a party carries when it abandons a place and starts again. Do not wait for a level-up to fix a bad winter; it will not come in time.
  • Older saves are migrated, not reset: a companion's lifetime experience is reconstructed from what their skills account for, and the estimate reads low rather than high, so a migrated companion arrives at or just under the level they earned. A save from before the curve was re-priced therefore re-levels honestly — the experience is kept, the rank is recomputed at the new prices, so a companion can come back lower than you left them with the same life behind them.
  • Eighteen hair silhouettes, ten complexions, nine hair colours — and six marks over two pickers. Marks is what is on the skin (freckles, a scar across the brow, war paint down the cheekbones); Accessories is what is worn on the head (spectacles, a brass earring, a leather eye patch). Each group stacks, so its arrows walk the eight combinations — nothing, each alone, each pair, all three. Two pickers rather than one, because six flags in a single arrow row would be sixty-four steps. All of it is cosmetic: no look on this screen changes anything a companion can do, and none of it says what they have survived.
  • The sex is drawn — and only the dice are held to it. A man and a woman are two builds and two skulls: the coat tapers from the shoulders down or from the waist out, and the jaw is squared off or tapered. The roll follows it, so no rolled woman is dealt a beard or a crest and no rolled man a bun or twin braids. You are not held to any of it — the picker walks all eighteen silhouettes for either sex, because cosmetics are free on every difficulty, Brutal included.
  • Twelve faces, four of them warm. The trait you pick is the face they wear when nothing is wrong: the six that were always here (stoic, grim, wary, weary, fierce, dour), four warm ones (kind, merry, wry, eager), a content serene and a level proud. A companion who is fine may now look it — and one who is not never will, whatever you pick here. See Reading a companion for what trouble paints on top.
  • Skills are not on offer. Everyone starts unskilled and learns by doing, exactly like a recruit who walks in later.
  • Retry after a wipe comes through this same screen. When the party dies, you do not get three strangers the dice rolled — you build their successors, and the new run claims its own save slot instead of writing into the dead one's.

Move & look WASD · F · Tab

  • WASD pans the camera (free look). The view stays where you put it — selecting or commanding never yanks the camera.
  • F centres the camera on the selected character and follows it (a group is framed at its centre). Tab does the same while switching companions.
  • Right-click commands every selected character (see Command); a green ping marks the ordered spot, and a green circle snaps briefly tight around the object you gave the order on. Hold right-click to steer continuously — the selection follows the cursor until you release.
  • Dense forest and loose sand slow walking to 80%.
  • Mouse wheel or +/- zoom; M snaps to the widest zoom. Mouse at a window edge scrolls the view (tune speed/width in Esc → Settings → Gameplay). Over a panel the wheel scrolls that panel — it never zooms the map underneath it.
  • There is no minimap and no overview map — you never see the whole island at once. Reading and remembering the land is part of the game.
  • The time-warp bar sits top right (pause, 1–10×). Switch on Esc → Settings → Graphics → Show FPS and the frame rate appears directly under it — green above 50, amber above 30, red below. It updates four times a second on real time, so time warp and pause do not change how it reads.

Your party 3 → 8 companions

The three companions close up
The party lands at a random walkable spot on one of the driest parts of the island — with wood in reach, but a real march to the nearest fresh water. Each companion is one row in the corner: number key, name, the one word for how they are ("well"), what they are doing — and on day one that is Off duty for all three, because nothing is automated until you write it.
The sea is salt — you cannot drink it
The first thing to find is fresh water. Only rivers, inland lakes (the lighter blue), wells, cave pools and hot springs can be drunk or carried; the ocean is a walk to the beach and nothing more. Hover any water tile — the info panel names its salinity. (For cooling off, any water works, salt included.) A party that settles on the coast because "there is water right there" dies of thirst.
  • Characters are moved by right-click only. There is no keyboard steering — WASD always pans the camera, never a companion.
  • Left-click a character to select it (green / blue / orange; a white ring marks it). Exactly one selected = it is "yours": the build ring and the context ring use it, and it walks your right-clicks at full speed.
  • Drag a box to select several and command them together.
  • ^ takes the whole living party (the key left of 1; ` on a US board) — it replaces the selection rather than adding to it, and the camera stays where it is, so it is a way of giving one order to everybody without losing the view you were looking at.
  • Left-click empty ground deselects — observer mode; everyone just runs its jobs.
  • The bottom-left panel follows the mouse and is purely a mouseover readout — it names whatever is under the cursor and says what it means for you. See What the mouse tells you.
  • Tab switches control to the next companion; 18 select directly (tap twice to also centre the camera). Hotkeys are fixed for the run — a dead companion's number stays vacant, and the survivors keep theirs. The roster in the corner stands in that same order and never re-sorts itself, so a companion's place there is as fixed as its number: you learn where to look instead of re-reading the list. What needs you is said in colour on the row, not by jumping to the top.
  • Companions learn by doing — walking, each trade, building, herb-work and reading the sky each grow their own skill, and nothing else does (the eleven skills and what each buys). A run's veterans are made, and they are what you carry to the next settlement.
  • Strangers come knocking. Every so often a wanderer walks in out of the wild and waits a few days at the settlement — the event log names the direction they came from, which is your only warning to go and look. Left-click them for their panel: name, body, base attributes — and nothing else, because a recruit arrives unskilled. Take them in or send them on; wait too long and they leave. The party is hard-capped at eight — a roster you can still hold in your head — and a new pair of hands eats before it earns.
  • A newcomer brings a map, not just hands. Join one and they tell you where they came from — one line in the chronicle naming a direction, never a distance — and a patch of far-off ground stops being blank. It is marked explored, not visible: you get the lie of the land out there, not what is standing on it right now. That is a second reason to take somebody in even when the larder is tight — the next settlement has to be found before it can be built.
  • Not everyone means it. Some wanderers are false companions: they work slowly, help themselves to the stores, and one night they are gone with whatever they could lift. Nothing on the panel gives it away — the event log does, over days (someone at the stores after dark; a day's work that came up short). A companion with Perception 8 or better names the culprit outright; below that the log only reports the deed. Expel anyone who joined from their character sheet (C) — and be wrong at your own cost.

Reading a companion at a glance

The figure on the map is not decoration. Four things can be read off it without opening a single panel — who it is, what it is carrying, what it is doing, and how badly it is doing.

  • Who. The identity colour is worn loud on the scarf and the sleeve band (the coat only tints with it) and is the same colour as the selection ring and every swatch that names them in the interface. Beyond it, no two companions look alike: the build and the skull (a man tapers from the shoulders down, a woman from the waist out; the jaw is squared off or tapered), then one of eighteen hair silhouettes, nine hair colours, ten complexions and any of six marks — freckles, a scar, war paint, spectacles, a brass earring, a leather eye patch. All of it is fixed by who they are: chosen in the creator, or dealt by the dice for everyone who walked in later. Grey hair means age, nothing more — every other axis a companion keeps for life.
  • What they carry. Carrying is equipping in this game, so the figure wears its own pack: an axe over the shoulder, a bow and quiver on the flank, a bedroll lashed above the shoulders, a rope at the belt, a straw hat, a lit torch — and the waterskin everybody has. Whoever is holding the only axe can be spotted across the camp.
  • What they are doing. All fourteen kinds of work have a pose of their own — an axe swung overhead, a pick struck at the rock face, a hoe, a hammer, a two-handed saw, a knife, a ladle stirring, a rope hauled hand over hand, a rod held out over the water, a bow carried low, bare hands feeding a fire — each with its tool drawn into the hands and taken off the back while it is used, and the worker turned to face the thing they are working on. The useful half: the pose runs on the same clock that pays for the work, so a tired, sick or unpractised companion is visibly slower at the swing. If a figure across camp looks sluggish, it is not the animation.
  • How they are doing. Every companion has a permanent expression, and trouble paints over it. The face on the map and the portrait in the party row are the same drawing, so the two can never tell you different things.
The face showsWhat is wrong
Eyes squeezed shutHealth in the red — this one is dying
Pale skin, chattering teethFreezing
Beads of sweatOverheating
Heavy lidsExhausted — and walking and working slowly to match
Hollow cheeksHungry or thirsty
Eyes cast downDespondent — Mood at rock bottom
None of the aboveNothing is wrong. What is left is their own trait, one of twelve — level, grim, wary, weary, fierce, dour, proud, the content serene, or one of the four warm ones (kind, merry, wry, eager). Trouble always paints over the trait, and no troubled face ever curves upward — so a companion smiling at you is a companion who is fine, and an unfamiliar face on the map is still one to go and check on

The thresholds are the same ones the HUD bars colour by, so a face can never disagree with the bar above it — see Buffs & debuffs for the numbers.

The character sheet
The Character tab (C): portrait and body, the six survival stats under it, the equipment and below that the carry grid, where one slot is one age batch. The level, the attributes and the skills have moved off this tab — they are on Skills (E) now.

The Skills tab E

One window, five tabs: Character (C), Skills (E), Automation (T), Cards (V) and Crafting (K). Ctrl+Tab walks them; every key is rebindable.

The Skills tab
Skills (E): the general level and its unspent points, the five attributes with their + buttons, and the eleven skills. An untrained skill is greyed with its name still legible — what is missing is as much of the picture as what is there.
A skill’s bar measures the level it is working on
The strip is one level, end to end — not the whole ladder — and how many are earned is the Lv n beside it. The fill goes bright the moment XP arrives and fades back a second after it stops, so opening the tab tells you which skill a companion is actually growing right now. That matters because the numbers are slow: the old full-ladder bar filled at 0.05 XP a second and could be watched for a minute without visibly moving.

Building is trained by building — raising, mending and taking down, on every route (your order, a rule, a claimed task). It also earns three times as fast per second of work than the others, and that is arithmetic rather than generosity: every other skill is fed by something that can fill a day, while a 3×3 hut is 65 seconds of hammering and then it is finished. At the shared rate the first level of Building cost about thirty raised huts.

A life before the run — and something they still want

Every companion carries a backstory and one or two wishes. Both are on the character sheet (C): the backstory as a headline with the whole of it in the tooltip, the wishes as a line each with the wish's own words. A stranger you are deciding whether to take in shows both on their panel, and "Wants: …" is the one argument there that is not a cost.

A backstory explains the dice. It does not roll them
There are 75 authored pasts, and not one of them moves a number — no attribute, no skill, no starting item, no hidden leaning. The order is the other way round: the attributes are rolled first, and then the story that best explains that hand is the one they get. Somebody strong and clumsy gets a past that makes sense of being strong and clumsy. So read a backstory to know who you are looking at, never to guess what they are good at — the sheet already tells you that, in numbers.

A wish is what that person wants out of this run, in their own words, drawn out of where they came from: the inlander wants to see the sea, the fisher's child wants to be a fisher worth the name, somebody who slept rough wants a bed of their own. There are 27 of them, and about six companions in ten carry two.

There is no quest list, no objective marker and no progress bar — that is a rule, not an omission. Hover the wish and it says plainly what would satisfy it, and that is the whole interface. A granted one gets a , a line in the chronicle on the day it happened, and a green star badge; one being carried unanswered wears a hollow violet star.

Wishes come true by the thing actually happening — reaching a skill level, standing a building, coming through a winter, sitting out a storm, walking into a cave, laying eyes on the sea, filling a larder, the party growing. Nothing grants one on request, and the game will never send you on an errand.

Mood is a CEILING, not a bonus
A wish carried too long — 12 to 60 days depending on the wish, counted from the day that companion joined — drops their personal Mood ceiling by 12 points, and their Mood settles there and stays. One neglected wish caps them at 88; two, the worst case in the game, at 76. It is never a hit you can wash out with a good night — it is a lid. Granting it lifts the lid for good, and adds a standing bonus to how fast that companion's Mood recovers, which is what you actually feel: they shrug off a soaking, an illness or a bad night faster than the person beside them.

What wishes never do: touch health, work speed or skills, and they can never push anybody into refusing to work — that starts at Mood 15 and two neglected wishes only reach 76. They colour a run. They do not break one.

Command — right-click RMB

Right-click sends every selected character; what happens depends on what you click. Your word is absolute — a character never breaks off an order, even to save itself. It posts a red warning when critical and carries on; abort the order yourself if you want it to live.

Every click flashes a green ping at the ordered spot, and when the order was given on something — a tree, a bush, a stack lying on the ground, an animal, a fire, a stockpile, another companion, a cave mouth — a green circle snaps tight around that object for a moment. Feedback for the eye: on a crowded tile you can see what the party understood you to click, not merely where the cursor was. A plain walk onto open ground has nothing to ring and gets only the ping.

Selecting a companion shows where they are going next. A bright line inside a pale white frame runs from their feet over their whole order chain — every waypoint a bright dot in a paler ring, the last one bigger — stands for up to two seconds and fades. It comes back every time you hand out orders, so a Shift-queued chain can be checked the moment it is laid down.

  • It draws the real route, and for every leg rather than only the next one: the walk bends around rivers, walls and cliffs exactly as the companion will take it. That is what makes it worth reading before a long trek — the way round a lake is the walk you are actually ordering.
  • A companion running its own rule program gets the line too — for one leg. Select one working under automation and you see the same white route over the walk they are on right now, which answers the question an RTS player asks first about an automated party: where is that one going. One leg is the honest depth of the plan, not a display budget — a rule program decides its next leg when it arrives, so there is no chain to show. It goes when the walk does. A stroll is not a plan: a companion on free time carries no line, or every off-duty companion you selected would trail one.
  • It lasts no longer than the plan it draws: the moment they arrive, finish or are called off, the line goes. Two seconds is a ceiling, not a wait, and a companion under no orders draws nothing at all.
  • Several selected companions each get their own line, all in the same white, each starting under its own companion's feet. The two seconds are real seconds — time warp does not shorten them.
You click…They…
Open ground 1 selectedWalk there (paths around deep water, mountains, house walls)
Open ground groupEveryone walks there. Pointing at the horizon is the commonest gesture in the game and it costs one click again — the ring that asked March / Make camp / Walk there first is gone. Both orders are kept, not cut: march (the party moves as a column — anybody more than about six tiles ahead of the hindmost stands and waits, so a party split around a lake converges instead of deadlocking) and camp (walk there and everyone carrying a bedroll unrolls it) are still there, from the dev console for now. A long trek is where a column earns its keep, and that is what they are being kept for
Fresh water / a wellA ring of choices: Drink (until thirst is full, then top up the waterskin) or Fill skin (fill the waterskin to the brim and nothing else — filling is not drinking, so an errand to a pond never makes the scooper swallow it)
Tree / rock / plantHarvest into the carry (trees until felled)
A bed (its exact cell)Sleep until fully rested
A campfire 1 selectedWalk over and open the fire window. No ring: Tend, Boil water and Light fire were three doors into one room, and they made you choose before the window could show you what the fire held. You decide there — feed it, cook, boil, or strike it alight. Nothing goes in by itself and nothing lights on the spot: a light is tinder plus work
A campfire groupThe unattended orders: light a cold pit, refuel from the carry or nearby stores (wood or twigs), or boil what is carried
A dropped stackPick it up into the carry. A stack that glitters is a find, not litter
A stockpile 1 selectedWalk there and open the transfer window
A stockpile groupHaul carries there and unload onto the tiles
Another companion 1 selectedWalk over and open the carry-to-carry transfer window — you have to hit the body, a click a tile away is a walk
Another companion groupJust walk over. No window — a group has no single carry to trade from
A blue construction siteStart or join the build: fetch, deliver, raise it. Staking the blueprint ordered nobody, so this click is the only way to start one by hand
A job building fisher's hut, lumber camp, farm, mason's yard, hunting lodgeWork that building's trade by hand — fish that hut's water, chop, sow, mine, hunt. No rule program needed: this is the manual way into every trade. It walks to the building first (which is what ties the order to that hut instead of the nearest one) and then works outward from where it stands. When the building can do anything else — a queued craft order, a worn tool to mend, produce waiting in its yard — you get a ring instead, and Work here leads it: a standing craft order never takes the trade away from you. A building with nothing else to offer orders the trade on a plain click, with no menu at all

You can only order what you can see. On ground the party has never explored, a right-click means walk there and nothing else — no drink ring over a lake under the black, no harvest on a tree nobody has found, no left-click panel on a store or a fire out there, and no blueprint staked on unseen ground: choosing where to settle is meant to be scouting. Ground you have explored answers everything even when nobody is looking at it — the map does not forget where the water is. Wildlife is stricter still: an animal can only be clicked while its cell is in live sight, because a remembered deer is a deer that has long since wandered off. Walking into the dark is never gated; that is how you scout.

Clicking the same job again does nothing — on purpose. A right-click on the work a companion is already doing (the bush they are picking, the site they are building, the fire they are boiling at, the animal they are hunting) is ignored for that companion instead of cancelling the order and starting from zero, so the half-done work keeps its progress. It counts while they are still walking there, too, which is when the impatient second click usually happens. A group is decided companion by companion: click one bush with three selected and the two elsewhere set off while the one already picking is left alone. Anything else still redirects instantly, and a plain walk order is deliberately exempt — clicking the ground again re-paths, because that is the reflex for somebody who looks wedged. And if one really is stuck the no-op lifts: once a companion has actually been going nowhere for two seconds, a repeat click is obeyed and paths them afresh — so clicking again can never be a dead end. The click still flashes its green feedback and redraws the waypoint line, so the gesture confirms the order rather than doing nothing visible.

Shift+right-click queues the order as a waypoint. A plain right-click replaces the whole queue. Nobody looks after themselves at all — drinking, eating, warming, sleeping and taking medicine happen only on your order or through the rule program (T).

A bed someone else has claimed refuses the order: it is dropped with a warning rather than silently ignored, so a sleep command that "did nothing" is worth a look in the event log.

An order with the materials nowhere is refused at the click. Build, repair, craft, light a fire or feed one: if what it needs is in neither that companion's pack nor any store the settlement can reach, the order is turned down where you gave it, the reason goes to the event log, and nobody takes a step. It is asked per companion, so ordering three onto a site sends the ones who can carry something and tells you about the ones who cannot. It refuses only what is genuinely nowhere — a wasted walk is a small price, an order wrongly refused is not. Queued waypoints (Shift+right-click) are never refused: they are a plan for later, and today's empty stores say nothing about it.

What a left-click opens

Right-click orders; left-click a building to look at it. The panel opens without touching your selection, so you can read a fire while a companion keeps working. This is also the only place the ranges below become visible.

What the mouse tells you

The bottom-left panel is the mouseover readout and nothing else — it says what is under the cursor, never what you could press. The headline is the thing you are pointing at: a tree, a fire, a stockpile, a companion. The ground only gets the headline when nothing stands on it, because "plains" is rarely the answer to the question you were asking. There is no grid coordinate — a cell number was never a decision.

  • One key line, then the reason. The first line is the decision, short enough to read without stopping (60 characters at most): „Undrinkable — the sea is salt“, „Burning — 4 h of fuel left“. Underneath it, smaller and dimmed, is what that means for you.
  • Exactly one word is coloured, and it is the word you are there for — the count, Undrinkable, Burning. When a tile has nothing to report, the line is plain grey: the absence of colour is itself the reading.
  • A hovered companion's name wears their own identity colour, so the readout and the roster agree about who you mean.
  • It quantifies what it names. What felling this tree will leave behind, how far a fire or a pile reaches and who it serves, how long a worn patch needs to come back, what a road is actually worth in walking speed — and that a wanderer is not yours until they join.
  • A remembered tile says so. Explored ground you are not currently looking at reports what you last saw, and the readout labels it a memory rather than passing a stale count off as a live one. Unexplored ground says only that nobody has been there.
  • A campfirethe same window a companion walking over opens (see the fire window): the fire drawn at the top, which of the three states it is in, how much longer it burns, its three slots, and a Light it button on a cold pit. It draws two circles on the map: an amber action ring and, well inside it, a smaller red warmth circle. Warmth is the small one — standing in the amber ring does not thaw anybody, and in bad weather that circle pulls in further still (the panel draws the pinched circle, not the fair-weather one).
  • What the fire's window no longer shows. Two blocks were taken out of it: the listing of the tasks it posts (a fire still calls for refuel and boilnothing in the game prints a posting any more) and the night watch. That second one matters, so read the night arithmetic below and do it yourself: a campfire filled to the brim burns about 7 in-game hours, a night lasts 12, a straw bed gives no warmth of its own, and a sleeping companion does nothing at all — so a party that all lies down around a fire on a cold night wakes up short a companion. Load the fire at dusk. The standing keep the night watch order still exists and still works (hold position in the warmth, feed the flame all night, end at first light, pay for it in tiredness the next day), but it can only be given from the dev console for now.
  • A well — what it serves and its action ring.
  • A farm — the crop picker and a line saying what the field is doing, how far along and what it wants next. This is the only place the crop is chosen, and it shuts the moment the first cell is sown.
  • A kitchen, or any workshop with a queue — the recipe list: one click puts one on the order book, and the building finds its own hands.
  • A stockpile — what lies on it, how full its tiles are, and its acceptance rules.
  • A construction site — materials delivered so far, progress, and the Cancel button; cancelling drops everything already delivered on the spot as loose stacks, so nothing is lost.
  • A room (left-click inside it) — its comfort and its furniture, see Furnish a room.

Merely hovering a building draws its action ring too, without opening anything.

Gather — order it right-click

Gathering is ordered, never held. Right-click the target and pick the work from the ring; the companion walks there and a ring fills over its harvest time. There is no gather key any more — every harvest target has a right-click order, and that order is the only way in. Gathered items go into that character's carry, limited by weight (~40 kg, raised by Strength).

  • Trees → wood: each forest tile is one tree; the whole wood stock comes down when it falls (the tile turns to grass) and the pack takes what it can. Strikes are banked — stop and finish later. Four species by shade: birch (4 wood), pine (8), spruce (10), oak (14) — an average tree is a single packload, so a night at the fire eats most of a pine and the woodline retreats from a settlement fast.
  • Rocks → stone and fishing take ~10× ordinary work — plan whole days; a mason's yard / fisher's hut put workers on them around the clock.
  • Herbs, berries, roots regrow in place, but never in winter, and slowly enough to plan a walking circle around: herbs ~3 days, a berry bush ~2 days for the 5 berries it holds, hemp ~5 days. Foraging fatigue (below) stretches all three by up to 4×. Bird nests (spring only, gone for good when robbed), mushrooms (summer+autumn, forest edge), hazel nuts (all year, never rot, but a cleared bush is finished and the next grows out of sight), mussel beds (salt coast, year-round, spoil fast).
  • Reeds — the poor end of a settlement is made of them. Beds stand one cell from open fresh water, tighter to the bank than wild hemp (3 cells) or wild rice (2), and never on the salt coast. 4 to a cut, 8 to a bed, and they regrow in 3 days — the fastest-renewing plant on the map. They are a material, not a food: no nutrition, no shelf life, almost no weight. They buy a reed basket (10), a fish trap (12) and a rush floor (2 a cell), none of which needs a workshop.
  • Wild plants grow in STANDS, not scattered singles. The same number of plants stand together: a grain field ~10, a wild-rice reed bed 8, a hemp thicket 6, a mushroom troop 6, a bramble 4, a rock outcrop 3, flint in threes. About half the herbs and half the outcrops, a third of the hemp and a quarter of the flint still stand alone — but the two cereals never do. Regrowth returns into the stand, so a grove stays a grove across seasons. Twigs, leaf piles, loose stones, hazel, mussels, wild roots, cacti and bird nests still lie about singly. This is what makes where you settle matter more than it used to: scout before you build.
  • The land wears out where you pick it. Berry bushes, herb patches, root beds, hemp stands and mussel beds remember being stripped: each unit taken leaves foraging fatigue on that patch, and a worked-over patch regrows up to 4× slower. Hover it to read the state — "picked over (40%, regrows in 3.2 days)". No dice: the wear fades on its own over about a week, in every season, so it is a tally of recent pressure, not a scar. Forage in a circle, not in one spot — and the longer a base stands, the further you walk for a full pack.
  • Free ground pickups (a half-second stoop, gone once taken): twigs & leaf piles at the forest edge, loose stones on the plains. One node is one item — a campfire is three twig nodes, and they are everywhere.
  • Wild hemp → plant fibre — grows only on damp ground beside fresh water (river banks and lake shores; never the salt coast, never inland). Tall fanned stalks, regrows in ~5 days outside winter. Fibre is not string: spin it into cordage on the Crafting tab, and cordage is what a bowstring and a fishing line are made of. No hemp in reach → no bow and no rod, so it is one more thing that makes a settling site good or bad.
  • Hunting takes a bow (craft one once a Hunting lodge stands). Deer & pigs flee faster than you walk — you shoot them: embody a hunter, hold H, a swaying reticle rises, lead the moving animal, release to loose. A hit is aim, not luck. A shot spooks the prey — one clean opening shot, then it bolts. The Hunter rule shoots the same way on its own, and with nothing in sight it takes a stand instead of falling through to the next rule: it walks to the nearest known forest cell (failing that, anywhere outdoors — never under a roof) and waits there, reading "No huntable animals in sight - waiting". Hunting is mostly waiting.
  • Fishing takes a rod (a pole plus a line of cordage; craft one once a Fisher's hut stands). The hut grants the fishing right to its water, the rod is the tackle: no rod in the pack → the companion will not fish, the Fisher rule stays blocked, and the hut's call for hands is left for whoever is equipped. Rods are per companion — three fishers need three rods.
Deer grazing near the party in open woodland
The map is inhabited, and thinly: a species is dealt at its ceiling and stays there, in many small parties rather than a few big ones. Hover any animal and the corner tells you the one thing that decides whether you can get it — flees within N cells, stands its ground, in the air, perched, or at a kill and not watching — plus what it butchers to and whether it needs a bow.

Sixteen creatures roam. Deer, pigs and wisent are the meat you live off; squirrels, hares, turkeys and the small birds are a mouthful each; beavers keep to fresh water; badgers are slow enough to corner; foxes, raccoons and wolves are the ones you meet rather than hunt; and wolves and bears hold their ground. Wolves belong to the tundra — the cold north is where they start, which is exactly where you go looking for hide. Nothing out there hunts you — yet.

Most game does not stand around in herds. Only crows, pigeons, pigs, beavers and wisent live in groups; turkeys keep company more often than not, in rafters of at most five; hares and deer are alone nine times in ten; wolves are half in a pack and half alone; and bears, badgers, foxes, raccoons, squirrels, eagles and vultures are always solitary. All of them are spread evenly over the whole map — there is no herd to walk into and no empty quarter either, so plan a hunt as a walk between single animals and expect a lone wolf as readily as a pack. Every species breeds back to a ceiling of its own accord and will cross open country to find a mate, so hunting is sustainable — but a species is only ever as many as the map can hold.

The map is dealt AT its ceiling — the first morning is the fortieth
A species no longer grows into the map after you arrive: it is dealt at its carrying capacity and stays there, so the wildlife you scout on day one is the wildlife there will be. What you hunt out still breeds back — faster the deeper the hole, and no further than where it started. The map is also thinner than it was: roughly 287 animals against a former ceiling of 541. And herds are herds again: the biggest group used to read pig 13 / pigeon 11 / crow 10 and now reads 6 / 5 / 5 — there are simply more parties, spread out, rather than a few fat ones.

The biggest animal in the game does not run from you. A wisent herd grazes the open plains and simply stands there — the only creature that never flees, so it is the one big kill that needs no bow. It pays accordingly: 8 meat and 3 hides off one animal, and the slowest butchering there is. Be careful what you take. There are few of them, a cow carries her calf for eight days, and a herd hunted out will not be back inside a season. At the other end a hare bounds — so does a squirrel — and the hare is the fastest thing on the ground: nothing on foot ever catches one, so it is the bow's quarry or it is nothing.

Every animal on the map is worth killing now, and three of them are worth killing for the skin. A carcass pays in meat, and — the birds excepted — in one of three different skins, which is what the winter is made of.

SkinComes offWeightWhat it is for
PeltBear and wolf (2 each), fox (2 — the best return for its size), badger, beaver, raccoon (1 each)1.4 kgFur hat, fur coat — the warm half of the set
HideThe grazers: wisent (3), deer and pig (2 each)1.2 kgTanned into leather at the hunting lodge — 2 hide → 1 leather, 22 s
Small peltHare and squirrel (1 each)0.3 kgMittens and the uppers of the boots
FeathersCrow 5, vulture 7, eagle 8 — and nothing else, pigeons and turkeys included. They also lie on the ground where those birds live, 1–3 at a time.0.01 kgArrows — two a shaft

So the fastest thing on the map and the smallest are both worth a shot after all: two hares and a squirrel are a pair of mittens. And the tanning is what turned the hunting lodge into a real workshop — it has a craft queue now, and hide only becomes leather there.

You are not the only hunter, and each one hunts by name. Size is no longer the whole story: a fox takes hares, squirrels, pigeons, crows and raccoons and nothing else — the turkey and the badger sit right among those five on size and are simply off its menu. A wolf takes deer, and only within 4 cells, so a deer that keeps its distance is safe from one standing in plain sight. An eagle stoops on a hare, grabs it, carries it off and lands somewhere to eat. They hunt each other and never you, and a predator that has eaten goes hungry for three days before it hunts again, so the wood is not a slaughterhouse. It does mean the hares near your camp have somewhere else to be.

The dice fall before the chase does. The moment a predator locks on, the outcome is rolled — once, before a single step — and everything you then watch is the animation of a decision already made. A won roll lifts the hunter just clear of its quarry; a lost one pins it just under, and the prey gets away. So there is nothing in a chase to read and nothing to act on: you cannot save the hare by watching harder, and a hunter that gives up did not run out of legs. What you can see is the effort — a hunter puts on a brief burst of speed over and over through a chase rather than running flat out — and, at the end, a kill that bleeds and is eaten where it fell. Walk up on most predators and they abandon the carcass.

The bear is the exception, twice over
A bear eats everything. Not a named list — everything under its size ceiling, the other hunters included, with exactly two things spared: another bear, and a grown wisent. Wisent calves are not spared. It is a charge rather than a course: it commits from 8 cells, puts on the hardest burst on the ground, and quits after 10 s — so it blunders into a meal where a fox sweeps for one. And it is the one predator that does not leave its kill because you walked up: nothing frightens a bear, so it stands over the carcass and finishes it while you watch. Whatever you were about to do on that cell, do it later.

Something else is eating your hazel bushes. Squirrels and raccoons work a hazel bush exactly as your own hands do — one unit at a time, on a day-and-a-half cooldown apiece, and the nut is simply gone. A bush you had counted on for the walk home can be empty when you get there, and nothing tells you it happened.

Birds fly a fifth faster, and no longer at one flat speed each — the pace rises and falls within a flight, out of step from bird to bird, so a flock stops reading as parallel lines. Flee speeds are untouched: a bird was never caught by chasing it.

Nothing can be wiped out for good — and that is no licence
A thinned species breeds back harder: under 45% of what the map can hold it bears twins, under 25% triplets, and under 20% (40% for the eagle and the vulture, which cannot cross the map to find a mate) a breeding pair walks in under the fog, on ground nobody can see. Over 115% the surplus quietly emigrates. So no run ends with an extinct species — but the floor works in seasons, and it works somewhere, not here. Hunt out the ground around your camp and it stays empty for a long while, and the answer is still an expedition.

Beavers swim, and a beaver colony is never finished. Water is not a shortcut a beaver takes — it is the slowest walker on the map and swims at 1.4× its walking pace, so the river is how it gets anywhere. Mountain, cliff and a wall you built still stop it. Its lodge is a construction site like any other, gated by material and labour: 12 logs, carried one at a time in the mouth, and it rises only while somebody is working it. Then the colony moves: it picks a further crossing nearby, spends 8–10 in-game days raising a new lodge and dam there, and the day it moves in the old pair fades out and is gone. Then it does it again, back where it came from, and it alternates between the two sites forever.

What a colony may hold at onceWhy it matters to you
1 lodge and 1 damThe cycle moves a home, it never adds one — a river cannot silt up with beaver works.
At most 10 trees down (about seven in practice)A beaver-felled tree grows back in 5 in-game days, same species, same stock, same cell — so the forest's standing total never changes. Only beaver-felled ones: your own axe is unchanged.

Birds are not everywhere, and one of them walks. A turkey is the one bird that stays on the ground — it walks the plains and is worth hunting, which the little ones are not. Pigeons and crows keep to the low country, eagles to the mountains and vultures to the desert; each stays inside its own region, so seeing one tells you where you are. A bird on the wing is out of reach of anything on the ground; one that has landed is not, which is the only chance a fox ever gets.

Some things on the ground glitter. A find wears a breathing halo and a few sparks that flare and die around it, and from the second tier up the stack casts real light — which only shows once it is dark. It glitters in every place an item is drawn: on the ground, in a pack slot, in a panel row, on a stockpile tile. What glitters is the discovery, not the goods: the wood cached beside an old camp's cold hearth shines because finding it mattered, and it is ordinary wood the moment you carry it home. Half a screen away on dark ground, that is the difference between a landmark and nothing at all. The brightest thing you can find is a word: the scraps of automation grammar lie out there under the same sparkle.

Game leaves a settlement. Every wandering step a herd takes leads to the quieter of the ground it can see, so deer and pigs drift off your built-up walking circle over the seasons. It is a drift, not a flight (they bolt only from a companion at close range), and it is not the same for everyone — pigeons and crows do not mind a settlement at all. Hunting turns into an expedition: one more reason for the waterskin, the bedroll and, in time, an outpost.

Foraging wear across a settlement's walking circle
Every permanent patch shaded by how hard it has been picked — a worked-over walking circle is what pushes the party outward.
Cooking
Raw meat is not a meal — companions never eat it on their own, and eating it by hand builds toward food poisoning. Cook it on a campfire's hearth (left-click the fire → PAN / COOKED slots) or cure it into preserved food on a drying rack or in a smokehouse. Raw fish is safe; cooking it is just better.

Stay alive

Health, Thirst, Hunger, Tiredness and Temperature drain over time; Mood is a secondary, non-lethal stat. Every companion is one row in the top-left shelf, and the row is built so you never have to read it — only notice it:

  • The hotkey digit, the portrait, and the name.
  • The one word the companion's whole state comes down to — well, thirsty, starving, freezing — backed by that stat's symbol. The gravest thing wins, by what kills soonest.
  • A second line: what it is doing right now — the rule it is running, the order it is carrying out, the need it broke off for. It turns yellow when the answer is no work — and it distinguishes the two cases: automation off reads "Off duty", while a running program in which nothing applies reads "Free time (no rule applies)", naming the gap in the program, which is the half you can act on. Either way they are at free time and strolling, not frozen. An idle companion is still a lost day, and this is the line that says so.
  • Six pips on the right, the whole stat set at a glance. They fill in one neutral grey and a stat that runs out turns its pip into a solid red block — the emptier the stat, the more red there is. Temperature's pip is a marker that rides up and down, because it has a cold end and a hot end.
  • A stripe down the left edge carrying the same warning as the word: dark while all is well, yellow once a companion would break off work for a stat, a pulsing red — and a red frame — when life is at stake. A calm party is a shelf of plain grey rows.

Hovering a row unfolds it to the six full bars, underneath the row rather than in place of it, so the line you were reading stays put — and hovering is the only thing that opens a card, so the corner never rearranges itself when control moves. The rows stand in hotkey order and never re-sort. Buff/debuff badges beside the card say what is on a companion — green = boon, red/magenta/violet = malus. A red cracked heart is the one that means somebody is dying right now: it is on for exactly as long as something is taking Health off them, and hovering it names both the cause and the one thing that ends it (see Buffs & debuffs). When any Health falls into the red, the whole screen sounds the alarm (red rim, heartbeat) so an off-screen death can't be missed.

Colour on a bar means condition, not which stat it is
A healthy bar carries no more than a pale wash of its own stat's hue (the pips stay plain grey); the symbol beside it is what says what it measures. The alarm lives in the background, so a stat in trouble takes the warning colour outright and one that runs out floods the whole bar red — quiet → yellow → red reads as one escalation on all six stats. Six always-on colours made a thriving party and a dying one look equally like a rainbow. Temperature is the one bar read by its ends: muted blue → dark neutral → warm brown, so comfortable is the quiet middle and the bar only lights up where something is wrong. The character sheet and the transfer window follow the same rule.

A bar is a scale, not just a length. Quarter notches let you read „three of four“ instead of guessing at two thirds, and one brass mark sits at the fraction where this companion's own rules break off work — the same number the bar changes colour at, so the mark and the warning can never drift apart. Temperature marks its comfort zone in that same brass, which is one language across every bar: here your own rules stop working.

DangerWhat it doesThe fix
Thirst emptyKills in ~half a day (fastest). A full bar empties in 6.1 in-game hours at rest — about 2 litres a day, and more in the heat or on a day spent walking and workingDrink at fresh water / well, or from the carried skin (sheet tool-slot double-click); the skin holds 3.0 L — about one day’s drinking, so it is a day’s range and not a store
Hunger emptyStarves over several days; a full bar empties in 7.0 in-game hours at restEat from carry (Eat rule / sheet double-click); cook & smoke a surplus. Every kind sates its own amount (meat 60, berries 25) — and berries also water you (+5 thirst a handful), the one food that gives a sip back. A meal stops at „full enough“ — see below
Tiredness lowWalk −25%, work −40%; sleep debt drains it up to 60% fasterSleep in a bed (heals Health too); on a trek, unroll a bedroll. A sleeping body burns food and water at half rate — the same half in a bed, on a bedroll or on bare ground, so a missing bed costs rest, warmth and healing, never rations
TemperatureBelow 4°C or above 35°C drains HealthWarm at a fire/indoors; cool at water or a well — and in the heat, get into shade
Wet (rain/swamp)Feels up to 30% colder, −5% speed, sinks MoodDries only at a burning fire or under a roof (~4h)
FeverFrom cold, wet and exhaustion. −25% work, drains Health if untreated; can killBed rest, and a herb dose you give (below)
DysenteryFrom untreated water. −20% work — and it makes you thirstier, the trap that feeds itselfBed rest + a dose; then clean water only
Food poisoningFrom raw or spoiled food. −30% work, the hardest hitter of the three, but it passes fastBed rest + a dose; cook or smoke meat first
Still water (lake/pond)Every untreated gulp builds the dysentery load (~27 per litre — about 3.7 L breaks out)Drink at running water or a well; or draw it and boil it in a fire's pan
Despondent (Mood floor)Refuses its rule program AND stops feeding itselfDirect orders only — nurse it dry, warm, fed, healthy
Nobody takes their medicine on their own
A sick companion will sit there sick with the herbs in its own pack until you do something about it — there is no instinct left anywhere in the game that reaches for them. Double-click herbs in the pack (character sheet, C) to dose whoever you are looking at, or program it with the Take herbs card (WHEN Sickness ≥ 25 → Take herbs). One dose treats every ailment on them at once, and it lasts 8 in-game hours — longer as Herbalism grows, up to 12 h. A dose already running refuses a second rather than stacking, so a second handful is wasted; and because a fever wants 12 h of herb-time, dysentery 15 h and food poisoning 6 h, one novice dose finishes only the fastest of the three. Bed rest stacks with it — that is the pairing that actually gets somebody well.

A body mends itself only while nothing at all is wrong with it. Health then climbs on its own — awake as well as asleep, bed or no bed — as long as every bar sits over half, the body is comfortably warm and no sickness is on it. That trickle runs at 30% of a good bed's healing rate, and it never adds to a bed's: a sleeper mends at the bed's pace, not at both. Sleeping in a proper bed is still how somebody actually gets well; the waking trickle is what stops small damage from being permanent before there is a house to sleep in. Hover a hurt companion's Health bar and it says which of the two it is doing — the promised climb, or the one thing blocking it ("Thirst below 50%", "too cold", "sick") — and a green heart with a rising arrow joins the badges while it mends.

What hurts you doesn't let you heal: an empty Thirst/Hunger bar, or a freezing/ overheating body, suspends even a bed's healing — the sleeper rests off tiredness but wakes no healthier. Winter is the exam: farms lie dormant, plants stop regrowing, no animals are born. Stockpile in autumn; nuts, fishing and mussel beds work year-round.

Read the temperature bar before it bites. It shades its comfort zones — blue too cold, a dark neutral for all right, warm brown too hot — and carries two marks: the thick one is the body temperature that actually damages Health, the thin pale one is what the body currently feels and is drifting toward. When the thin mark runs into the blue well ahead of the thick one, you still have time to do something about it.

Food that turned
Read the freshness bar — its bottom is ten times worse than its middle. A mouthful eaten in the yellow band (the middle half of a food's shelf life) rolls 5% for food poisoning; in the red last quarter it rolls 50%. Yellow is the ordinary state of a larder nobody cleared today and is very nearly a shrug; red is food you served past a coloured bar, and it is a coin flip. One roll per served meal, and resilience divides the chance — but a hand-fed bite off the sheet rolls every time. Food left too long in a pack becomes spoiled waste. It is dead weight that clogs the carry, and haulers refuse to touch it — only you can clear it: right-click the stack in the sheet and click outside the window to drop it. In the city stores spoiled goods simply disappear instead, and the log says so. A smokehouse helps itself: it always cures whatever in the stores is closest to turning — but only within its own settlement, and never out of a workshop's yard. So the fisher's hut's out-tray is not covered by a smokehouse across the camp: clear the yard into a stockpile and the smokehouse will look after it. A companion standing at the hut may eat what lies in it; a machine may not reach in. The drying rack takes nothing on its own — it cures what you put on it and nothing else (see Build).

A cooked dish is food that does something afterwards. Anything off a kitchen leaves a warmth, a work-speed, a walking-speed or a sleep boon in whoever swallows it — and nothing in the game hunts for one on a companion's behalf, so a hungry companion will happily eat the stew you were saving for the person walking into the snow.

A meal stops at „full enough“
A companion takes another bite only while at least half of it still fits — one unit is swallowed if it is no more than twice the gap left in Hunger. So WHEN Hunger < 30% → Eat costs one fish, not two, and the rule you wrote does what its number says. It is a stop, not a fast: a nearly full companion that is carrying berries as well as fish will pass the fish and take the berries, because the smaller thing still fits. Your own hand is unbraked — double-clicking food in the character sheet feeds them whatever you clicked, however little room is left.

And a meal takes time, the way a drink always has. The bar fills over seconds, bite by bite — a fish is about 6 s, an empty stomach about 12 s — and the companion stands still while they eat. The food leaves the pack at once but arrives in the bar gradually, so a companion sent off mid-meal has swallowed only what the bar shows. Hand-feeding chews too, and a second double-click queues the next bite rather than replacing it.

A campfire's panel with the hearth slots
A fire's panel: how much longer it burns, the fuel slot measured in logs (and what else burns, at what rate), and the two cooking slots with the progress arrow between them — pan on the left, ready on the right.

Mosquitoes summer · swamp all year

The only hazard on the map that costs you a night rather than a hit point.

You can see them, and you can walk round them. Clouds of mosquitoes hang over the land as a drifting haze with specks moving inside it — scattered at random, never round, and of every size from a patch crossed in three steps to a ragged mass nine cells one way and under four the other. They drift, slowly, so a gap you noted this morning has moved a little by evening. Nothing marks them on any panel: what you can see is the whole of the warning.

WhereWhen
SwampAll year, and far thicker than anywhere else — a bog is what they are for.
Every other biome (forest, plains, hills, tundra, coast)Summer only.
DesertNever. The one biome that has none at all.

Bites add up while you walk. A companion standing in the thick of a swarm is covered in about three in-game hours; a crossing costs a fraction of that, and the fractions add. The itch then takes roughly 30 in-game hours to fade — deliberately longer than a night, so a badly chosen camp costs more than one evening and moving away pays back over two.

What it costs — and what it does not
A fully bitten companion spends the night scratching instead of sleeping: that night gives back 45% less rest. Nothing else. There is no damage, no slowdown and no Mood drain — the rose badge is a nuisance, not an injury, and reading it as one has you treating the wrong thing. The sting is that the lost rest goes straight into the fatigue curve and the sleep debt: cross a summer swamp at dusk and the party works the next day slow and tired, and the day after that as well.

Smoke is the answer, and it is what a campfire is for in high summer. Stand within 2 cells of a lit fire and they stop biting outright — the one use a fire has on a hot night when nobody needs the warmth. A roof does the same. A forest canopy does not, and that is on purpose: a still wood is where they live, and a tree that stopped them would switch the mechanic off across most of the map.

What changes itEffect
A lit fire within 2 cells, or a roofStops the biting. The badge stays while the itch lasts, but nothing more is being added.
Forest canopyNothing. Deliberate — see above.
Rain, hail, stormGrounds them; snow too, and a drought thins them right down.
Cold airBelow about 8 °C they stop, and they only bite in earnest from about 16 °C up — which is what makes a tundra afternoon and a tundra night two different places.
The hourWorst at dawn and dusk, quietest at midday; a warm night still bites.

The badge tells you both halves. A rose bitten badge beside the HUD card and under the portrait in the character sheet (C) says how far gone the itch is, what it is costing tonight and how to stop it. Companions say so too — a swat and a curse on walking into a cloud, and a complaint the morning after a night spent scratching.

Buffs & debuffs — the exact numbers

Every condition a companion can carry, what it really costs, and how to end it.

Conditions show as badges beside the HUD card and under the portrait in the character sheet (C). The colour tells you the kind before you read anything: green = a boon, and magenta / blue / violet / red = something is wrong. Every slowdown below multiplies with the others: soaked, exhausted and ill at once is a companion barely moving.

BadgeWhat triggers itWhat it costsHow it ends
Taking damage (a cracked heart) Health is being drained at this moment. Exactly four things do that and there is no fifth: an empty need (Thirst, Hunger or Tiredness at nought), the sky's own woundshail, or a storm, on somebody standing in the open — a sickness past its damage line, and the cold and heat bands (below 4 °C / above 35 °C). Health itself. The badge carries no penalty of its own — it is the warning, and it is the same answer the death line would give, so it can never name a different culprit than the obituary. The moment the drain stops. It has no timer. Hover it: the tooltip names the cause and the single remedy — "…is TAKING DAMAGE from the hail — Health is falling right now. Under a roof, into a cave, or under the forest canopy."
Overloaded (weight) A pack loaded past its weight budget (40 kg base, +8% per Strength level → 72 kg at level 10, and +90 kg more behind a handcart). Only you can cause it — every automatic path stops at the budget. Walking speed falls linearly from 100% to 0% between the budget and +50%. 20% over = 40% slower. At +50% the badge turns red and the companion cannot move at all. Work is untouched. Take something out of the pack. Nothing else clears it.
Wet (soaked) Rain soaks; snow and hail leave you dry on purpose (hail wounds instead — a winter that also soaked would double the lethal season). A storm soaks half again as fast as a middling shower, and fills the rain barrels with it. Standing in open rain soaks from dry in 30 min in an average shower — nearer 18 min in a downpour and over 1.5 h in a drizzle, because it scales with how hard it falls; a swamp does it in 1.5 h (a bog only wets what is in it). −5% walking and −5% work when fully soaked, and felt warmth drops to 70% — which is what actually kills, because cold is what the fever load feeds on. Mood sinks too. Under a roof or at a lit fire: 4 h from soaked. Outdoors it dries too, but only as fast as the sky allows: 10 h × weather × temperature (nothing at 5 °C, full at 20 °C, up to 150% in real heat). The sky is worth a great deal: anything falling dries nothing at all, an overcast day runs at 35% of the reference pace, and a clear sky — sunshine or a summer drought — at 170%, so a bright afternoon gets a soaked party dry while the work goes on and a grey one leaves them waiting for a fire. A bog cannot be dried out of — leave it.
Fever The cold-and-wet load filling up (exposure, soaking, exhaustion). The load is deterministic — there are no dice, and it clears on its own while its cause stays away. −25% work, −10% walking at full severity. Drains Mood from full to empty in 18 h. Past severity 0.75 it drains Health, killing from full in 24 h. 24 h of bed rest, or 12 h of herb treatment — they stack. Get dry and warm first, or it simply comes back.
Dysentery Drinking still water (a lake or pond — a river or a well is clean). Every litre of it adds 27 to a 0–100 load; at 100 — about 3.7 litres, a day and a half of drinking nothing else — it breaks out. The load is billed per litre, so a skinful drawn at a pond is four fifths of a dose. −20% work, −15% walking. Mood from full to empty in 12 h. Past severity 0.80 it kills from full Health in 30 h. And it drains a full Thirst bar every 8 h on top — which is the trap: bad water makes you thirstier, and thirst sends you back to the bad water. 30 h bed rest or 15 h herbs — and clean water from then on: boil it, drink from a river, or dig a well.
Food poisoning Eating raw meat, or food past its best: 5% per meal in the yellow freshness band, 50% in the red. Companions never eat raw meat on their own; that one is a hand-fed mistake. The harshest of the three: −30% work, −20% walking. Past severity 0.70 it kills from full Health in 18 h, and drains a Thirst bar every 12 h. 12 h bed rest or 6 h herbs. It passes fast, but it hits hard.
Sickening (pale) A contamination load past its warning line — the illness has not broken out yet. Nothing yet. It wears the coming illness's own glyph, washed out, so you know which one is coming and can still stop it. Remove the cause. A load falls on its own while its cause stays away.
Exhausted Tiredness below 35%. Legs and hands slow linearly down to −25% walking and −40% work at an empty bar. The hands fail before the legs, on purpose. Sleep. A bed is best, an unrolled bedroll is 70% of a bed's rest rate, bare ground is worst. A bedroll left in the pack counts for nothing.
Sleepless (sleep debt) A night cut short: the shortfall is remembered. Tiredness drains up to 60% faster until the debt is paid. One sleep that ends on a full Tiredness bar. Another interrupted night does not clear it.
Despondent Mood at rock bottom. The gravest malus that does no damage of its own: the companion refuses its rule program and stops looking after itself. Below Mood 35%, bad morale already costs up to −15% work. Only direct orders get through. Nurse it by hand — order drinks, hand it food, get it dry, warm and healthy.
Treated A herb dose given by hand (double-click herbs in the pack) or by a Take herbs rule. Never on the companion's own initiative — see Stay alive. A boon: it is curing whatever ails them. One dose treats every ailment at once — medicine is for the body, not for a diagnosis. Cure times: fever 12 h, dysentery 15 h, food poisoning 6 h of treatment, and bed rest adds to it. Runs out on its own after 8 h (up to 12 h at Herbalism 10). A second dose while it runs is refused, not stacked.
Comfort Standing in a detected room. A boon: room quality lifts Mood while inside, and double while asleep. Quality is the average comfort over the room's cells — wooden flooring pays 1.0 per cell, furniture adds its own, and the total is capped at 100%. Leaving the room.
An overloaded companion's character sheet
An overloaded pack: the carry header and the weight badge under the portrait carry the same amber, and the bottom-left info panel says the same thing on hover.

Rescuing a fallen companion the alerts warn, you rescue

At zero Health a companion collapses instead of dying — and what will bring them round is decided by whatever put them down, not by what you happen to be carrying.

A collapse is a window, not a death. The body lies there unconscious for half an in-game day — twelve hours, about 9 real minutes of play. Reach it in time and it lives; let the window run out and that companion is gone for good. The body is lootable either way: everything it carried is still in its pack, so a rescue that arrives too late is at least a recovery. The red line in the log is the only warning you get, and this section is the other half of it.

Right-click the body with one companion selected and the ring offers what will actually help. There are two kinds of rescue and the ring never mixes them up: three causes are fixed out of the rescuer's own pack, and three are fixed by moving the body somewhere. Reading which one you are looking at is the whole of this mechanic.

What felled themThe ring saysWhat it costs you
ThirstTendWater out of the rescuer's own waterskin
HungerTendFood out of the rescuer's own pack
SicknessTendHerbs out of the rescuer's own pack
ColdCarry to warmthA walk to a lit fire, a warm room — or a cave
HeatCarry to shadeA walk out of the sun — roof, room, canopy or cave
ExhaustionCarry to a bedA walk to a bed or a bedroll
Cold, heat and exhaustion cannot be tended at all
Nothing in a pack fixes them, so there is no Tend to click — the ring names the destination instead and the tooltip says why. Kneeling beside a frozen body achieves exactly nothing, and it costs you the one pair of hands that could have built the fire while the rescue window ran out. Send them with a stretcher, not with a canteen.

A cold body with an empty pack rings nothing at all — there is no verb left to offer. That is deliberate: with no ring in the way, the plain right-click just carries them, which is the right answer one click sooner.

Carrying

Carrying does NOT tend them
A companion felled by storm, hail or injury needs CAREtwo in-game hours of somebody kneeling beside them. Carrying banks none of it, and the twelve-hour window runs the whole way; the vigil starts over where you set them down. Carry is still the right verb for getting a body out of the weather or a corpse home — it is the wrong one for saving somebody who is running out of time where they lie.

A carrier walks at half pace and can do nothing else. That is what makes the distance to the fire a real decision rather than a formality — pick the nearest warmth, not the best one.

While somebody is on the shoulder, every right-click means „take them there and lay them down“. No ring eats the order: a bedroll, a workshop or a mate underfoot used to answer with its own menu of verbs and swallow the click, so „carry them to the fire“ was the one order you could not give at the one moment it mattered. Point and they go.

A threshold is crossed while carrying, never laid on. A cave mouth, the pyramid's door, a stair, the way back out — right-click one with a body in your arms and it means take them through, and they are still on the shoulder on the far side. The next right-click says where to set them down. It works in both directions, in and out.

The nearest cave mouth is a fire you do not have to build
A cave sits at 8 °C all year, because rock has no weather over it — and that is warmer than a frozen companion has to get to come round. If somebody goes down in the cold a long way from camp, look for a mouth before you look for firewood: no tinder, no kneeling, no soaked pit, and the walk is the whole of the work. In high summer the same doorway is the shade a heat casualty needs.

Work & trades — how each one resolves

Gathering, felling, mining, fishing and hunting are not one mechanic — they cost different time and need different things.

TradeHow it worksTimeNeeds
ForagingBerries, herbs, mushrooms, roots, eggs, mussels, nuts — right-click the node and order the harvest. The node depletes and (depending on its kind) regrows in place, respawns elsewhere, or is gone for the season. 2.7 s per unit (the base work clock)Nothing
FellingEvery forest cell is one tree with a finite wood stock (birch 4, pine 8, spruce 10, oak 14 — cut by 60 % in v0.23.0: the map looks exactly as it did and holds far less wood). Each strike banks progress on the cell — no strike is ever lost, and the canopy visibly thins. The whole stock comes down with the felling strike, which turns the cell to plains — and the chopper's pack is loaded first, up to the ordinary weight budget, with only the remainder left lying at the stump. That holds both ways of chopping: on a right-click order, and on a Lumberjack rule, so nobody stands beside a fallen oak with an empty pack. A fell can never overload anybody — an oak is still three packloads — and what stays at the stump is an ordinary ground stack: it ages, it is right-clicked to pick up, and a lumber-camp shift clears it before felling again. 5.4 s per strike; a tree needs 2 strikes per wood, so an oak is 70 strikes Nothing — but an axe makes it ×1.5 (a lumber camp unlocks the automation job, and mends the axe)
MiningWorked from a cell beside the rock face. Endless until redirected. 27 s per stone — 10× the ordinary work, deliberately A mason's yard unlocks the job
FishingA fisher's hut is a fishing right on the one body of water it adjoins — not a licence to fish anywhere. A fisher walks past a nearer pond to reach its own hut's lake. Want another water fished? Build a hut on it. Water has a bottom, and not every cast lands — see below. 27 s a cast — also 10×, and the same for anybody A fishing rod (cordage from plant fibre) and, for the job, a fisher's hut on that water
Fishing has a bottom, and a die
Every water holds a finite stock, and fishing runs it down: a lake carries 2 fish a cell up to 400, a river a quarter of a fish a cell up to 60, the sea the same rate up to 150. It breeds back day by day in every season, slowest when nearly empty, so a lake fished flat is a lake lost for a while. Measured: about half the lakes on a map can feed one fisher indefinitely, and no river can — a lake needs roughly 60 cells to carry one forever. A lake’s size is now something you judge when you pick a site. Hover a water tile and it says when the fishing there is thinning or fished out; fish traps draw on the same stock, so lining a shore with them shares one water out rather than multiplying it.
And not every cast lands. A beginner lands 45 % of casts on a full lake, a master 75 %, a little more in the rain and less in a worked-over water. Practice buys luck, not speed — a cast takes 27 seconds for anybody. This is the only die the game rolls.
HuntingTwo different things. By hand (H): a real aimed shot — the crosshair sways and you release when it settles, out to about 12 cells. The arrow drifts downwind, and the drift builds with distance: on a long shot in a blow you must aim off, and a practised hunter drifts less than a beginner. Automated: it rolls a shot every couple of seconds and gives up the chase after about eight — it cannot lead a shot at all, so a windy day simply costs it arrows. Without a bow, right-click the animal and order the hunt instead. Per shot, not per unit A bow in the pack for ranged work; a hunting lodge unlocks the job
HaulingEmptying the workshop yards into the stockpiles — its own job since 0.18, run from a rule and nowhere else. Where it will and will not walk is below. Walk-bound: one packload a trip, the clock is the distanceNothing — no workshop unlocks it, only the card
Drawing waterFill the waterskin at a shore or well. Water never travels loose — a skinful (3.0 L) is what one trip carries.2.7 s per litreDrinkable water in reach
BoilingStale water on a fire's pan slot becomes clean water. The whole load finishes together — never in tranches. The pan holds exactly one skinful, and those 3.0 litres — a full pan, which is exactly one skinful — take 36 in-game minutes on a campfire, a third of that on a stone hearth. Boiling is unattended: walking away mid-boil loses nothing. 1 h per skinful (campfire)A lit fire that cooks
FarmingNot a harvest but a year: sow the plot a cell at a time (1 seed a cell), keep it weeded while it grows, cut it inside its own season. The field decides which of the three is due; the worker just does it. 1.4–3.4 s a cell per step, by crop — the same on any ground A farm, seed in the pack or the stores, and the right season. Never winter.
Cooking a dishQueued at the kitchen, one click a dish. The kitchen posts the work itself; the cook fetches the ingredients from the stores. 12–20 s a dishA kitchen and the ingredients. No job and no card — only the Cooking skill, trained at the bench

Every trade trains its own skill by doing it, and the skill multiplies the pace back: +8% per level, so ×1.8 at level 10 — but a level is slow, and a companion who does nothing else reaches about level 6 in 150 days, so the pace you play with is the pace on this page. Nothing is picked at the start and nothing is taught — a companion only knows what it has done. Work driven by a rule still trains the skill (that is different from cards, which a rule never earns). On top of the skill sit the two attributes that never change: Dexterity multiplies every work clock in the table above, and Intelligence decides how fast the skill itself grows.

SkillGrown byWhat it buys
RunningWalking, anywhereWalking speed
StrengthThe heavy trades: felling, quarrying and building (they train it on top of their own skill)A bigger carry budget: +8% per level, 40 kg → 72 kg
ResilienceEnduring cold, rain and exhaustionFalls ill later
Lumberjacking · Fishing · Farming · Masonry · HuntingDoing that tradeThe trade's own pace
CookingStanding at the kitchen queue — it has no job of its own, like HerbalismDishes come off the bench faster. It never changes what comes out.
BuildingRaising anything — a wall, a hut, a bed. Commanded, on a rule or on a claimed task: all three countEvery construction site goes up faster. It still trains Strength as it always did — the skill is new, the muscle is not
HerbalismBoth ways the plant is handled: picking herbs, and giving a dosePicking is faster, and a dose lasts longer — 8 h at level 0, 12 h at level 10. It never makes a dose stronger
Weather-readingStanding the vigil (O), living through a sky, and being right about a callHow much a forecast may say — see Read the sky

A shift at a workshop — and a tree felled by hand

Felling one tree and working as a lumberjack are not the same job, and the difference decides whether the wood ever reaches your camp. Three contexts, and they behave differently on purpose:

How you askedWhat they do
By hand — a right-click on a treeThey shoulder an armful and do nothing else. The rest stays at the stump; nobody fetches it and nobody carries it off, even with an empty lumber camp yard a few steps away.
Working the lumber camp — right-click the building, or a Lumberjack rule A proper shift, in this order: clear every log lying about first (including the ones an earlier armful left behind), empty the pack into the camp's yard, and only then fell. Then fill, bring it in, and come back for the rest until the stump is bare.
The fisher at its hutThe same shift with two legs missing: fill, carry the catch to the hut's yard, empty it, fish on. There is nothing lying on the ground to tidy up and no half-caught fish to finish — those two legs are the lumberjack's alone.
  • They finish what they started. A shift picks the tree that is already furthest chopped, not the nearest one. A shift broken off by a night or an errand used to come back to whichever tree was closest, and the wood filled up with half-felled trunks nobody was ever going to finish.
  • A full pack within reach of the trade's own yard is a walk, not the end of the shift — they empty it and carry on.
  • Neither carries on to a stockpile. A shift ends at the yard; yard → stockpile is a haul, and a job of its own — see below.

The hauler — somebody to carry the yards in

Every workshop keeps a yard of its own produce — one you build and size yourself, 20 units a cell — and a yard with no room left stops the trade that fills it. The WORK: hauler rule makes emptying them a job: walk to a yard with something in it, fill the pack to its ordinary weight limit, carry it to a stockpile, come back.

  • No workshop unlocks it. There is no hauler's hut — the yards it empties are buildings you already had to raise. The card is the whole gate, and it is bought with ten stacks picked up off the ground by hand. As with every card, work done by a running rule earns nothing.
  • Its round is 30 tiles — and a painted zone manages it. Stand a hauler inside a zone (Z) and that zone becomes its round instead of the 30 tiles: smaller, larger, or any shape you like, and several overlapping zones count as one area. Stand it outside every zone and it is simply the 30 tiles all round. This is the first thing in the game that reads the zone layers at all.
  • A load already in the pack always goes home, zone or no zone. Nobody is left standing about holding goods because a stockpile sits one cell outside a painted line.
  • It takes from yards only and puts down in stockpiles only, so a hauler can never shelve its load in the next workshop it walks past — and a pile still only takes what its rules allow. Food keeps its age on the way, exactly as it does when you carry it yourself.

The healer’s hut — somebody can be sent to help

Until this build, a companion who went down waited for you to notice and to steer somebody over by hand, and nobody could give anybody else their medicine — a sick companion had to be dosed by your own click, one at a time. Raise a healer’s hut (14 wood + 4 stone + 2 cordage, 2×2) and that becomes a trade.

The hut is also the best bed in the settlement — it heals at 1.5× the rate of a good house bed, it is warm (18 °C of shelter), and that makes it the place a rescue carries somebody to.

What the healer actually does, in that order:

  • A body on the ground first, searched out to 65 cells — further than any other trade looks, deliberately. What happens next depends on why they went down: cold, heat, exhaustion → they are picked up and carried to a fire, to water, to a bed. Thirst, hunger, illness → the healer stocks their own pack from the stores first, walks over and tends until the bar is back to a third. Injury, hail, a storm → a two-hour vigil beside them. The rescue window is 12 hours either way.
  • An untreated sickness second, within the ordinary 45 cells: they hand over one herbs out of their own pack and dose the patient. That is the new thing — fever, dysentery and food poisoning can now be treated by somebody else.
You do not need the card, or even a healer
While a hut stands, every fallen body and every untreated fever is posted on the task board — so an ordinary companion running the one-block “Take a task” rule will go. The dedicated WORK: healer rule needs the Healer card, and that card is earned the hard way: 15 doses handed over by your own hand (a dose your own rule gave does not count). The hut is the switch; the card is the specialist.
It never makes anybody safe
Nobody looks after themselves. That has not changed and will not. A healer is a pair of hands that is then not chopping wood, they only start when somebody is already down or already ill, and somebody who goes down far from everyone still dies — 65 cells is a long way, and it is not the whole map. You are buying the attempt, never the outcome. And a healer in a healthy camp is a rule that simply declines, so the program falls through to real work.

Tools & clothing carried, not worn

Gear is the thing that survives a migration — an axe, and then five body slots to fill: head, chest, hands, legs, feet. Everything here is made at the crafting bench (K), and the whole warm half of it is made of animals.

Carrying it is wearing it
There is no equip gesture. A coat in the pack is a coat on the back and an axe in the pack is an axe in the hand — and a haul never shelves your gear onto a pile with the logs, because the game counts it as personal kit. Give a piece to someone else through the transfer window and the effect moves with it.
PieceCostsWhat it does
Axe2 wood + 2 stone — needs a lumber camp standing Chopping goes ×1.5. It multiplies with your Lumberjacking skill rather than replacing it, and it is dragged down by the same fatigue, wetness and illness as everything else — there is only ever one work speed.
Coat2 cordage + 10 plant fibre — no workshop needed +6 °C of insulation (chest).
Hat1 cordage + 4 plant fibre — no workshop needed +2 °C of insulation (head).
— the cloth kit, made of the ground —
Coat chest2 cordage + 10 plant fibre — no workshop needed +6 °C.
Hat head1 cordage + 4 plant fibre — no workshop needed +2 °C.
— the winter set, made of animals: everything below needs a hunting lodge
Fur coat chest4 pelt + 2 cordage +14 °C — more than twice the cloth coat, and the single biggest piece of warmth you can carry.
Fur hat head2 pelt + 1 cordage+3 °C.
Fur mittens hands3 small pelt + 1 cordage+2 °C — three hares or squirrels, which is what makes the small game worth a shot.
Leather trousers legs3 leather + 2 cordage +2 °C and 25 % of the wind stopped. Leather is the shell, not the padding.
Leather boots feet2 leather + 2 small pelt + 1 cordage +2 °C and 15 % of the wind.
Handcartplanks + cordage, and a long build Carries +90 kg for 10 kg of its own weight — net, most of a second pair of legs. It is the difference between abandoning a settlement's stores and taking them with you, so build one before you plan to move, not the morning you leave.

Clothing insulates — it does not heat

Worn warmth is added to the temperature you feel, but only up to 20 °C: it can lift a freezing companion toward comfort and can never push a warm one past it. So a coat is never a liability you cannot shed — it does nothing at all in a summer desert, and a roaring fire still beats it. Only the warmest piece per body slot counts, so carrying a spare coat doubles the weight and nothing else.

Cloth coat and hat is +8 °C, roughly the difference between a clear autumn night and a survivable one. The full winter set is +23 °C — and that is what the tundra costs, because every piece of it comes off an animal you had to shoot first.

Fur is padding. Leather is the shell — and they fight different things
Wind chill is taken off the temperature before your warmth is added back, so the two materials work in opposite directions. Fur raises the number you end on; leather stops it falling so far in the first place. Trousers and boots together block 40 % of the wind (the cap is 45 %), and on a gale that is the difference between losing 16.4 off the warmth gauge in fur alone and 9.8 in the shell. On a still winter day the leather is nearly dead weight; in a blow it is the half of the set that matters. Neither is optional in the north — that is why it is a set.

An axe wears out, and is mended where it was made

Chopping wears the axe down — deterministically, never on a dice roll: it lasts 400 seconds of real chopping, which is about nine in-game hours of it, a full working day at the trees. The sheet's carry slot shows the condition as a percentage that runs greenred, and the break itself posts one line to the event log. A broken axe simply stops helping — you chop by hand at the ordinary speed until it is mended; nothing is lost and nothing is destroyed.

To repair it: right-click the lumber camp with the worn axe in the pack. The companion walks over, pays 1 wood — out of its own pack, or fetched from the stores like a builder's materials — and the axe is full again. Repairing is deliberately far cheaper than crafting a replacement: that is the reward for keeping the workshop standing.

Wear follows the companion, not the axe. Hand a worn axe to a mate and it is fresh in their hands; take it back and your own wear resumes. So a shared axe is not a shared supply line — don't plan one around it.

The bow and the fishing rod are still pure gates rather than gear: carrying one is what lets you shoot or fish at all, but neither speeds anything up or wears out yet.

Torches & the lantern L

Underground there is no dim — there is light, or there is nothing — and every flame you carry is a clock running down while you walk.

LightBurnsReachesWhere it comes from
Torch4 in-game hours3 real minutes of play7 cells Made at the bench (K). The pyramid's entrance hall stocks a rack of 4 — take all of them
Lantern16 in-game hours12 real minutes11 cells Loot, and only loot: one in the whole world, at the bottom of the pyramid. Nothing crafts another
CampfireAs long as somebody feeds it9 cells Built where you stand — and it is the first light down there nobody has to hold
Stone hearthAs long as somebody feeds it13 cells The same, further — the widest light in the game, and the only one that beats the lantern

Do the sum in real minutes, because that is what you spend. The day is 18 real minutes long, so an in-game hour is 45 s of play. Half a torch gets you in and the other half gets you back out — and a torch lit at the base fire is already half gone by the time it reaches the cave mouth.

Putting a torch out keeps what is left in it. Snuff it and the head holds its remaining burn; light it again and it resumes from there. So snuff it the moment you step into daylight — that is how a three-minute torch lasts a whole trip, and it is the one piece of husbandry the mechanic actually rewards.

A flame is a flame. A torch lights at a burning fire, or at a companion's burning light standing beside you — nothing else. One bearer carries the flame in and everyone else takes it off them; lending costs the lender their own burn, since the light they hold is the one going down while it happens. Underground that is the whole decision: where there is no flame, there is no lighting.

L lights or douses the whole selection — the default binding, rebindable under Companions in the keybindings page. A key rather than a ring entry, because a four-companion expedition cannot be asked to open the fire window four times. Anyone who cannot light says so, and the refusals are collected into one line instead of four. Press it again and every flame in the selection goes out.

A torch is struck in the HAND — take it first
Lighting no longer picks the torch up for you. Take it in hand — double-click it in the carry grid, or drag it onto the Hand tile — and then press L. The fire window’s button says “take it in hand first” until you have. The hand is the torch’s whole price: the bearer cannot draw a bow or work a fishing rod while they carry the light, and that trade is the point. Your automation is unaffected — the Light a torch rule takes it in hand itself, and a spare that catches from a dying stub lands in the hand too.

The game offers the key when the offer stands. A companion holding an unlit torch and standing at a flame gets [L] Light Torch printed beside them in the world — once, however many are selected, only while the key would really light rather than douse, and naming whatever key is actually bound. It is the only key hint the game draws in the world, and deliberately not a tutorial: it matters in exactly one situation.

Striking a light takes 2 s and draws the same work ring as any other job. It is not an errand — nobody walks anywhere — but a new order interrupts it, and the flame is re-checked at the finish, so a fire that dies mid-strike fails where you can watch it happen.

A lit torch starts a fire, and pays no tinder. Tip it into a laid pit and no twigs are needed at all — no walk to the stockpile for kindling. Only the tinder is waived: the kneeling work runs in full, the weather still stretches it, a soaked pit still refuses, and your torch burns down through every second of it. The price moved from the pack to the flame you are spending, which is the answer to a cold camp reached at dusk with nothing to light it with.

A fire you build underground gives light

Build a camp where you mean to come back to, and that chamber stays open while it burns. A campfire reaches about 9 cells and a stone hearth 13 — more than a torch, more than the lantern — and neither of them occupies a pair of hands. The pyramid's five storeys share one map, so a fire two floors down is visible from the stairs, and a lit camp at the bottom of a shaft turns the walk home into something you can see rather than something you count.

Embers shrink, they do not switch off
A fire nobody feeds pulls the walls in before it dies — dimmer, and down to about a third of its reach. That closing-in is the warning, and it is the only one you get; a cold pit gives nothing back at all. Watch for the room getting smaller.

It does not soften the bargain the dark is built on. A fire costs twigs, tinder and wood carried down on somebody's back, a campfire eats a full load in minutes, and nothing relights itself. It is a camp you decide to make, never a switch that stays on — and with no fire and no flame the way out is still the daylight in the mouth and dead reckoning.

Spares, and the trap in them

The light does not end with the first torch. When a head burns out the bearer lights the next one out of their own pack off the dying stub, by itself, and the log says how many are left. Ten torches are about 30 real minutes of walking light, not three.

An unlit pack is still pitch dark
A stack does not burn because it exists. The first flame still has to come from a fire or from a companion, so a party that walks into a cave holding ten unlit torches is holding ten sticks. L still ends the whole thing at a stroke — and once the last head is out, the way back is dead reckoning and the daylight at the mouth.

A lit torch is held in the hand

Hands are a resource. Striking a light puts it in that companion's hand, and while it burns the bow and the fishing rod cannot be used at all and the axe gives no bonus — all three want both hands. Whoever carries the light is not the one who shoots, which turns a torch from a piece of kit into a role in the party. The character sheet grows a Hand tile so the cost is visible rather than merely felt; press L and the hands come free.

Reading how much is left

The clock is visible in three places. The lit status badge on the companion card counts the real minutes down (green, turning amber past 40 % left); the flame drawn on the figure itself gutters smaller and redder as the head goes; and the burning torch shows what is left of it as a percent in the carry grid, in the same corner food shows freshness. Every readout in the game speaks in real minutes.

Telling them to do it themselves

Two cards put light into a rule program, both earned by handling fire like the rest of the fire family. WHEN In the dark is true while that companion stands in the pitch dark with nothing of their own burning — night on the open surface deliberately does not count, or a party of eight would burn a torch each every night for light they mostly do not need. DO Light a torch takes a torch from the pack into the hand and holds it into a flame already in reach, and never walks to one: a rule that could send somebody across the settlement for a flame would march a party that had just entered a cave straight back out of it. Written together, WHEN In the dark → DO Light a torch does the right thing at the mouth of a cave, where the fire is.

Moving goods — the one hand

There is exactly one hand in the game, and every window fills it the same way.

Pick a stack up in the character sheet's carry grid, in the transfer window, or straight off a stockpile tile on the map (Shift+right-click it — reach is what decides: standing on the pile or right beside that tile the stack comes into your hand, from any further off the same click is a queued order to walk over and open the exchange there. The same is true of a workshop's yard) — it is always the same hand, so a stack can only ever be in one place. Closing a window keeps the stack in hand, which is exactly how it gets out onto the map: carry it to a construction site, a fire's hearth, a pile or a companion and left-click it down. Esc on a clear screen puts it back where it came from.

Taking reaches exactly as far as putting down: the tile beside you, or any tile of a stockpile you are standing in. Two cells away the goods are out of reach and the refusal names the gesture that walks somebody over — what you can drop onto, you can always lift back off.

Something in hand is carried where you point. Left-click any receiver that makes sense — a construction site, a stockpile, a workshop's yard, a fire, another companion — and the carrier walks over and puts the stack down there, doing exactly what the click would have done had you been standing next to it. Only the walk is done for you.

Your hand is empty the moment you click, not when they arrive. The load is handed to the order, so you are free to pick something else up, open another window and keep working while the walk happens — sending a sack of wood across camp no longer costs you your hand for the whole trip. The arrival puts down the whole load, not one portion: the click already committed the stack, so there is no second click waiting to place the rest.

Nothing is ever lost on the way. Every way an errand can end — you gave a new order, the receiver refused it on arrival, the target is gone, the carrier died — puts the load back in the inventory it came out of, or the vessel it was poured from; failing both it lies on the ground at the carrier's feet. Note that Esc no longer calls the errand off, because there is nothing in your hand for it to put down — a new order is what calls an errand off.

Open ground still refuses at arm's length, and that is deliberate: a misclick on empty grass can never send somebody across the map. And a refusal lands at the click, not twenty cells later„this site doesn't need stone“, „the fisher's hut won't take wood“.

A fire is still the richest of these: on arrival the fire exchange window opens with your stack still in hand, so one click on a slot puts it in, and it opens wherever you happen to be looking, even if you deselected that companion while it walked.

GestureIn the character sheetIn the transfer window
Right-click a slotTake that batch in handTake that batch (or that pile tile's stack) in hand
Shift+right-clickAsk how many to take in handAsk how many to move to the other side
Double-clickEat one unitMove one unit across
Double-click the tool slotDrink from the waterskin until thirst is fullPour one litre of the skin into the vessel on the other side (Shift: everything in it, down to the last tenth)
Shift+double-clickTake the whole stack in hand — every age batch of that kind, not just the clicked slotMove the whole stack across
Left-click while holdingPut it down, or swap with the clicked batchPut it down on that side
Click outside the windowDrop it on the ground at the companion's feet — anybody can right-click it back up. A drink is poured out instead: a liquid does not lie in a heap.
Water only ever exists in a vessel
A waterskin, a barrel, a fire's pan — nowhere else. A pack cannot hold a drop, so a skinful is what one trip carries: filling a barrel means walking back and forth, and a settlement that fetches its water from far away is one you built in the wrong place. Boiled water therefore always comes back into the skin; what it cannot hold waits in the pan, where it keeps indefinitely. To fill a barrel, order a deposit onto it and the whole skin goes in (an automatic haul pours in too, but keeps the carrier 2 litres for the road). Right-click the sheet's tool slot to lift the whole skin into your hand — every litre down to the last tenth (2.7 L, not just 2) — click it again with water held (either button, like any inventory slot) to pour it back — or double-click it to drink until thirst is full.
A part litre is never stranded
Your hand, a skin, a barrel and a fire's pan all measure water as a volume, so the last 0.6 L pours across like any other water — a right-click grabs the whole skin, fraction and all. The waterskin slot in the exchange window is where you do it: double-click pours one litre into the vessel opposite, Shift+double-click everything in the skin. Both companions show their skin there, so water can be handed over in the field — and half a pot of pond water boils on a pan exactly like a full one, in half the time.

Tell each stockpile what it accepts

Every pile has its own acceptance rules, set from its panel: the presets Everything, Food only, Materials and Nothing, or a tick per item kind. This is how you sort a settlement — food at the fire, wood at the building site, ore at the mason's yard.

  • A hauler only walks to a pile that accepts what it is carrying. If no pile in range does, the load has nowhere to go and you get a red alert.
  • Rules never touch what already lies there, and never block taking things out. Setting a pile to Nothing is therefore how you drain one: it keeps serving, stops receiving.

A pile set too narrowly is one of the quieter ways to stall the whole automation, and the panel is the only place it shows.

Every workshop keeps its own yard

A "job building" means one exact thing: a building somebody works at. There are five — the fisher's hut, the lumber camp, the farm, the mason's yard and the hunting lodge — and they are the five that offer the Work here verb, unlock a trade for the rules, keep a yard, and can be given a work zone. The drying rack and the smokehouse are not among them: they cure by themselves, hand-fed or out of the stores, and nobody stands at them. They keep everything else — the smokehouse is still the bench that makes charcoal, both still open their store window, both still sit in the Workshops ring. A campfire and a stockpile are used rather than worked at, and the planning table lends its blocks with nobody standing at it.

A yard is a BUILDING now — you drag it out yourself
A workshop no longer comes with storage. Build its yard from the Workshops ring, dragged to whatever size you want, and it must lie within 4 cells of the building it serves. Every cell holds 20 units: a 1×1 yard is the 20 a workshop used to get free, a 3×3 is 180. Right-click or left-click it to open it like any pile. Until a yard stands, the trade fills the worker’s own pack and the shift ends when the pack is full — which is exactly what a workshop with nowhere to put its produce should feel like. (Loading a save from before this drops whatever a workshop’s old store held on the ground beside it; nothing is lost.)

A yard holds that trade's produce and nothing else (fish at the hut, logs and boards at the camp, stone and cut stone at the yard, vegetables at the farm, meat at the lodge).

  • Produce lands there only while the worker is standing at the building. Work a tree forty tiles into the woods and it fills the pack exactly as it always did — nothing teleports home, which is a quiet argument for siting the camp where the work is.
  • The goods count towards the settlement's stores: edible, spendable, haulable, and standing at the workshop counts as standing at the stores.
  • But haulers never dump anything there — it is an out-tray, not a shelf, and it accepts nothing but its own trade's produce.
  • One tile, one kind: twenty logs leave no room for boards until somebody clears them. With no free tile left, an incoming load does not vanish and does not block the trade — it folds onto the batch of its own kind, and the heap takes the average age, weighted by how much of each is in it. One fresh fish dropped on a nearly-spent pile barely moves it; a big fresh load moves it a lot. The guarantee that matters is kept: goods arriving older than the heap keep their own date, so nothing is ever laundered into keeping longer. It is why a one-tile yard no longer jams at a single fish — and why a day's catch is no longer written off because one old fish was lying in the tray.
  • When the yard fills — or the worker's own pack does — the shift ends and the event log says which of the two ran out, because clearing a yard and bringing a load in are different jobs. That is the normal end of a shift, not a fault. A farm ordered out of season says so too, rather than standing there mute.

Getting the produce out — on the map. A yard stands where the work is, which is usually nowhere near you, so it answers the same two gestures a stockpile has always answered: Shift+right-click the building takes the stack lying in its yard straight into the hand, and right-click it with one companion selected offers Take produce on the context ring — that walks the companion over and opens the exchange window on the yard. The ring only appears when something is actually lying there, and a plain right-click still means work the trade.

Or from the building's own panel. Left-click the workshop and press Open the yard: the store opens beside the pack of the companion standing at it, in the same two-column window a stockpile uses — click a row to move the whole stack, Shift+click for a single unit. Where a pile shows its editable storage rules, a yard shows the trade's fixed fence instead: it is not yours to loosen. Putting goods back in is allowed as long as they are that trade's produce — the yard does not judge whether shelving them there is clever, and they age and spoil in it like anywhere else, so a yard used as a larder is a yard that will block the work.

Or let the settlement clear it. Two rules do that, and either is enough: the hauler trade, which does nothing else all day, or Take a task — a workshop whose yard is over three quarters full calls for it to be cleared, and a taker carries the produce to a stockpile, load by load, until the yard is empty. While a yard is full, nobody takes that trade on at all: there would be nowhere to put what they made. This is the usual bargain — by hand it always works, unattended it has to be earned.

“Full” is the worse of two things: how much the yard holds, and how much room is left in it. A yard with one crowded tile and nothing else free is full even though it holds almost nothing — which is the honest answer, because that is exactly when the work stops. The yard fill sensor in a rule reads the same number, so it hits 100 % precisely when production would block.

A fire is three states, not a fuel bar

A heat source is Burning, on Embers, or Cold, and the difference decides whether it can save somebody. Fuel is not the flame: wood thrown onto a cold pit just lies there.

StateWhat it doesWhat it needs
BurningWarms, cooks, boils, dries. Burns its fuel down.Fuel. Feed it before it runs out.
EmbersStill warm, and still alive: fuel laid on catches by itself, no work needed. Lasts about 2 in-game hours on a campfire, 6 on a stone hearth.Anything burnable, in time.
ColdNothing. A cold pit is a hole with wood in it.A light: a flint in the pack, 2 twigs of tinder and 7 s of real work from a companion — longer in bad weather.

Every fire sits in a closed ring of stones, and the ring tells you which fire it is. A campfire’s was gathered — round field stones of every size shoved against each other, closed but plainly not laid. A stone hearth’s was built — dressed rectangular blocks with a darker mortar joint between them. It costs nothing and changes nothing: it is there so that a glance at the map answers “is that the fire that lasts the night?” without opening anything. Both views agree, the top-down one on the map and the portrait at the top of the fire window.

No flint, no spark
A cold fire cannot be lit at all without a flint in the pack — not slower, not at all — and it has to be in that companion's own pack; the stores do not count. Everyone starts with exactly one, and striking it never uses it up, so a single nodule lights a thousand fires. The catch is that it is also the arrowhead: four arrows are knapped from 1 flint, 2 feathers and a shaft at the bench, and a flint spent on arrows is a flint that no longer lights anything. A hearth and a quiver compete for the same stone. It lies in the shingle on the sea shore — the dry beach at the tideline, never an inland dune or a river bank — and in cave walls, which is nowhere near where you will want to settle. A lit torch is its own spark and needs neither flint nor tinder; striking a torch off a flint instead works, at the time.
A campfire cannot outlast a night
A full campfire burns about 7 hours; a night is 12. Left alone it drops to embers and then goes cold, and relighting costs tinder and time you will not have at 04:00 — so load it at dusk, and if the night is a cold one leave somebody sitting up with it (the standing order for that is console-only for now, and the fire's window no longer does the sum for you). Twigs are kindling, not fuel: one twig buys about 8 s on a campfire (24 on a hearth) against a log's 80 — roughly 10 twigs to the log. Burn them to start a fire, not to keep one.
The weather fights the fire
An exposed fire burns its fuel up to twice as fast in wind and rain, and its warmth circle pulls in — the centre still warms, the edge stops. Rain and snow also soak the pit: past a point it will not take a light at all, and a burning fire caught in it is put out cold, embers and all — and how hard it is falling decides how fast — a storm puts out every fire the weather can reach. A roof answers the sky (a room, a house, a cave), and a stone hearth carries some shelter of its own. Site your fire indoors before the winter, not during it.
A wall answers the wind — but only on the windward side
The wind is a separate fight from the rain, and a roof is not the answer to it. What shelters a fire from the wind is a wall on the cell the wind is coming from: that break makes the fire burn slower and hold a wider warmth circle. The same wall built on the downwind side buys nothing at all. The fire's own burn time already counts it, so a fire behind a break really does last longer than the same fuel out in the open — and on a dry, blowing night a single windward wall is the cheapest thing you can build.

The fire window — one window, two ways in

Left-click a fire, or right-click it with one companion selected: you get the same window. The left-click reads it from anywhere on the map and draws its circles; the right-click walks a companion over first and hands you their pack and waterskin beside it, so goods can actually change hands. Everything else — the picture, the words, the slots, the sizes — is identical, because it is one fire.

The fire is drawn at the top, live, in the state it is actually in. Read the picture before the words: flames mean it is burning and their height is how much fuel is left; glowing coals with no flame are embers, which still catch a log by themselves and cost no tinder; grey wood in a grey pit is laid and unlit; a blue sheen on that wood means the pit is too wet to take a light at all; and a bare ash heap is a dead fire with nothing in it. Embers and a dead pit used to look alike at a glance and they are not alike at all.

Under it the window says two words and a number, and nothing else: Burning / Embers / Laid, unlit / Cold, and then how much longer it burns, drawn large and coloured — the flame's amber while it is comfortable, yellow under a quarter of a load, red under a tenth. That is the one number you stand at a fire to read, so it is the one thing drawn big. Everything the window used to spell out — what tops it up, how many twigs make a log, why the pan is not moving — is in the tooltip of the thing it is about. Hover the bar for the fuel arithmetic, hover a slot for what it takes.

Then the hearth: Fuel on its own row with Pan and Ready under it, drawn half again the size of a pack slot — this window is worked at a distance, not squinted at. The pan's own caption carries its progress ("Pan · 40% · 12 min", or fire out when nothing is burning). On a cold pit a Light it button sits above them; on a soaked one it refuses in place and says why.

Nothing is loaded for you. You drop things in yourself — one click, and you decide how much. Carrying nothing that fits, the companion still walks over and the window says so in red, because "I have nothing to burn" is exactly what you went there to find out. Everything moves by the same gestures as the transfer window. A fire is worked from right beside it: an order sends the companion all the way onto the pit's own cell, not merely into its warmth. Boiled water taken off the Ready slot goes into the waterskin, never into the pack.

Drop something on a fire and it does the obvious thing
With a stack in hand, a left-click on a fire sorts itself by kind: wood and twigs feed the flame, a raw catch lands on the pan, a skinful of untreated water pours in whole and opens the window on it. And fuel dropped on a fire that has gone out also lights it — the companion kneels and strikes it, paying the usual tinder and work. If what you dropped was twigs, the price comes out of that same handful, so it works with an empty pack. Until 0.17 the wood went into the dark pit and nothing happened.
SlotWhat goes inThe limit that catches people out
FuelThe wood actually in the fire. Twigs go in too, but as kindling — about a tenth of a logA campfire holds 4 logs and not one more — you cannot bank a night's fuel in it. Fuel laid on embers catches by itself; fuel laid on a cold pit does nothing until somebody lights it
PanWater to boil, or food to cookOne kind at a time. A pan boiling water cannot sear a fish — if you queue supper on it, your drinking water is not coming
ReadyWhat came off the panRight-click takes a cooking slot back out

Build — press Space Space

A construction site (Grundriss)
Committing a ghost lays a blue Grundriss. Builders physically fetch the materials, deliver them, then raise it from beside the footprint. Materials never gate the ghost — an amber ghost just waits for deliveries.

You start with nothing. Space opens the build ring (radial menu): a ring of categories — Workshops, Structure, Supply, Demolish. Left-click one and the categories step aside: the ring now holds that category's entries and nothing else. Hovering any entry spells it out in the info panel below the circle, cost per material included (green = affordable now, red = not). Place it, and the blueprint goes down and waits: staking a plan is not an order, and nobody walks over to it. R rotates the ghost before placing — and it now turns every fixed-size piece (42 catalog entries, where 9 used to turn), so a bed can be laid head north, east, south or west. Painted pieces (wall, door, floor, road) and drag-sized ones still do not turn. Indoors, Q offers “against the wall”: it slides the piece flush to every wall it touches, corners included. It is purely cosmetic — footprint, cost and reach are identical — and the cupboard and the bench come out of the menu already hugging. A right-click while a ghost is up puts the ghost away and gives that order in the same click — so the blueprint you have just laid down can be ordered built immediately, with no Esc in between.

You may stake a plot over a bush — and clearing it is forever
A blueprint goes down over a tree, a stone, a berry bush or a dropped stack; the obstructed squares stay red, materials are still delivered, and nothing is raised until they are clear. An obstructed plot does not hold up the rest of the build queue. Right-click a thing standing on a staked plot and it means CLEAR, not harvest: the whole remaining stock plus the seed comes off in one pull and the node is gone. A berry bush, wild roots, wild grain, reeds or hemp cleared this way never grows back anywhere on the map — so siting a house on the best berry patch is a real decision, and one you cannot take back. (A tree is the exception: felling one turns the cell to grass you can build on, which is the normal way to make room.)

The centre always goes back one ring, and closes the menu on the top level — the same thing right-click and Esc do, so there is one rule for the way out. Space closes it from any depth. Only one ring is ever drawn, and inside an open category the back button grows to fill the whole middle — a target you cannot miss, carrying that category's icon and name above ◀ Back, which is now what tells you where you are. The entries keep exactly the band they always sat in, so every label stays the size it was; only the middle changes. Greyed entries come in two kinds that must not be confused — a padlock is a player goal (the workshop that unlocks it does not stand yet), a dashed outline is a planned placeholder that does not exist in the game yet.

The cell raster appears when you need it. At rest the grid over the world is barely there — the island is meant to look like land, not graph paper, and there is no minimap to consult either. The moment you place anything — a building, a wall run, a room, a floor, furniture, a road, or the demolish tool — it snaps to full strength, because that is the moment knowing where one cell ends is information rather than clutter.

There is no ready-made house. Every house is designed out of walls, doors and floors, and is whatever shape you enclose. Job buildings stay simply placed and the farm stays drag-to-size — a workshop is equipment, not architecture; only the home is the player's design.

Every building is drawn as the thing it is, so a settlement can be read from across the map without hovering anything: the lumber camp is a lean-to over stacked logs with a sawbuck beside it, the fisher's hut hangs its catch on a drying rack, the mason's yard is an open working yard of dressed stone, the hunting lodge pegs a hide out on its frame, the smokehouse vents its two plumes, and the planning table carries the settlement plan. The storage box and the water barrel used to be told apart by tint alone; they no longer are.

Where you build decides what gets used

Every supply building has an action area, and outside it the building does not exist as far as automatic work is concerned:

  • Campfire — 20 cells (its warmth reaches far less: 3.5)
  • Well — 20 cells
  • Stockpiles — 30 cells

A rule or a task that needs a fire, a well or the stores and finds none in range does not walk further — it stops and posts a red alert. That is the classic death: a companion starving beside a full larder, because the larder was 40 cells away. Your own right-click orders ignore the radius entirely and will walk any distance, which is exactly why the problem stays invisible until you automate.

So: build where the work is, and give an outpost its own stockpile zone — zones are free.

And the stores belong to a settlement, not to the world. Buildings that stand within 45 tiles of one another count as one settlement, chained along — two camps a hundred cells apart are two settlements with two larders. Everything a companion asks about the stores is answered by the settlement it is standing in: what it may eat, what a builder may fetch, what FETCH withdraws, and what WHEN stores < N reads. Out in the wilderness the nearest settlement answers. This is what makes moving on possible at all: without it, the fish left behind in the camp you abandoned would keep the new camp's larder looking full, and nobody would ever fish again.

One gesture is one order — and nobody builds what you did not ask for

Staking a blueprint is not an order — nobody moves. Committing a ghost lays the plan down and leaves it standing there, however many companions you had selected when you placed it. Right-click the site with them selected to put them on it; that click is the only thing that starts a build by hand. (The right-click straight out of the ghost does both in one gesture, which is why laying a plan and ordering it built still costs you two clicks and no Esc.)

A build order belongs to the commit that laid it. A wall run, a painted floor area and a stamped floorplan all stake many sites at once, and a single command still raises the whole thing — including a wall drawn leg by leg, corner after corner, until you end the chain. The distance between the pieces does not matter, so a wall with a gap in it goes up in one go.

  • A blueprint from another order is left alone, however close it lies. Builders used to hand themselves on to the nearest site within eight cells once their own was finished — any site, from any order, staked by anybody. That is over: to send a second pair of hands at a particular job, right-click that site, and they join that order rather than raising one segment of it.
  • Building on its own is still there — it is earned. A BUILD rule (T) and a claimed task both look for work across the whole settlement, exactly as before. What ended is building as a habit.

Automation builds in the order you staked things out — first placed, first built. A companion on a BUILD rule or a claimed task takes the oldest site on the map, not the nearest. That is what makes the queue a queue: previously a builder latched onto whatever blueprint was closest and could stand there blocked because nothing in reach could pay for it, while a site two cells further out waited — and every companion on the same rule converged on the same tile. So stake things in the order you want them.

It steps over exactly two kinds of site, and both are skips rather than demotions — a stepped-over site keeps its place and is taken the moment the reason goes away:

  • a tile somebody is already standing on;
  • a site nothing in reach can pay for. With wood but no stone, the house you drew second goes up while the road you drew first waits for its stone.

Your own right-click is untouched. An order is still an order: it works its own commit through to the end and is never skipped by anything. It only stakes a claim on the tile, so automation steps around a hand already at work.

Materials come from the nearest store to the site. A builder delivers what is in its own pack first; for the rest it walks to whichever store lies closer to the siteyard or stockpile, with no preference for either kind. A mason's yard full of cut stone right beside the wall is the wall's supply, instead of counting as "we have it" while the builder trudged to a stockpile across the camp. It also stops a builder loading up at the pile it happens to be standing on when a nearer store sits by the site: the walk with a load on your back is the one worth shortening. All three ways a site gets built — your order, a BUILD rule, a claimed task — shop the same way.

And when an order is dropped for want of materials, it says which of the two problems it is: there are none anywhere, or they lie out of the site's reach and the site wants a stockpile near it. The second is a siting mistake, and it is the one you can fix.

And a site nobody can walk to is dropped, not ground against. Every build walk aims at a cell a companion can actually stand on; when no such cell can be reached, the order ends with can't reach the build site in the log instead of a builder shuffling against the wall between them until a watchdog cancels it. The usual cause is a piece staked inside a sealed room — finish the door before you furnish it.

BuildingWhat it doesNote
CampfireWarmth + hearth (fuel / cook)3 twigs or 3 wood to raise (see below) — three twig nodes, stooped for; action area 20; warmth radius 3.5, and it pulls in in bad weather. Raising it does not light it
WellDrink, refill skins, cool offThe only drink source workers use on their own — keeps flowing when water freezes; action area 20
Bed / Stone hearthFurnitureNot in the build ring at all — placed from the room panel
Straw bed / BedrollFurniture that also campsThe two pieces in both lists: the room panel and the Supply ring, so either can be thrown down beside the campfire before any room exists (secondary_category)
Wall / DoorEnclose a warm room — the roof is a separate piece1 wood a cell, 2 wood for the door, both raw: a room needs no workshop at all. Walls are drawn as straight chained runs; the door is walkable and still seals the room. A Stone Wall (2 cut stone) is the better tier — see upgrading
BridgeThe only way across a riverDrag the deck bank to bank in one drag — the builders work it from the bank and never step onto it. A wide river is fine; you can also carry a half-finished crossing on by starting the next drag on the last plank, and the standing deck is left out of the new span. Both banks must be explored: a span onto black ground is refused, and the ghost paints unexplored cells red like blocked ones. Anything it will not lay says so and names the cell
Wooden FloorRaises Mood inside a room1 plank per cell, and nothing else will do — build a lumber camp first; ground, not furniture, so beds/fires stand on it
RoadWalk ~35% faster along itGround like a floor; 1 cut stone or 1 rough stone per tile — the price, not the speed, is what keeps siting honest
Stockpile zone / Storage boxCity stores (1 type/tile)Zone is free; drag out on open ground. Action area 30, and each pile takes only what its rules allow. How much a tile holds is now the building's own number: reed basket 8 (10 reeds, no workshop — the store the first evening can afford), storage box 20 (cut stone + planks), cupboard 40 (8 planks, 1×2, and the only store that must stand inside a room), workshop yard 20 a cell
Fish trapCatches while nobody is there12 reeds + 1 cordage, laid touching water. A fish every 8 in-game hours, holds 3, and stops dead when full so nothing in it ever rots. It never brings anything home — walk out and take the catch. Nothing can be put in it
Compost heapTurns waste into fertilizer4 wood. 3 units of waste → 1 fertilizer, rain or shine, fed by hand
Water barrelStores water (20 litres, clean or stale)Winter/drought reserve; DRAW + HAUL fill it; serves the clean water first. Under the open sky it fills itself in the rain; under a roof or in a cave it catches nothing, which is what makes where you stand it a decision
Drying rackCures fresh food → preserved, in the open air — only what lies on it6 wood + 2 cordage — the cheap, early answer to winter, and it doubles as a stockpile (action area 20). It never reaches into the larder: load it yourself (left-click it), send a companion with a delivery, or let a haul rule fill it. A full rack stops and waits to be cleared, and its panel says which of the two it is doing. 1.6 units an hour at the listed pace, but the sky owns it: a clear day beats that pace, an overcast one crawls, and rain stops it dead (it keeps whatever it has already cured). A bet on the weather — the first thing a sky-reader is worth money for
SmokehouseCures fresh food → preserved, under its own roof — out of your stockpilesThe rack's opposite number twice over: 3 units an hour, completely deaf to the weather, and it feeds itself from the settlement's stores with nobody near it, always taking whatever is closest to turning. That is two reasons it costs 4 stone on top of its 8 wood. Doubles as a stockpile
Lumber camp / Fisher's hut / Mason's yard / Hunting lodgeWorkshopsEach unlocks its trade for the rules (fishing and hunting also need the rod / bow in the pack). The lumber camp, mason's yard and smokehouse also carry a craft queue — see below
FarmVegetables (Farmer tends it)Dormant in winter
Planning table+6 rule blocks (that is its whole gift — a program can no longer be copied from one companion to another)It no longer opens anything — left-clicking it raises no board

The workshop craft queue

A workshop used to be a token: it unlocked a trade and posted a task, and nobody ever stood at it. Since 19.1 the lumber camp, mason's yard and smokehouse carry a craft queue — left-click one and tell it what to make.

Two ways to work it, and that is the phase split
Right-click the workshop and the selection goes and works the queue by hand — the phase-1 way, no automation required. Or let a Take a task rule claim the order the bench calls for, and the settlement fills it while you do something else. Crafting used to be identical early and late; now it is the same split as the rest of the game.

Every workshop shows itself, moving, at the top of its window — and the picture is a readout, not decoration. It is the same yard you see standing in the settlement, in one of three states: idle (nothing ordered, nothing curing, an empty yard — a still picture), ready (there is work here — an order on the queue, produce in the yard, food on the rack — but nobody has moved it: the tool lies ready and the picture only breathes) and working (the saw saws, the mallet strikes, the plume rolls). Ready is the one worth reading: it answers "is this bench stalled?" without counting queue rows. The portrait hangs in both windows a workshop can open — the bench-and-yard panel, and the pile-style window a smokehouse or drying rack raises.

The crafter fetches the inputs itself, and it shops in one order: the workshop's own yard first, then its pack, then the settlement's stores. Logs lying in the lumber camp's yard become planks on the spot — nobody walks across the camp for wood past the wood, and nobody carries the difference home again. A cost the yard can only half pay drains it and takes the rest off the pack; only when the two together come up short is there a trip to the stores. It then works at the bench and pockets the output. Progress belongs to the order, not to the worker: two companions at one bench stack their effort, and someone called away mid-craft loses the seconds banked and never the materials. Carried kits — the axe, bow, rod, bedroll, cordage, coat and hat — are not made here: they are made in the hands, at the crafting bench (K).

RecipeMade atCostsWhat it buys
PlanksLumber camp2 wood → 3 planksDoors, beds and boxes for a third less wood, and lighter to haul. Wooden floors take nothing else — and walls take no planks at all
Cut stoneMason's yard2 stone → 3 cut stoneRoads, wells and the stone hearth for a third less stone — what makes a long road affordable
CharcoalSmokehouse4 wood → 2 charcoalBurns as long as its log at a third of the weight — the fuel a trek carries
A lumber camp's craft queue
Left-click a workshop: what it is making, the standing orders (with an x to drop one), and everything this bench can make, priced against what the settlement holds. That is the whole window now — its trade and its bench; nothing in the game prints what a building is asking for.
A processed material is a GATE, not a discount
Every building has exactly one price. Until v0.23.0 a buildable could list a second, raw-material recipe and the settlement simply spent whichever it had; that second price is gone from every entry that carried one. So planks and cut stone are now a wall you have to build a workshop to get past, and which workshop you raise first is a real decision:
  • Mason’s yard (cut stone) → the well, the road and the stone wall.
  • Lumber camp (planks) → the door’s twin the bed, the handcart, the wooden floor and all four pieces of room furniture.
  • Both → the storage box and the stone hearth.
The shell is deliberately outside all of it. A wall is 1 wood a cell and a door 2 wood, both raw, so you can close a room on the first night you have an axe — and a thatch roof is 4 leaves a tile, which you can pick up off the ground. Nothing about surviving the opening waits on a workshop; everything about living well does.
The trap in this: logs will not light a fire
A campfire costs 3 twigs and nothing else now, and a torch 5 twigs + 2 plant fibre. Twigs lie only along the forest edge, one to a node. So a party that reaches dusk carrying nothing but logs cannot light a fire until somebody splits one at the crafting bench (K): 1 log → 4 twigs in 2.7 s, no workshop, no tool, anybody. It is a deliberate loss — those four twigs burn 32 s where the log would have burned 81 s — and you do it anyway, because a log alone will not catch.

Demolishing refunds half of what the building was really paid for, and the salvage goes into the dismantler’s own pack first, a stockpile in reach second, and only then the ground. Upgrading is not demolishing — it has its own, kinder rule; see Build the better material over the old one.

And two fuels for one fire. The same reasoning carries past the build: a fire that can be raised from twigs can be fed with them. But a twig is kindling, not fuel: roughly 10 twigs to the log, and a twig node yields one twig, so a night fed on kindling alone is a great deal of stooping for very little heat. Kindling raises a fire; wood keeps it. Logs are always preferred where there are any — every fuel run shops the list in order, so the party falls back on kindling only when the woodpile is empty. Everything that feeds a fire goes through the one list: the right-click order, the REFUEL rule, a claimed task, holding E at it, the world hand and the panel's FUEL slot (which counts in logs but takes either).

The radial build menu
The radial build menu (Space) with a category open: one ring of what it holds, and the back button filling the middle — the category's icon and name above ◀ Back, which is what tells you where you are. A padlock means the workshop for it is not standing yet.

The crafting bench — made in the hands K

Everything you carry — axe, bow, fishing rod, bedroll, cordage, torch, coat, fur coat, hat, handcart — is made at the bench, the Crafting tab of the companion window. It used to hand you a placement ghost for a 1×1 craft spot on the ground, which builders then walked materials to. There is no such site any more: the bench is a pair of hands and a pack.

A kit is paid for out of the crafter's own pack
The city stores are no help at a bench. What that companion is not carrying cannot be made, however full the stockpiles are — so making an axe now begins with putting the wood in the pack. Every material is a row of its own with what is carried against what is needed (2/5): covered rows in full colour, short ones faded, so one glance says whether you can start. The list also says how many of each kit that pack could pay for.

Pressing Craft is an order like any other, not a panel animation. The companion stands still and works, the progress ring sits over their head, and the same things that slow every other trade slow this one: tiredness, illness, and how practised they are (it trains the building skill). Closing the window does not stop it; any right-click calls it off, and so does a pack emptied out from under the work — which says so out loud.

Nothing is spent until a kit is finished
The labour is banked first, the materials are paid at the finish line, and only then does the kit land in the pack. An interrupted craft costs you the seconds and never the goods. A batch (Craft ◀ N ▶) is one order repeated: only the unit in hand is ever committed, and a run that outlives the pack stops there, keeping every kit it already made.

What a kit costs in time ranges from a torch at 3.6 s to a handcart at 25.2 s, with the axe at 12.6 s and a fur coat at 19.8 s — each kit's own figure stands on its card in the tab. Double-clicking either picture of the thing (the big one at the top, or the tile at the end of the arrow) starts a run; an unaffordable kit still opens, so you can read what it would take before you go and fetch it.

The crafting bench
The bench: left, a quarter of the width, every kit this companion could make; right, the making of it — what the thing is at the top, and below it the work along one line, materials → product → Craft. The product stays washed out until you press it, then colours in from left to right as the work gets done.

Draw walls, close a room

There is no ready-made house, so this gesture is how you get shelter. Walls are straight runs, not freehand:

  • Left-click plants an anchor.
  • Move the mouse and a straight run follows it — it snaps to whichever direction you have pulled furthest, so you cannot draw a diagonal by accident.
  • Left-click again fixes that run and starts the next one from its end: that is how you turn a corner. Fixed runs stay put, and a corner is exactly where a door goes.
  • Right-click ends the chain. Esc discards only the run you are currently dragging, never what you already fixed.
Nobody gets built into a wall
A wall blocks its whole cell, however slim it looks. The band is drawn narrower than the cell it stands on — and a piece with no neighbour draws as a post, so a run reads as a run — but the margin either side is a picture, not a gap: nobody walks it. A wall cell turns into solid ground and a hole in the pathfinding in the same instant, and anyone standing on it when it finishes is stepped onto the nearest open ground — the shortest move that works, preferring ground with room around it — and the event log says so. Only the ring blocks, so only the ring moves anyone: a house raised around somebody just leaves them standing indoors. Loading an older save runs the same sweep, so a companion already sealed into a wall is freed the next time that game is opened.
A room counts as closed only if the outline has no gap
The enclosed area becomes roofed and warm the moment it is completely surrounded — and cliffs and water may form part of the border, so a wall between two rock faces is a legitimate wall. But a single missing cell means no room at all: no warmth, no roof offer, no furniture list. Hover the outline and the info panel tells you whether it closed. The door cell itself counts as outside — sleeping in the doorway is sleeping in the open.

Buildings go on grass or sand only. Water and mountain refuse; a forest tile has to be felled first, and the grass it leaves behind then takes a building.

A roof — because a ring of walls is not one

Walls keep the wind out. A roof keeps the sky out. A closed ring holds its 18 °C the moment the door goes in — but until you put something over it, the rain still falls on whoever is inside, hail still hurts, and nobody dries off. A roof is a piece you build, in the Structure ring, dragged out like a floor.

A closed room with a thatch roof on it
Enclose any shape with walls and a door and the inside becomes a warm room — but a ring of walls is not a roof. Until you put something over it the rain still falls on whoever is inside. Close a room and it stakes its own thatch, over the wall ring as well as the floor inside it; the sheet is drawn faded at all times so you never lose sight of the room under it.
RoofCost a tileWhat it givesHow long it lasts
Thatch Roof4 leavesKeeps the sky off and nothing else — no added warmthAbout a year. The cheap tier is the pressure to build the better one
Board Roof1 woodMakes the room 22 °C instead of 18About four years
A roof needs bearing — and that is a real constraint
A wall, a door or a pillar carries every tile within three cells of it — a 7×7 square, 49 tiles, its own cell in the middle. So a room up to seven cells deep roofs itself off its own walls, and only a real hall needs posts inside it. A Pillar is 2 wood and stands in the way like a wall does. You do not have to work out where they go: whenever you draw a roof, the posts it needs are staked with it — as few as will carry the span, never outside the area you drew — and they are ordinary blueprints you can cancel with the eraser. That is also how a lean-to is built: drag a roof over open ground and the posts appear under it.

Close a room and it stakes its own roof. Thatch blueprints appear over every cell its walls can carry — the wall ring itself included, corners and doorway and all, so the roof sits on the walls the way a real one does instead of stopping a cell short of the eaves. A 5×5 hut therefore asks for 25 tiles, not 9. Build them like any other blueprint, or cancel them with the eraser; a cell you cancel is never offered again, and a cell that had nothing to carry it is offered the moment a pillar goes up beside it. The roof a room offers you unasked is the one exception to the rule above: it stakes no pillars, because a post you never ordered would be standing in your house.

A roof takes no ground. Build a bed, a fire or a wall under one and neither is in the other’s way; a bush, a stone or a dropped stack is not in a roof’s way either, so a lean-to goes straight over the grass it shelters.

You never lose sight of the room under it
A roof is drawn faded at all times, so the room below — your companions included — stays visible without you doing anything, indoors and from outside alike. Walk somebody in under it and that house’s roof disappears entirely while they are inside; it comes back the moment the last of them steps out. Put the cursor on a wall, door or pillar and that house’s whole roof comes up solid instead — that is how you read the roof itself, which of the two kinds it is and how far it has worn through, and it works on a house somebody is standing in, which is exactly the house whose wear you want to see. If you would rather have no roofs on screen at all, click inside a room and untick “Show roof”; that switches the whole layer off everywhere and is remembered between sessions. A roof you cannot see still shelters, still warms the room and still wears out.

Build the better material straight over the old one

You never tear the old piece down first. Draw the new one on top and it takes over where it lands. Three things work this way:

LaneFromToWhat the better tier buys
RoofThatch (4 leaves)Boards (1 wood)22 °C instead of 18, and four times the life
WallWall (1 wood)Stone Wall (2 cut stone)24 °C instead of 18, and it barely weathers — but every block waits on a mason’s yard
FloorRush Floor (2 reeds)Wooden Floor (1 plank)Far more comfort, and it does not tread to mulch inside a year

It only ever goes up. Boards never go back to thatch and a log wall may not be built back over stone — there is no reason to want it, and allowing it would make the eraser the wrong tool twice. A road is not a better floor and a door is not a wall: only the pairs above are the same piece in two materials, so drawing a road over your boards is still refused and a stone run drawn along a wall will not eat the doorway in it.

A stone wall run growing along a log wall
The same run, two materials: dressed stone laid in courses on the left, notched logs on the right, and the ghost on the next cell green because that is an upgrade rather than an obstruction. The band, the corners and the way it reaches for its neighbours are identical — a run that mixes the two is one wall with a seam in it, not two walls that happen to touch.
What it costs, and what you get back
  • The old material comes back: half of it, rounded UP — so a one-unit piece never returns nothing. It goes to a stockpile in reach, or into the stores; it is never dumped on the floor, which matters because a dropped stack blocks a plot — upgrading a whole room would otherwise bury it in rubbish you then have to clear before you could floor it.
  • A blueprint you replace gives back everything delivered to it, in full. Nothing had been built with yet, so nothing is spent. Draw the better piece over a plan you have not finished and the old plan simply goes.
  • The old piece keeps standing the entire time the new one is being built. The room is never briefly open or briefly roofless, a change of mind halfway costs you nothing but the walk — and you cannot stake an upgrade just to harvest the salvage.

Everything you build ages — and is mended

A settlement carries rent. Every piece wears down slowly, whether it is used or not, and an old base carries more of it than a fresh one.

  • An ordinary building is roughly seven in-game years from useless — felt by a party that turtles one site for a whole run, invisible to one that migrates.
  • Thatch is the fast end of the scale: about a year. A board roof about four. A stone wall barely weathers at all, and a stone road never does.
  • At 0 % a piece stops working: a workshop unlocks no job, a roof lets the rain through, a hut keeps nobody warm. It never falls down and never loses what is stored in it — it simply does nothing until somebody mends it. Open a building and its condition is on the panel.
  • Mending costs exactly what tearing the piece down would have given back, and it is real work. Press Mend this building to mark it, then right-click it with a companion — or leave it, and an automated party claims it off the task board like a demolition. The mender pays out of their own pack, so somebody has to be carrying the materials.
  • A roof marks itself the day it goes through: nobody is going to click four hundred tiles.

Furnish a room — left-click inside it

A self-designed house is not an object you can click, so the furniture panel hangs on the room: left-click any cell of an enclosed room and it opens, reading the room out (cells, shelter warmth, how homely it is) and listing the furniture that may go in it. Pick a piece and the ghost only accepts cells inside those walls — otherwise it is an ordinary construction site: builders fetch the materials and raise it. Click inside the same room again, or press Esc, to close. It resolves last of all map clicks, so anything with a panel of its own (a pile, a fire, a construction site) keeps the click.

PieceCostLabourWhat it is
Bedroll1 carried bedrollnone (unrolled)The bottom rung: 70% of a bed's rest rate, no shelter from the cold. Made in the crafting tab (K) and laid out from the Supply ring or a room's furniture list. It lies 1×2 (R turns it). Right-click it: Sleep, or Pick up — picking it up returns the whole roll to the pack, so it survives a migration
Straw bed6 leaves2.5 s/cell = 5 sA poor night's sleep — and the one piece that needs no room: it is in the Supply ring too, so it can go down beside the campfire on the first evening. Demolish-only (half refund): a thing you leave behind
Bed4 planks + 4 leaves + 2 twigs14.4 s/cell = 28.8 sThe proper one: rests faster and heals while you sleep. It lies 1×2 — press R before placing to turn it across
Stone hearthStone + wood, needs a mason's yard10.8 s/cellThe indoor fire: a campfire's warmth, ~3× the burn per log and a wider reach. One hearth holds a house through a winter night, and it cooks like any fire

The two beds are told apart by their labour, not by their price — and, since 0.19.0, at a glance: a built bed is carpentry (rails, a headboard, a turned post at each corner, boards laid under it), a straw bed is plainly a heap of straw lying straight on the ground. Their materials are nearly identical: a straw bed is five seconds of somebody's evening, a proper bed is nearly six times that. Nothing in the game is instant any more — an emergency bed at dusk costs a companion a moment, which is little, but it is not nothing. Helpers shorten both; the entry's tooltip quotes the time.

A room is not yet a home. Its comfort is the average over its cells of the floor laid on them and the furniture standing in them, and that comfort lifts Mood while a companion is inside — doubled while asleep. Over-furnishing simply finishes the room; it is capped, never an exploit.

Taking it down is work — and it is how you leave

Demolishing is not a click any more. Pick Demolish and drag a rectangle: every building inside it is marked with a red cross, not removed. A companion then has to walk over and take each piece apart, and half the materials go straight into that companion's pack — what the pack cannot hold goes to a stockpile in reach, and only what neither can take is left on the grass. Right-click a marked building to send your selection at it, and one order chains on to the next mark within 24 tiles, so marking a whole settlement and clicking once dismantles all of it. Drag over an already-marked run to take the mark off again. Marks are also posted as tasks, so a party running Take a task packs up on its own. Construction sites are still cancelled outright — nothing has been raised yet.

This is the gesture the migration is built on: mark the camp the evening before, and leave in the morning carrying it.

Remember a floorplan, stamp it down again

In the build ring, Remember records a room you already built — hover it, click, and its walls, doors, floor and furniture are kept together as one plan. Stamp lays that plan down at a new site. It stakes out construction sites, not buildings: the materials and the labour are still owed, exactly as if you had drawn it by hand. Pieces that do not fit are skipped, so a plan laid over a boulder gives you the house minus a wall rather than nothing at all. The plan rides along in the save.

Record your house before you leave, and the next settlement goes up without you redrawing it — which is the whole point of a cycle that starts over stronger.

The room panel
Left-click inside an enclosed room: how big it is, how warm, and how homely — plus what may be put in it. Flooring and furniture both raise the room's quality, which lifts Mood.

Farming a field is a year

A farm is not a larder you top up. It is a year with four steps in it — drag the plot, sow it, keep it weeded, cut it before the frost — and every one of those steps has a window that closes.

Drag the plot out in the build ring. The rectangle you drag is the field: 1 wood a cell, anything from 2×2 to 20×20, and the farmhouse sits outside it so nothing you paid for is wasted on a doorstep. A 4×3 plot is 12 wood; a 20×20 plot is 400, and it will ask for four hundred of everything else too.

Left-click the farm to pick its crop — a dropdown with all nine in it, and a caption underneath that says what the field is doing and what it wants next. Pick before you sow: once a single cell is in the ground the choice is shut until the year is over, and on a perennial it never opens again at all. A right-click is the order to go and work it, not the picker.

A wheat field standing ripe beside the camp
The plot you dragged, sown and standing ripe. A field looks like its own crop at every step — and a ripe one is the same picture as the wild stand it came from.

Nine crops — everything edible that grows here can be farmed

The list is not a menu somebody chose: every wild stand on the map whose yield is food has a crop that grows it. What is missing from the table is missing because it is an animal — eggs, mussels, meat and fish are hunted, gathered and fished, and a field has nothing to say about them.

CropSowCutGrows inPer cellSeedNeeds
Mushroom BedSpring, SummerSummer, Autumn4 days3 mushroomsmushrooms (itself)Woodland within 3 cells
HerbsSpring, SummerSummer, Autumn5 days3 herbsHerb seeds
Root VegetablesSpring, SummerSummer, Autumn6 days3 rootsroots (itself)
VegetablesSpring, SummerSummer, Autumn7 days3 vegetablesVegetable seeds
Berry PatchSpringSummer, Autumn9 days3 berriesberries (itself)Perennial
HempSpringAutumn9 days4 plant fibreHemp seeds
WheatSpringAutumn11 days4 wheatWheat seeds
RiceSpringAutumn12 days6 riceRice seedsFresh water within 3 cells
Hazel RowSpringAutumn18 days2 nutsnuts (itself)Perennial

A season is 7 in-game days and a year is 28, so "11 days to grow" is a season and a half. The four annuals with a Spring and Summer sowing window — mushrooms, herbs, roots and vegetables — are the ones a single plot can bear twice in one year — that is what the fast, cheap crops are for. Wheat, rice, hemp and the two perennials get one shot at it.

Sowing costs seed — one seed a tile

The plot you drag out is also the size of the pouch you must have filled first, and nobody starts with one. Ordinary seed comes off the wild stand: forage wild herbs, hemp, wheat or rice and the seed comes back with the crop. That is the bootstrap, and it is why a first field is small.

Four crops are sown from themselves — the seed is dinner
There is no such thing as a mushroom seed. So a root goes into the ground as a whole root, a berry patch as berries, a hazel row as nuts, a mushroom bed as spawn off the mushrooms themselves. That makes them the easiest crops to start — the wild stand that is feeding you already is the seed — and the sharpest decision on the farm: a twenty-tile root bed is twenty roots nobody ate. Where these four are cut, the harvest and the seed-back are banked as one number, because they are the same thing.

Seed keeps forever; a carrot does not. Real seed items never spoil. The four crops above are sown out of the food itself, so their planting stock rots on the ordinary clock like any other food in the pack.

Payment is asked per cell, at the moment that cell is sown. Run out half way and the rest of the field stays bare — and a half-sown field never starts growing at all, it just sits there. The field panel tells you the bill up front ("needs 37 Wheat Seeds"), which is the number to read before spring.

Tend it, then cut it

Once the last cell is sown the clock starts, and growth is pure time, never work — nobody can hurry it. The field walks through five visible steps, sprouting → leafing → standing → heading → ripe, and it looks like each of them; "the crop stands ripe" goes into the event log.

What work buys in the middle is quality. Care runs down every day the field is left alone — fast on the greedy crops (vegetables in under 3 days, herbs in 3.3, roots 3.6), slow on the patient ones (hemp 5.6, hazel 10) — and a tended cell puts it back. Weeds are drawn on the tiles, up to three tufts a cell, so a neglected field is visible from across the map. Care locks the moment the crop ripens: after that, weeding buys nothing and the harvest is already decided.

Neglect costs yield, never the field
An abandoned plot still comes back — the harvest floors at 1 unit and 1 seed a cell, so you can never weed a farm out of existence. What you lose is most of it: wheat 1 instead of 4, rice 2 instead of 6, herbs 1 instead of 3. And the seed-back falls with it, so a neglected year is also a smaller field next year.
The frost takes everything still in the ground
Winter does not pause a field, it ends it: sown, half grown, or standing ripe and uncut — all of it, one alert, the plot fallow. The harvest window is a deadline, not a suggestion. Wheat sown on the first day of spring stands ripe around day 12 and may not be cut until autumn; forget it in autumn and the whole year is gone. This is the only mechanic in the game that can take a year away from you.

Two crops are perennial — the frost does not take them

The Berry Patch and the Hazel Row are bushes, and a bush does not die in the winter. They go bare for the winter and come back: the plants stay in the ground, the year closes without unsowing anything, and they never ask for seed again. Sow once, in one spring, and that plot bears every year for the rest of the run. A picked patch starts filling again immediately.

The price is the ground. The plot is committed for good — the crop dropdown never reopens on a perennial, so changing your mind means tearing the farm down and building another. And neglect carries over: a berry patch you let go stays let go into the next year, where an annual starts fresh.

Who does the work

Three ways, and they are the ordinary three. Right-click the farm with somebody selected and they work whatever the field is asking for. A WORK: farmer rule does the same without being told — and since the field is often asking for nothing, that rule now declines cleanly instead of parking somebody in a fallow plot: out of season, mid growth, already cut, wrong ground, or no seed anywhere. It falls through to the next rule in the program, which is what you want. The farm also posts the work on the task board whenever the field wants something, so one "Take a task" rule covers it.

An order to work a field that wants nothing now says which kind of nothing it is — "nothing grows here this season — the field is dormant", or the field's own status line — instead of silently doing nothing.

The harvest goes into the farm's own yard, which holds 20 units of one kind like every workshop yard, and overflows into the reaper's pack. Nobody walks it to a stockpile as part of farming — that is a haul, posted automatically once the yard is 75 % full. The yard accepts every crop and every seed, which is deliberate: last autumn's seed-back is exactly where next spring's sower looks first.

Every field is worked at one pace — but some ground refuses
Soil no longer paces the work. Fertility used to multiply every minute of field work (barren ground took 2.2× as long); since v0.23.0 all three field steps run at the same speed everywhere, and the only soil number left in the game is the compost — a fully dressed plot brings in half again at harvest. Two crops still ask a second question — rice wants fresh water within 3 cells, a mushroom bed wants woodland within 3 cells — which the panel tells you plainly ("no woodland within 3 cells; nothing can be sown") rather than leaving the plot to do nothing forever.

The kitchen a dish does what a catch cannot

Cooking was one thing for a long time: a raw catch on a fire's pan comes back cooked, worth a little more and keeping a little longer. The kitchen is the other kind of cooking. A dish is a real recipe with two or three ingredients in it, and it leaves something behind in whoever eats it.

Raise one for 10 wood + 6 stone (2×2). It unlocks no job — there is no cook trade and no cook card. It unlocks the Cooking skill instead, the way herbalism works: trained by standing at the bench, worth +8 % a level on the work clock and nothing else. Skill never changes what comes out, only how fast.

Left-click the kitchen and click a recipe to queue one — one click, one dish. From there the building posts the cooking itself, so anybody running Take a task will pick it up and nobody needs a rule of their own; a right-click with a companion selected sends that one over instead. The cook fetches the ingredients out of the stores. The finished dishes go into the kitchen's yard — two tiles, twice the usual — and a hauler empties it like any other.

DishTakesGives backKeepsWorkAnd leaves behind
Hearty stew2 meat, 1 roots, 1 vegetables150 nutrition, 0.5 kg2 days18 sWarmed+4 °C for 6 h
Fish soup2 fish, 1 herbs, 1 roots120 nutrition, 0.5 kg2 days16 sWarmed+2.5 °C for 8 h
Herbed roast2 meat, 1 herbs110 nutrition, 0.4 kg4 days14 sStrong+12 % work speed for 8 h
Forest bake2 mushrooms, 1 eggs, 1 vegetables105 nutrition, 0.4 kg3 days16 sStrong+8 % work speed for 10 h
Travel cakes2 wheat, 1 nuts, 1 berries90 nutrition, 0.2 kg12 days20 sSwift+10 % walking speed for 10 h
Herb broth2 herbs, 1 roots, 1 mushrooms75 nutrition, 0.3 kg2 days12 sRested — the next night's sleep gives back +20 %, for 12 h

The hours are in-game hours. Whoever has eaten one wears a single green badge; hover it and it names every boon that is running, how strong it is, which dish it came off and how much is left. The four boons stack with each other — a warmed, strong, swift, well-slept companion is a companion who has been cooked for properly — but a second dish of the same kind replaces the first rather than adding to it, including downwards: a fish soup eaten while a stew is still running trades four degrees for two and a half, and says nothing about it.

The kitchen's order book
Left-click the kitchen: six recipes, their ingredients counted against what the settlement actually holds, and one already on the queue. The building finds its own hands.
A dish is a luxury, and the numbers say so
Every one of them costs more food than it gives back — a stew is 150 out of 195, the whole table runs at a loss of 15 to 45 nutrition — so this is never the cheap way to feed anybody, and a kitchen will not carry you through a winter you failed to stock for. What you are buying is the boon, and one other thing: food per kilo carried. A stew is 300 nutrition to the kilo against roast meat's 200 — half again as efficient to carry as the meat inside it — and travel cakes are 450 to the kilo and keep twelve days. That is what you cook when the party is about to pack up and walk.
Three of the six rot in two days
Stew, fish soup and herb broth keep 2 days. Cooking a stockpile ahead of the winter destroys food. Only travel cakes (12 d) and the roast (4 d) bank at all — and nothing in the game hunts for a dish on a companion's behalf: a hungry one grabs whatever rots soonest, which is exactly the stew you were saving for the person going out into the snow. Hand it over yourself, or expect it eaten by whoever was nearest.

The boon fires on the swallow, and nowhere else. Cooking one grants nothing, carrying one grants nothing, and it is one dish to one companion. The Warmed boon is capped like clothing: it is added under the same 20 °C comfort ceiling and does nothing at all on a mild day or beside a fire — it is insulation you cannot take off, not a heater.

Three of the four boons can be cooked without hunting or fishing. The forest bake answers the roast for work speed, and travel cakes and herb broth need neither — the broth is entirely forageable. So settle inland, settle before you have found the herds, and the kitchen is still worth building. Warmth is the exception: both dishes that hold the cold off want meat or fish, so the one boon the winter is actually about is the one an inland forager cannot cook their way to. And with the farm taking nine crops, every ingredient in these six recipes except fish, meat and eggs can be grown on purpose: a kitchen is a lottery on what the ground offers early in a run, and a supply chain with fields at one end once the base is standing.

Zones — write on the map Z

A zone is a name, a colour and whatever ground you paint into it — "North woods", "Winter camp", "Do not touch". They cost nothing, block nothing, and may overlap as freely as you like: a cell can belong to every zone at once and none of them owns it. This is the map as a notebook, not as a rulebook.

The zones overlay: three named, coloured, overlapping zones over the camp
The world fades back and the zones come forward. Three of them here, freely overlapping; the list on the left names each with its colour and its size, the bar below is ZONE · TOOL · COLOUR · CLOSE.

Z, or the Zones sector of the build ring, opens a full-screen overlay: the world fades back and the zones come forward in their colours.

  • The list on the left names every zone with its colour and its size, and clicking one flies the camera to it.
  • The bar along the bottom is grouped as ZONE · TOOL · COLOUR · CLOSE: make, rename, recolour (ten hues) and delete.
  • Pick up the brush or the eraser. Both are buttons you can see — and the right mouse button always does the other one, so painting and correcting are one gesture. Free-hand strokes come in four widths, or drag out a rectangle.
  • The eraser takes back only the cells you drag over, and shows you which: it crosses out the ground it would actually lift and leaves the rest of that zone — and any zone underneath it — alone.
  • Only explored ground can be zoned. The fog is not a map to draw on.

Zones belong to the settlement, are saved with the run, and stay behind when the party moves on. They replace the pinned name-and-radius markers that were pulled out in July for not being good enough.

Give a job building a zone — work this wood and no other

Left-click a lumber camp, fisher's hut, farm, mason's yard or hunting lodge and pick a zone under Work zone, and that trade works inside those cells and nowhere else: the wood you marked, the quarry on the ridge, that stretch of shore. This is the thing zones were always for.

  • The zone replaces the search range, it does not narrow it. A wood on the far side of the valley is worked as readily as one behind the camp. An instruction that only applied within shouting distance of the building would switch itself off at the moment it started to matter.
  • It fences what is WORKED, not where somebody stands. Paint the trees, not the path to them — a miner will stand on unpainted grass beside a painted rock face. One rule for all five trades.
  • "Anywhere" is the default, and nothing changes for a player who paints nothing.
  • An empty fence is not a fallback. A zone with nothing left to work — felled out, out of season, across a river nobody can cross — makes the trade stop and say so, naming the zone, rather than quietly going back to the whole map. Seeing companions work ground you had explicitly fenced off, with nothing on screen to explain it, is the worse of the two.
  • Deleting the zone does fall back, silently and for good: the binding is simply gone.
  • The binding is per building and survives a save, so two lumber camps may each be pointed at a different wood.

The hauler reads them the other way round. A companion running that trade while standing inside a zone works that ground instead of its ordinary round — so a zone is how you say "clear these workshops and no others". Overlapping zones count as one area, and that fence only applies while the hauler is standing in one: a zone drawn right across the map is no use to somebody who never sets foot in it. The difference is which end holds the instruction — the hauler reads the ground under its feet, a job building carries an order you gave it.

Console: zone (list, new, name, color, paint, erase, tool, del, go, at, open/close) — every branch presses the same buttons the overlay does, the fog refusal included. jobzone lists every standing job building and what fences it; jobzone <zone|none> binds one on the nearest.

Automate — press T T

The rule editor
The rule editor: an ordered WHEN → DO UNTIL program per companion, checked top-to-bottom (first feasible rule wins). Runs only when you tick Auto. Every line says what it is doing right now — two waiting, one ACTIVE — and two of these three rules lean on found grammar: ANYONE in the first, ONCE in the last.

Automation is built, not switched on. Write each companion a program — an ordered list of rules reading WHEN condition(s) → DO action UNTIL release. Order is priority.

Tab writes the rule
With a rule open, Tab steps from one word to the next — sensor, operator, number, action, and the UNTIL’s three — and saves what you typed on the way. Shift+Tab walks back; only stepping off the last word is the usual companion cycle. This closed a real hole: a threshold typed into a number field without pressing Enter used to be thrown away silently. It now reaches the rule whether you Tab out of the field, click a dropdown or simply close the window.
There is no built-in self-care — at all
Nobody drinks, eats, warms up or sleeps on their own — not even from the waterskin or packed food. Everything happens only through your orders or your rules, and every one of those rules you write yourself — the editor offers no template and no starting program. A forgotten drink rule is a death sentence. Free time is not an exception: a companion whose whole program is Free time strolls about, gets thirsty and dies of it exactly like one with no program at all. On Brutal the game cannot pause while the editor is open.
  • WHEN — sensors: the body's bars (Health & Mood too), Wetness, Sickness, the clock, the season, precipitation, city stores, the own carry, the waterskin, fire fuel, a waiting site, a workshop's yard fill, Sky turning (harsh weather coming — through that companion's own eyes) — and, if you find its card, the daylight left today, and In the dark (it is dark here and nothing of yours is burning — night on the surface does not count). Conditions AND together — and every other way of joining them is a found word: OR, is not, UNLESS, ANYONE.
  • DO — actions: the trades (fell, fish, farm, quarry, hunt), drink, eat, sleep, warm/cool, tend fires, build, draw water, boil water (carry the skin's pond water to a fire and boil it clean), haul the carry to stores, fetch items into the carry, take herbs (one dose against whatever they have caught, from their own pack), read the sky (the hour-long vigil, written down as WHEN Clock 08–10 → Read the sky), hauler (empty the workshop yards into the stockpiles), light a torch (from a flame already in reach — it never walks to one), take a task — the nearest thing a building in the settlement is asking for — and free time, which is what a companion does when nothing else applies (below).
  • UNTIL — the latch: "fell wood UNTIL stores ≥ 60" keeps a rule going past its trigger so companions don't ping-pong at the threshold. ONCE is the opposite end: at most one run a day. Both are found, like all grammar.
  • Nothing happens that nobody asked for: no companion carries its load home on its own. A full pack stops the work that would fill it further (harvesting into a full pack destroys the node for nothing) and the rest of the program runs on. Bring it in by right-clicking a stockpile, with a WHEN Carry full → Haul rule, by taking a task — a task's goal sits in the city stores, so delivering is the last leg of it — or by putting somebody on the hauler trade. Any haul keeps a ration of every food kind and of drinking water: the load goes, the lunch stays.
  • Blocks are budgeted: a rule costs 1 block, +1 per extra WHEN, +1 for an UNTIL; the whole settlement shares one budget (base 30, +6 from a Planning table). Rules past the budget don't run — top rules are paid first. The budget is drawn as rivets punched into the window's leather — one driven rivet per block spent, green for the planning table's extra blocks, red for overspend.
  • Every rule has an on/off switch — and a dark one still pays. Switch a rule off and it is skipped, but nothing below it moves up and the budget does not grow back. The switch is a thinking tool, not a discount: silence one rule, watch what the rest of the program does, switch it back without having lost the sentence.
  • A new rule starts empty, and an empty rule is free. + Add rule picks nothing for you — no action, no trade, no condition — and opens its drawer straight away. Until you finish it the line reads unfinished, it costs 0 blocks and it never runs. The dropdowns list the words this companion has learned first, then a separator and a greyed still to learn section below it.

Every word is a card — and every companion earns their own

The Cards tab: one companion's whole deck
The Cards tab (V): this companion's whole deck at full size. An open card carries its block cost and the seal saying what it cost to get ("Worked for · 20 by hand"); a locked one is dashed and grey, with a tally of the deeds so far, the count in figures, and one line saying what to go and do about it. The header keeps the score — how many of the 51 words this companion knows, and which one is next.

You cannot write a rule out of words the companion does not own. Each sensor, each action, each trade and each piece of grammar is an automation card. A deck belongs to the companion, not to the party: what one of them learned, the next one still has to learn for themselves — a second lumberjack serves the whole apprenticeship again. Nothing is unlocked at the start of a run, for anybody.

There are exactly two ways a card is had, and the rim says which: a bronze card was worked for — doing that thing by hand, so many times — and a gold one was found, lying out in the world. The symbol and the writing say what kind of word it is: amber WHEN, blue DO, violet grammar. All violet is gold: grammar cannot be worked for at all.

Two laws about cards that never change
A card never locks an order. Right-click commands, embodying and every direct action are free from minute one — that is how cards are earned. A card decides only what may be written into a rule; a program you already have keeps running whatever it is written in.
Work done by a running rule earns nothing, or automation would unlock itself. Your orders, your own hands and the work of a claimed task all count.

The deck, and reading a locked card

The Cards tab (V, beside Automation in the companion window) is where a deck is read and spent. Every card is there at full size, locked ones included — because the locked half is the part worth reading:

  • A shut card is dashed and grey, and where an open card prints its block cost it prints how to get it instead ("Sensor · by hand"). Under the symbol runs a tally, one stroke per deed with every fifth struck through, and the count again in figures at the foot.
  • One card at a time burns amber — the one closest to opening. Never two, so a glance at the deck answers "what is nearly mine?" without counting.
  • A card that can only be found lies face down: a padlock, its name, and the line saying where its kind tends to lie. That is the whole map you get, and it is enough.
  • Found a scrap of grammar? Hand it to whoever should have it (the transfer window), then spend it here: one confirmation, and that companion knows the word for good. The paper is used up.

Picking one up off the ground is a moment too — and it stays sealed. Lift one of the eight legendary grammar words and the card climbs out of the world into the middle of the screen, face down, in a well of light, with the finder's name under it and a sound of its own. It never shows the face. A find is a promise, not the payoff: the word is still sealed, still has to be carried home and spent in the deck (V), and the card turning over is what pays that off at the shelf. The envelope says where it was found and that it still has to be learned. A click sends it early, it never blocks an order, and a second copy of a word the party already speaks is lifted in silence — a duplicate cannot be learned.

Earning one is a moment. The card turns over in the middle of the screen to a fanfare, the world dims around it, and the name of whoever learned it stands on a plaque underneath. A learned card stands for about 6.6 seconds and a found one for 8 — long enough to read the rule and the flavour line; a plain look is 4.5 s and lifting a find off the ground 5.7 s. It never takes the screen away: orders still go through underneath it, and a click sends any of them early.

And the moment is not one-shot. The line the event log writes when a word is won is inked in that card's own colour — amber for a WHEN, blue for a DO, violet for grammar — and hovering that line stands the whole card back up above the log window, silently, until you move off it. A card you missed on a busy screen is never lost. Those lines also count as ordinary news rather than chatter, so they survive the quieter event-log verbosities.

A card turning over: Knut learned the Lumberjack
Ninety trees felled by hand, and the trade becomes a word you may write down. The card says what it now lets a rule say, and the plaque says who learned it — a deck belongs to one companion, so the next pair of hands starts at nought again.

What each card costs in deeds

The counts follow how often the thing happens, not how important it is. A companion drinks three times a day and sleeps once, so twenty drinks and five nights are the same week of living. One sunrise buys the Clock, so nobody's deck is empty after the first night. Cards that watch the same thing share one counter, so they arrive together — and the ladder runs from a single sunrise to a fortnight of idleness.

CardEarned byDeeds
ClockLiving through one sunrise.1
SeasonTurns of the year — the slowest counter here, and nobody can hurry it.3
Health · Mood · SicknessWatching it happen — a companion in that trouble. Nobody can work for these, and they are counted as separate episodes, so one bad week does not hand all three over. A fever is a thing the whole camp sees, so Sickness is marked on every deck, not only the deck of whoever was ill.4
Take herbsDoses actually given — by hand off the sheet, never one the rule gave itself (automation cannot feed itself). Picking herbs does not count: the player who nurses a poisoned companion through the sheet is doing the very thing the rule automates. A key that only ticks when somebody is ill also cannot jump ahead of the survival words in a clean opening.4
Sleep · TirednessNights slept through.5
Build sites · Site waitingBuildings finished — a building is days of work, not a repetition.10
Drink · Thirst · Eat · HungerEvery mouthful counts, not every meal — including a bite fed by hand from the character sheet.20
Fetch items · Carry itemGoods taken out of the stores by hand.22
Boil waterSkinfuls boiled clean.24
Craft queue · Yard fillOrders worked off a bench. A workshop has to stand first, so this one is late twice over.24
Read the skyLiving through the sky turning wet — each spell of rain, snow or hail that arrives. Nobody can work for the weather keys; you have to be out in the years.30
Fisher · Farmer · HunterCompleted pieces of that work — a landed fish, a harvest, a kill. Not strikes.30
Draw water · WaterskinLitres drawn at the water. Draw water takes no number — it fills the skin to the brim and stops. The walk to the water costs the same whatever comes back in it, so any answer below full only bought a second trip; Fetch still asks how many.35
Wetness · PrecipitationShowers you stood out in.40
Cool offThe second rung on the drink counter, so it never arrives in the same breath as Thirst and Drink.45
StonemasonRocks broken, marked per broken rock.45
Sky turningThe same weather turns as Read the sky, most of twice over: knowing a shower falls and knowing one is coming are two different lessons.56
Warmth · Fire fuel · Warm up · Tend fires · In the dark · Light a torchWarmings at a fire, and logs fed to one — it marks per log, and a fire is fed several times a day. The two torch cards ride the same counter, so learning to handle fire teaches both at once.70
Take a taskLoads carried to a stockpile by hand, and every way of shelving one counts: the group deposit order per delivery, the transfer window once per visit (a load is the walk there, not the number of stacks you drag), and the world hand per stow. Goods lifted off a pile and put straight back down are tidying, and never count. Still the cheapest automation in the game — it is simply no longer the cheapest card.75
HaulerStacks lifted off the ground by hand — one mark per stack, not per unit. This is its own counter and it is kept apart from Take a task's: the lift and the put-down are two halves of one trip and must not pay each other's cards.80
LumberjackTrees felled — a whole tree counts once. The longest apprenticeship in the deck, because chopping is much the most frequent of the trades, and every new pair of hands serves it again.90
Stores · Carry full · Haul to storesLoads hauled in to the stockpiles.100
Free timeIn-game hours spent off duty — the only counter measured in hours rather than repetitions, because the deed has no repetitions in it. It is also the fastest-filling counter in the system: an idle companion banks an hour every 45 real seconds, so 240 is what a fortnight of standing about actually costs. No rule can farm it for you — a program that fires cannot also be doing nothing.240
A card decides what may be written; a building decides what may be done
Those are two different locks and they never stand in for each other. No standing building is ever a second gate on a word: earn the Fisher and you may write a Fisher rule the same minute, with no hut anywhere — the rule reads blocked until one stands. The same holds for Take a task (seventy-five loads by hand buy it; a planning table makes it run) and for all five trades. Lose the last workshop of a kind and its rules block again, but you never un-learn the word.

Grammar is found, and only found

Exploration is what pays for automation
No violet word can be worked for. The grammar used to arrive by itself as the vocabulary grew, which meant the player never chose it. Now eight paper copies of every findable word lie scattered on each map — sixty-four scraps in all — sparkling on the ground at the kind of place the card's own seal names, with the overflow out in the far country. Pick one up and it rides in the pack like any other goods. Each copy is one word for one companion, so who gets it is a decision too. Like everything the party carries in its head, a learned word survives the migration.
Two grammar scraps glittering at the standing stones
A ring of standing stones, and two scraps of grammar glittering in the grass. They wear the same sparkle as any other special find, and they are the reason to walk somewhere you have no other reason to walk.
WordBlocksTends to lieWhat it lets you say
AND — The Knot1A cairnA second WHEN on one rule; both have to be true before it fires.
UNTIL — The Long Hold1Among standing stonesThe latch: once a rule fires it holds until its UNTIL is met, so nobody ping-pongs at a threshold.
ONCE — The One Time1A hot springCaps a rule at one run a day — for the errand worth one walk and not five. The day is spent the moment the rule starts, so a run cut short still counts, and the line then reads spent today.
is not — The Mirror1UndergroundTurns a WHEN around: the rule fires while the condition is false.
OR — The Or0UndergroundFlips the joiner between two conditions from AND to OR. "Warm up when freezing or wet" stops being two rules.
UNLESS — The Exception0A crater lakeA veto on the whole rule, sitting in the WHEN band: "WHEN Site waiting → Build UNLESS Precipitation" keeps the party out of a downpour without a second rule. It stops a rule starting only — one already latched by its UNTIL sees it out.
ANYONE — The Other0An old campAims one WHEN at the whole party instead of the companion running it: "WHEN ANYONE Sickness ≥ 25 → Fetch herbs" is one companion keeping an eye on the others, which nothing else in the language can say.
Daylight — The last light1Among standing stonesThe one findable sensor: hours of light left today, 0 once dusk has fallen (the day runs 09:00–21:00, and it never counts tomorrow's light, so a night rule stays quiet all night). WHEN Daylight < 2 h → go home turns the commonest death in the game into something you can program.
Read the pip count before the word
Grammar comes in two kinds, and the cheap ones are the good ones. A word that extends the language buys something new to say and costs a block (AND, UNTIL, ONCE); a word that compresses says what you could already say, in one rule instead of two, and costs nothing (OR, UNLESS, ANYONE). Against a shared block budget the second kind is free power.

Buildings ask for hands — Take a task answers

Every standing building watches its own needs and calls for somebody: a fisher's hut calls for a fisher while stores hold under 20 fish, a burnt-down fire calls for tending, a fire calls for boiling while the stores hold under 10 litres of clean water (a taker draws pond water, boils it and barrels it), a workshop whose yard has filled calls for it to be cleared onto a stockpile, open construction sites and demolition marks post themselves. One 1-block Take a task rule goes and does the nearest of them, so a new recruit is just one more pair of hands — and doing one does earn cards, unlike a rule of your own. Workers only seek what the party has already discovered.

The rule needs a Planning table to run — the card is what lets you write it down, the table is what makes the settlement organised enough to answer. Without one the rule simply reads blocked and waits.

You cannot see what is being asked for
Nothing in the game prints a posting. The planning table opens no window, a job building's panel is its trade and its bench, and there is no per-building stop asking switch any more. What tells you why a companion walked off is the rule line itself, which names the task it took — so the answer lives in the editor (T). The half that is simply gone: one noisy workshop can no longer be quietened on its own.

Read the program while it runs

The editor is also the debugger: every line shows what it is doing right now, and time keeps passing while you read it.

StateMeaning
ACTIVEThis is the rule being worked.
latchedIts trigger is over, but the UNTIL is holding it on.
blockedTriggered, but it cannot run — the target or the source is missing (nothing to fell in range, no pile that takes the load). It retries every few seconds while the rules below it carry on.
waitingNot triggered.
no line is ACTIVEThe program is running and nothing in it applies. That is not a third state: the companion falls through to free time and the activity line says "Free time (no rule applies)" — naming the gap in the program, which is the half you can act on.

"Why is she just standing there" now has two answers, and they look different. A companion who is strolling a few steps about one spot is at free time — the program had nothing to say. One standing perfectly still is blocked, despondent, warming at a lit fire, or a hunter holding a stand. Watch the feet before you read the editor.

A small program that keeps somebody alive through a winter looks like this:

WHENDOUNTIL
Season is WinterFisher
Wetness ≥ 50Warm upWetness < 1
Carry herbs < 2 AND Stores herbs ≥ 1Fetch herbs

Free time — off duty is something they do

A companion with nothing on their plate does not stand like a fence post any more: they stroll a few cells around the spot they stopped at and stay there. It is the same state whether automation is switched off or switched on with no rule that applies right now — there is no third state between working and off duty, and both bank the hours.

  • At a lit fire nobody moves at all. If you parked them at the campfire, that is where they stay.
  • Leisure never crosses a threshold. Indoors they stay indoors, outdoors they stay outdoors — house, cave or the open sky, and a roof counts as the same place as the room under it. Nobody wanders out of the shelter you put them in, and nobody wanders into a house either.
  • An errand suspends free time, it does not end it. Only a need is an errand: after a drink, a meal, a warm-up, a cool-down or a dose they come back to the same spot and the afternoon reads as one afternoon. An order, a work shift, a haul or a night in bed moves the spot — so where you send somebody is where they idle, and an errand that ended outdoors starts the next stroll outdoors rather than marching back in through the door.
  • Write it last. As a written rule Free time is how you schedule an evening off — every rule above it still wins, so a thirsty companion goes drinking (the line says so) and then walks back. It takes no UNTIL on purpose: a latched fallback would refuse to give way to the rules above it.
  • A rule that is running and deliberately holding still — a hunter waiting on a stand — is not idle and does not stroll.

Its card is the one the party earns by not working: 5 in-game hours spent off duty, and no rule can farm it for you, because a program that fires cannot also be doing nothing. And it is not a safety net — see the warning above.

Console: rest (bare: who is off duty and how long they have banked), rest <hours>, rest here.

Time & world

Read the land — wind, water, coast and soil

Every island has a wind, and it decides where the green is. The weather comes in off the sea from one direction, drops its rain as it climbs the high ground, and arrives on the far side wrung out. So the windward side is wooded and well watered and the far side of the high ground is dry — that is where the sand and the desert are. The direction is rolled fresh for every island, so it has to be read each run: walk up onto high ground and see which side the forest is on. There is no minimap, on purpose — this is what replaces it.

Height no longer does anything — four things it used to do
Altitude used to be a mechanic in its own right, and in v0.23.0 it stopped being one. Four things a player planned around are simply gone:
  • Climbing no longer costs speed. A slope took up to half a walker’s speed; steepness is free now, everywhere, for everyone.
  • High ground is no longer cold. Altitude subtracted up to 9 °C. Climate is the biome alone now — tundra and desert read exactly as they always did.
  • A ridge no longer sees further. Sight radius grew by up to 20 cells on high ground; it is flat now. Scouting is walking.
  • Soil no longer paces a field. All three field steps used to scale with fertility; every field is worked at the same pace now, and the only soil number left is the compost.
You still climb a rise to look — the fog lifts where you stand and the map is read with your legs — but the hill itself buys nothing.
Water is scarcer than it was — and that is the point
Two cuts in v0.23.0 took the island to 37 % fewer rivers and 36 % fewer lakes (about 25 rivers and 3–4 lakes a map, from 40 and 5–6). The price is measured and it is the whole reason: the walk to a drink from where you spawn went from a median of 13–14 steps to 20–23, and the unlucky tenth of the map from 31–35 to 45–53. Water is now something you site a camp for rather than something you happen to be near. There is also one crater lake and one ring of standing stones a map, not two.

The island sheds its own water. Nothing is placed: rain runs off the high ground, threads gather into streams and streams into a few trunk rivers that widen as they go and empty into the sea, and water stands in the hollows as lakes, most with a brook draining out of them (one that would drain into the desert has none — see still water). A river is still deep and impassable — the only way across is a bridge — but where one is still a thread you can often walk around it, so following a river uphill makes the crossing cheaper.

The coast is not all the same. A beach (pale sand at the water) is open, buildable ground. A sea cliff (dark banded rock) is a wall: it cannot be climbed, built on, or come down to the water at, and about a seventh of the shoreline is cliff — so walking the coast is a real route choice. A marsh (dull grey-green, pooled with dark water) forms only where a big river empties into the sea: wadeable at little over half speed, never buildable, and rare enough — a handful of river mouths on the whole map — that the one you find is worth remembering.

Steep ground costs time everywhere. A hillside slows a companion to half pace at its worst, whether you are walking it yourself or a rule is walking it for you. A flat way round a hill often beats the short way over it.

The ground under a farm matters. Fertile bottom land is flat, wet, and has a lot of country draining through it — a floodplain. A farm there works at better than twice the pace of one on a dry slope. Hover any buildable tile and it says which you are standing on: bottom land, good soil, heavy going or barren. With water and wood, that makes three things to weigh when you pick where to settle.

Woods are thick or thin. Growth follows rain, height and steepness, so there is closed forest on the wet side, open groves inland, clearings, and a treeline above which nothing stands (and it sinks as you go north — cold means bare earlier). A tree in the wet lowland carries several times the wood of a stunted one at the treeline, and the crowns are drawn to match — so a wood worth walking to looks like one, and where a lumber camp stands is a real decision. Species follow the place too: oak in the warm wet lowlands, spruce in the cold heights, birch out at the thin edges, pine in between.

An old camp: a cold ring of blackened stones
A cold hearth at the wood's edge — somebody camped here, at water with wood in reach, and left something behind.

You are not the first party here. Out in the unexplored ground there are old camps — a cold ring of fire-blackened stones — and cairns stacked on the passes through the mountains. They are not scattered at random: a camp sits exactly where you would have settled, at fresh water with wood in reach, so finding one tells you the ground around it is good — and whoever left it usually left something behind on the ground to pick up: a cache that glitters, because a stack of wood on dark ground half a screen from the hearth is otherwise invisible. A cairn marks the one flat way through a range, which can save a long detour. Both are named the moment you see them and go into the chronicle (J).

Day/night and seasons pass; the clock, temperature (°C) and weather sit top-centre. Speed controls (or -/.) run pause / 1× / 2× / 5× / 10×.

Rain
Rain soaks anyone in the open (a fire or roof dries fastest; warm sun does it slowly).
Winter snow
Winter snow blankets the world; waters freeze over.

Weather follows the seasons, in spells of 0.5 to 5.4 in-game hours — a shower can be over in half an hour — while the two long skies are the exceptions (a storm runs 6 to 12, a fog 4 to 9), and every sky but one is worth planning around. Roughly how much of a season is wet — rain, snow or hail — is 32% in spring, 17% in summer, 34% in autumn and 42% in winter — with fog on top of that, commonest in autumn (about an eighth of it), so a good half of a winter is weather you would rather be indoors for. Wet clothes dry fastest at a campfire or under a roof (~4 in-game hours from soaked through) and outdoors only as fast as the sky allows — the pace per sky is in Buffs & debuffs.

The skyWhat it is worth
Clear (sunshine, and a summer drought)The drying sky. Soaked clothes dry while the work goes on instead of waiting for a fire, and a drying rack beats its listed pace. If you have a wet party and no roof, this is the sky to spend.
CloudAlmost nothing — the one sky with no bite. Drying and curing crawl under it, and that is the whole of it.
RainThe water day, and it pulls three ways at once. It soaks anyone in the open (wet = up to 30% colder). A water barrel under the open sky fills itself — about 1 litre an in-game hour of clean rainwater, a fetching trip nobody walked. Fishing is better while it falls — the fish come up, and a rainy day at the water is worth about a third more. And it churns every pond and lake: drinking untreated still water is up to twice as dangerous during a downpour and for the half-day it takes the water to settle again. The sky hands you free water in the barrel and poisons the water on the ground in the same hour. How hard it falls decides every one of those figures — they are an average shower; see How hard it falls below.
HailIt wounds. Health bleeds off anyone standing in the open; a roof, an enclosed room, a cave or the forest canopy stops it dead. One of the two skies that kill by themselves — the other is the storm. It is rare now: about two or three spells a year, so it is an event rather than a thing you plan around — but it is still a weighted coin with no cap, and a year can hand you four.
SnowIt lies, and lying snow slows every companion — see below. Deep winter also freezes rivers and lakes (wells keep serving).
Drought (summer only)Bakes: a hot sky is where the heat band bites, and where shade earns its keep. It dries small ponds until the next rain — and it dries clothes and racks like any clear sky. It is also dead still, which is exactly what makes it unbearable.
FogThe quiet twin of the storm, and the only sky that costs nothing but time: it never wounds, wets, chills or drowns a fire. It takes sight and thickens the air (below), lies still for 4–9 hours, and is commonest in autumn. It comes in strengths, and that is the whole decision: a thin mist is an ordinary working day, a thick one takes sight to about a third and strands whoever is out in it. It arrives with no warning at all — the storm is the only sky that announces itself, reader or no reader. Look at the air before you send anybody far.
StormThe one sky that is an event. It wounds like hail but faster, blows a full gale, puts out any fire the weather can reach and cuts how far anyone can see to a third — and thickens the air on top of that, worst when it comes down hardest. Rare, 6–12 hours, and never in the first four days. See below.

Two skies take your sight, and they take it twice over. A storm and a fog both pull the explored circle in — and they also thicken the air itself: colour and local contrast drain out of the whole picture. A lake is still obvious; berries, twigs and leaf piles stop standing out from the ground long before they leave your sight radius. So the cost to plan around is not the walking, it is that foraging in either is close to hopeless — and a thick fog washes the colour out harder than a storm does.

How hard it falls matters as much as whether it falls. A shower runs anywhere from a drizzle to a downpour and shifts inside its own hours, so watch the rain rather than the word. Everything the rain does scales with it: how fast it soaks you through, how quickly a barrel fills, how badly the ponds are churned — and above all how long an open fire survives, where a drizzle barely troubles a pit and a downpour drowns it in under an hour.

Puddles are a warning, not a water source. Standing water means the sky is putting down more than the ground can drink — a drizzle never leaves any, however long it lasts, and light rain only a little; sand drinks it, which is why the desert stays dry. When you do see puddles, the ponds are at their worst to drink from right now, and the water goes on lying there for hours after the sky clears. You cannot drink it, fill a skin from it or put a fire out with it — it only tells you what the weather has been doing.

The storm — the sky that is an event
A storm is not a condition you work through, it is something that happens to you, and it is the most dangerous weather in the game. It runs 6 to 12 in-game hours, and while it lasts:
  • it wounds anyone in the open, like hail but faster — the same cover answers it: a roof, an enclosed room, a cave, or the forest canopy;
  • it blows a full gale, so the wind chill below is at its worst at the same time;
  • it puts out every fire the weather can reach — not down to embers, out;
  • and it cuts how far anybody can see to a third. That, not the damage, is what actually kills: a party caught in the open cannot find its way home.
You are always warned, in a red line in the event log, whether or not anybody in the party can read the sky. A weather-reader does not buy you the warning — they buy you more of it: how long you have, and how long it will last. No storm can strike in the first four days of a run, so the opening is never lost to one.

There is one wind, and it is alive. Beyond the island's fixed prevailing quarter above, the weather carries a live wind with a direction and a strength that drift rather than snap — it wanders around the prevailing quarter instead of jumping about, so what you learned an hour ago is still roughly true. Each sky blows its own way: a drought is dead still and so is a fog — wind is what tears a fog up, so a still air is part of why it lies — while hail and a storm blow hardest. The clock at the top of the screen names it in a word — a breeze, windy, blustery, a gale — beside the temperature.

Wind chill is worth up to 9 °C, and the thermometer does not show it. A body standing in the open feels the wind on top of the air temperature: the effect ramps in below about 14 °C and is at full strength by 12 °C, and it only ever makes cold worse — it takes nothing off a hot day. The reading at the top of the screen is deliberately still the air, so a −4 °C snowfall and a −4 °C gale look the same up there and are not: check the wind word, not just the number. Any shelter stops the wind entirely — the same cover that stops hail and takes the edge off a drought. A wall on the right side of a fire does the same job for the fire.

Snow on the ground slows everybody downfrom the first flake, with no threshold to stay under, up to 35% slower when the world is fully snowed in (and bare ground takes about two and a half in-game hours of snowfall to get there). It costs the companion you are steering exactly what it costs one working on its own, so a deep winter takes real hours out of the day: get the stores in before it lies. It is also what finally makes roads worth their price — a laid path saves you from ground that has got slower, so it is worth more in January than in July. The desert never snows and a cave has no sky, so both stay bare and fast.

Companions go out of their way to use a road. A road has been worth a third more speed for a long time, but until now nobody chose one: they walked the shortest line and collected the bonus only where the road happened to lie on it — which stops being true the moment the road bends. Now a laid road is taken out of the way whenever the detour still arrives sooner, on your orders and under the rule programs alike. So a road that curves around a hill is worth laying, and the stone you spend on one is not wasted the moment the route is not a straight line. Walking off-road is unchanged, and a companion whose road plan turns out to be blocked simply walks the ordinary way rather than giving up the order.

It does not rain on the desert. The sky is one sky for the whole island — the clouds and the falling rain you see are unchanged — but a rain, snow or hail spell reaches nobody standing in the sand. Out there nothing soaks you, hail cannot cut you, and no snow ever lies, in any winter. That cuts both ways: the desert is the one country where a hailstorm is not a reason to run for a roof, and the one where you can never count on the sky to refill anything.

Water has a quality as well as a salinity. Water that stands — a lake, a pond — is still water: drinkable, and every gulp builds the drinker's dysentery load — nothing on its own, but the pond you keep going back to breaks out as the illness. Running water is clean, and so are wells and hot springs. A lake stays still water even though a brook drains it: what matters is that the water sits, not where it eventually goes — so follow the outflow a little way downhill and you are drinking from a stream instead. Unless the outflow runs into sand: a lake whose drain would cross the desert keeps no brook at all — the water sinks instead of running — so there is nothing downhill to follow and boiling is the only answer. The green country just upstream of the desert is where most of those sit, and it looks like the best water on the map. A waterskin filled at a lake carries pond water with it until it is drunk dry. Choosing between a lakeside site and a river (or a well) is the point.

The cure is a fire. Right-click one and pick Boil water: with one companion selected it walks over and the fire exchange window opens on the hearth — pour the waterskin onto the Pan yourself, and take the clean water back from the Ready slot (it goes into the skin). With a group selected the unattended order runs instead: it pours, waits and collects by itself, and empty-handed simply collects what is already boiling. By hand it works too: right-click the tool slot in the character sheet (C) to pour the skin into your hand, then set it down on a fire (the whole skinful goes in), on a barrel, or on another companion to fill their skin.

Boiling costs time, and that is deliberate. A full waterskin — 3.0 litres, which is exactly what the pan holds — takes 36 in-game minutes on a campfire; a stone hearth is three times faster at everything it cooks. The pan boils unattended while the fire burns, so you load it and walk away. A companion drinks 2–3 litres a day, so one fire keeps a small party in clean water and no more — and it cannot sear fish while it boils. Boiling is the stopgap at a pond; a river or a well is the answer.

Tundra
Tundra (northern fringe): 10°C colder than the day says.
Desert
Desert (dry south): 8°C hotter — but the warmest ground in winter.

The land itself has a climate. Most of the island is temperate, but three kinds of country are not: tundra (−10°C) on the high northern fringe, desert (+8°C) in the dry south, and swamp (soaks you like rain, and a fire can't dry you while you stand in it). The seasons turn both extremes inside out — knowing which half of the year a country is survivable in is worth more than avoiding it. Each is one connected region, but its edge wanders — lobed and ragged, never a ruled line — so where a country ends is something you find out by walking it.

And height is cold on its own. Ground loses warmth as it rises — up to 9 °C across the climb, so the highest walkable ground sits near −5.5 °C against the day's reading, on top of whatever the country and the season are already doing. It is not marked and it is not announced: a pass that was fine in summer is a different proposition in autumn, and a mountain camp is colder than the valley you can see from it. The north and the heights stack, which is why the tundra ridges are the hardest ground on the map — and why the fur coat exists.

In a drought, shade is a resource. A roof, an enclosed room, a cave or simply the forest canopy takes about 6 °C off a baking sky — usually the difference between a summer afternoon that costs Health (the heat band starts at 35 °C) and one that merely feels awful. It is the same cover that stops hail, so a good spot is worth remembering twice. Shade never makes anybody cold — it will not pull the air below 22 °C, so there is no season in which standing under a tree hurts you — and it is not a substitute for water: a lake or a well still cools far harder. What it really changes is where the day's heavy work goes: in a drought, work the woods.

Crossing a desert — carry the water in

The desert has almost no water of its own. Rain never falls on it; a stream running down into the sand simply sinks; a lake cannot form there. What is left is one trunk river, if the biggest river on the island happens to run that way at all, and the oasis pools the generator guarantees — which are the only reason the country is crossable, and are what a crossing has to be planned around.

So the desert is not "hot country with fewer rivers", it is country you enter with full skins and a route between known pools. It is also, in winter, the warmest ground on the map — the trip that is suicide in summer is the sensible one in January.

A trunk river cutting to the sea
The island sheds its own water: threads gather into streams and streams into trunk rivers, deep enough that a bridge is the only way over.
A crater lake landmark
Landmarks worth remembering: a crater lake, steaming hot springs, standing stones. Each is named and chronicled the moment you see it.

There are two crater lakes on an island, and one set of hot springs. A run is meant to settle three to five times, and the most reliable water on the map being a single point made one of those settlements obviously right and the rest obviously second-best. Two of them means the good site you left behind is not the only good site there was. The standing stones are no longer only scenery: an automation card lies among them — the one that lets a rule ask how much daylight is left.

The weather has a PLACE — fronts, not one sky

The island does not have a weather. A spell arrives as a front: a soft-edged patch with a position, drifting on the island’s own wind. At most three at a time — the one that has passed and is fading, the one standing over you, and the one already visibly on its way.

A rain front's soft edge across the island
The edge of a front, seen wide. Everything inside it is under the rain; everything outside it is not. This is what makes splitting the party a decision — the base clears while the group out in the tundra is still in it.
  • Rain or snow is decided by the GROUND, not the cloud. A rain front reaching the tundra arrives as snow — and lands dry, because snow does not wet you.
  • Snow lies where it fell. It is a field, not a switch: the tundra stays white while the base thaws. The crunch underfoot, the white on the ground and the white on the tree crowns all read the same field, so a thawed camp is silent while the high country creaks.
  • A front rains itself out against the rain shadow. The island’s green side gets the whole of a spell and the lee side a share of it — the desert is simply the dry end of that rather than a special case beside it. The rain barrels fill when the rain gets there, not when the spell begins somewhere else.
  • The forecast has a direction. A weather-reader at the fifth rung says which quarter the weather comes out of; at the seventh, how far off it still is.
  • A party in two places needs a reader in each. The line is spoken to the group standing with the speaker, and a group with nobody who can read the sky gets no forecast at all.
  • What you see is where you are. The rain thins across a front’s edge on screen; the cloud bank, the light, the ambience and the volume of the rain you hear follow the camera’s own place; the clock plate names the sky and the air temperature of the ground you are looking at; and a companion window’s pane streams for that companion’s weather, not the island’s.
The night-watch advice is local now, and it used to cost you 10°
Every warmth decision the game makes for you — what the watch tells you to do, what the rain rings and frost on the HUD say — reads the sky where that companion is standing. It used to read the island average, which in a tundra camp was wrong by as much as ten degrees.

Read the sky O

The game knows what the next sky will be — the next spell is rolled the moment the current one starts — and no panel is ever allowed to tell you. The only path from that knowledge to you runs through a companion who has learned to read the weather, and who can be lost.

The world leans before it turns. For the last three in-game hours before a change — about 135 real seconds of warning — things say something is coming and never what, and they now glide across that approach instead of swapping in the frame the sky turns: the light, the haze and even your sight radius slide the whole way in. The tells are the cloud shadows gather ahead of the rain and thin ahead of the sun, drifting in on the island's own prevailing wind; the birds go quiet and the wind gets up when something wet is close; and the temperature slides into the coming weather's offset so that it lands exactly at the turn — the cold arrives before the snow, and the thermometer never jumps. Learn those three and you know to get under a roof. Naming the sky is a person's job.

The vigil. Select a companion standing under open sky and press O: they stand and watch for one in-game hour, produce nothing whatsoever, and learn. No workshop gates it — the sky is readable from the first minute of a run — and it is paid for in the scarcest currency the opening has, an hour of somebody's time. A roof, a cave or a forest canopy means there is nothing to read: the safest place on the map is the one place this cannot be learned, and a vigil that ends up under cover is paid nothing (it does not even use up the day's learning).

  • Dawn and dusk count double — 08:00–10:00 and 20:00–22:00.
  • The first watch of a day counts full, the second half, and the rest nothing. Two dawn vigils buy the first level; standing there all day does not.
  • After that a companion also learns by living through a sky they have not met in that season (worth three vigils, and there are only 25 such firsts to be had in a year), and by being right: a call that lands pays a full vigil, a call that misses still pays a quarter — a miss teaches too. Both go to everyone who was out in it, not only the speaker.
  • Perception shifts how much warning a companion gets, and it pivots on 6 like every other attribute: an average 6 is worth nothing either way, a 10 buys about 10 extra minutes, and a 2 costs about the same. That is the whole of it — there is no bonus that keeps growing with character level. Intelligence decides how fast the vigil teaches them — the same two attributes that pay out everywhere else, doing their ordinary jobs here.

What a reader may say grows with them, and only a master says the word. The line goes to the event log in the reader's own name — and only the best reader in the party speaks: one line per turn however many can read, and none at all if nobody has learned. Losing that companion costs the party its forecast.

LevelWarningWhat the line adds
0Nothing is said at all. You are left with the three ambient tells.
1–2~10 min"The light looks wrong — something is coming."
3–430 minWhether it is trouble or nothing to fear. This is also the rung the Sky turning sensor needs.
5–61 hWhich way it turns: something will fall, or it turns colder, or warmer, or holds.
7–82 hHow long it will hold — passing quickly, holding for hours, or not letting up before evening.
92 hA look at tomorrow, and whether the year turns with it.
102 hNames it, and nothing else: "Hail, within the hour."

Both halves can be programmed (the rule editor). The Read the sky action puts the vigil in a rule — WHEN Clock 08–10 → Read the sky is the dawn watch written down, and it blocks itself under a roof or in the dark. The Sky turning sensor lets a companion act on their own forecast — WHEN Sky turning → Warm up — and it reads through that companion's own eyes: somebody who has not learned reads "no" however black it gets, and it takes level 3 before it can fire at all. A rule is worth exactly what its reader is, and no card in the deck buys clairvoyance.

Caves bring a light

A cave mouth in a mountainside
All the world map shows of a cave: a dark hole in the rock, a lit lip of broken stone around it and rubble spilled out at its foot. Right-click it — or walk onto it — to go in.
Inside a cave, lit by a torch
Inside — a map of its own. This is what a torch buys you; without one there is nothing to see at all.

Mountains are not only a wall to walk around: search a mountainside for a cave mouth — a dark hole with a pale lip of broken stone and rubble spilled out below it. Right-click it, or walk onto it, and the party goes in; every rock cell touching the opening counts, corners included, so a near miss cannot set anyone mining the doorframe. Inside is a map of its own, and the way back is an arch of daylight in the wall. The world above keeps running the whole time — clock, weather, animals, everyone you left up there — so a scout can go down while the rest of the party works.

What a cave isWhat it means
Pitch darkCompletely dark — not dim, and not remembered: with no flame a companion has only a smudge about a cell wide around their own feet (against twenty cells in the open). Craft a torch first — Crafting tab (K), 1 wood + 2 plant fibre — and carrying it gives seven cells back. See Torches & the lantern and the dark.
ShelteredRock roofs you: rain, snow and hail cannot reach, and wet clothes dry as they would under any roof.
A constant 8 °CUnderground replaces the sky — no season, no weather, no night. A refuge from a −15 °C winter night and from a 42 °C desert afternoon.
Ground you can build onA cave floor takes a campfire, a stone hearth, a torch, a bed, a straw bed, a bedroll, a storage box, a water barrel, a planning table, planks, road — and stockpiles, so a cave becomes a real base rather than only a place to sleep. Dropped stacks stay put on it too. What will not go underground are the things the rock has made pointless: houses, farms and wall runs. The way out is never built over.

The mountain tells you how big the cave is — a lone rocky knuckle holds a fissure you cross in a few dozen steps, a proper range a warren, a gallery or a pillared hall. Size the massif up from outside before you spend a torch on it. Mushrooms and stone wait deep inside, always a good walk from the entrance, so a cave pays only the party that explores it properly. Nothing lives down there; the danger is the dark and the walk home.

Some caves hold water — a still pool of seeped snowmelt, drunk from or filled at like any river. Because rock has no weather it never freezes and never dries up, which can make a known cave the most reliable water on the map in exactly the seasons that close everything else. It is standing water, so boil it. Wet ground above means more of it: swamp mountains are wettest, desert caves bone dry.

Rule programs keep running underground. A companion you send into a cave still follows its plan, and when a rule wants something the cave has not got — a drink, a meal, the stockpile — it walks out through the mouth by itself, does the errand up top, and is free to be sent back down. You never have to fetch anyone out by hand.

And a cave counts as part of the settlement it opens into. Whatever you carry inside stays reachable from outside: a builder working at the mouth fetches timber from a stockpile you laid down in the cave, a tired companion claims a bed you unrolled in there, and a thirsty one walks in to a pool it has already seen rather than trekking to the river. The rule is simply that a cave is as far away as the walk into it — the mouth, plus however many steps deep the thing sits. So a pile just inside the entrance is practically next door, and one at the far end of a rambling warren is a real errand nobody will make automatically. Put your stores near the mouth if the camp outside is meant to use them. Only what the party has actually seen counts: an unexplored cave offers nothing, and neither does a pool in a corner you have never lit.

Fog of war
Fog of war hides unexplored ground; explored ground out of sight is a memory (terrain & buildings, but not live activity). There is no minimap — scout and remember.
Night
Night: the world darkens smoothly, and a fire is the only warm place in it.
A swamp
A bog soaks whatever stands in it, and cannot be dried out of — leaving is the only cure.

Under the pyramid the one place somebody built

Every other place on the map grew. This one was drawn — five storeys of rooms, traps, hidden doors and a tank of water, with the only lantern in the world at the bottom of it — and the whole expedition is paid for in torches.

The pyramid in the desert, the party at its door
Somebody piled this up and left a door in it. Note the roster: all three overheating — the desert adds 8 °C on top of the season and is a death trap in summer, a refuge in deep winter. Getting there is half the expedition.

The pyramid always exists. Nothing rolls for it: it prefers the deep desert, and on a map whose sand never grew it stands in the forest instead, or on open ground — a run without a pyramid is not possible. From outside it is a step of masonry 13×13 cells across, weathered, its top course broken off and the capstone lying in the sand. There is one way in, in the middle of the south face: a gate between two pylon towers, with a flight of steps running down onto the sand. Walk onto it or right-click it, exactly like a cave mouth. A world generated by an older build keeps its door on the north flank, behind the mass — it still works, it is simply harder to see.

Inside is an order of magnitude more building than there is hill — five storeys and about 1 570 walkable cells behind a wall you can walk round in a minute. The floors are joined by stairs, not tunnels: right-click one and the companion walks over, takes it and arrives standing on the step on the other floor, which is then inert underfoot until they walk off it, so nothing carries anybody back by accident. It works from either end, and a group order onto a stair is never spread out — send all three and all three cross, one after another, on one click. A line in the log names the floor you have reached. Underground the camera stops at the walls, panning and zoom alike, so you are never looking at a screen of black rock.

A pyramid is not a cave — it is no refuge
A cave sits at 8 °C and shelters you at both ends of the year. This place is 30 °C on every floor, and there is no drinkable water above the cistern, three floors down. It is not free damage — 30 °C is under the heat line — but a party that walks in out of a desert afternoon to cool off has walked into the same afternoon with a roof on it. Carry water in, or turn round. What you will not meet is anything alive: nothing lives down there, and nothing ever will. The dark, the heat and the stone are the whole danger.

Five storeys, five ideas

Each floor asks one question, and only one. Reading the table before you go in is worth a torch on its own — the building is a network and not a chain, so knowing what is where saves the climb back up.

FloorWhat is on itWhat it costs you
Entrance HallA silted colonnade, two side chambers — the east one holds a rack of 4 torches — a shaft to the sky, and a short dead end marked with jars and a bracket, whose end wall is a secret. Nothing. It has no trap at all: this is the floor where you learn that light is the resource.
Gallery of KingsA pillared gallery, a side hall with a hole in its floor, and the sealed door the scarab opens. Health, and only for hurrying: three darts, every one of them in a long straight run and never in a room.
Servants' WarrenA collapsed dividing wall, a damp corner where the cistern seeps through, two passages narrowed by fallen stone, a shrine whose only door faces south, a chamber with two doors and a chamber with none — and behind its secret, the scarab seal. Time, and therefore torches. No dart here, deliberately: a wrong turn already costs, and charging twice for it is charging twice.
The Cistern229 cells of water — the only water in the building — a walkway round it, and the valve in the south coping. One dart where the walkway narrows, and the decision below.
Burial ChamberOne room, one bier: the lantern, the pharaoh's gold and preserved food. Weight against light. One dart in the approach, and from here the way back is longest and the pack heaviest.

The floors are a network, not a chain. The scarab seal lies in the Servants' Warren and the door it opens is a floor above it, in the Gallery of Kings — so finding the key sends the party back up. Eleven caches are scattered through the five floors (cordage, herbs, nuts, preserved food, torches, gold), and a share of the run's automation-card scraps lie deep inside as they do in any cave. The gold is honestly a keepsake: there is no money in this game and nothing to spend it on, so what carrying it home buys is a chronicle line and a hidden achievement.

The dark, and what the light will not do

There is no dim. Underground — here and in every cave — you are in somebody's light or you are in black. Ground you have already walked is remembered by the run, and it is never shown: a mapped pyramid goes black again floor by floor the moment the last flame dies. With no flame at all a companion gets a smudge about one cell across — enough to see where your people are standing, nowhere near enough to tell a wall from a doorway.

The ruleWhat it means down here
Light does not go round cornersIt stops at whatever reaches the ceiling — every wall, and every column. A corridor gives up only what lies straight ahead and the colonnade throws real shadows. Water, jars and sarcophagi do not block it: you look across a pool you cannot walk into, which is how you see the stair on the cistern floor from the rim.
A shaft is lit without a torchTwo cells of it, and they are the one fixed point in five storeys of identical dark. There is a shaft on each of the top two floors and nowhere deeper — worth knowing where one is before your last flame goes out. The daylight in the doorway reaches two cells in as well, so the way out is never a black hole.
A built fire lights a chamberA campfire is 9 cells and a stone hearth 13, and neither has to be carried — but the fuel does. Making a camp down here is its own decision.
A torch is 7 cells and about 3 real minutesThe rack by the door holds four, which is the five-storey building and nothing more. Snuffing one (L) keeps what is left in the head, so half your light gets you there and the other half gets you home. One bearer carries the flame in and the others strike off it.
The lantern is 11 cells and about 12 real minutesFour times the burn and half again the reach. Nothing crafts one, there is exactly one in the world, and it lies on the bottom floor. It is the difference between glimpsing this place and exploring it — which is why the trip that fetches it is the hard one.
Losing the light takes the way home with itBut not your ability to act: right-click still resolves through remembered rock, so ordering the party back out the way it came is fair play. You simply do it blind, by the daylight at the door and the cell each companion is standing on.

Traps, and the footing

A trap never rolls dice. It always fires and it always costs exactly the same — and it is drawn on the tile like everything else, so it is plainly visible in torchlight and invisible without one. That is the entire mechanic, and the whole argument for carrying light: what the building charges for is hurrying in the dark, which is a decision you made. Hover a tile and it names the floor and what the trap will do, before you step.

What it isHow manyWhat it does
Trapped slab dart5 22 health and 12 Mood. It is spent once it fires and becomes plain floor, so a single file may follow the first one through. Three of the five stand in the Gallery of Kings, in long straight runs and never in a room.
Hole in the floor2 30 health, 12 Mood, and it drops you a storey. A pit stays a pit, for ever — the party has to remember where it is.
Drifted sand x0.75a sixth of the floor Nearly all of it in the entrance hall, which is drawn half silted shut. Wading it costs a quarter of your pace — on the way in, and again on the way out with a full pack.
Fallen stone x0.70scattered Worse than sand on purpose: rubble is picked over one step at a time, sand is merely waded. Underground, time is flame — every slow cell is torch.

Finding the secrets — a draught, then a job

Walking past a hidden door does not open it any more. There are two of them, drawn as plain masonry, and a light carries only a tell: within a few cells of one, a companion with a lit light feels a draught and says so — naming the floor and the direction it comes from, never the cell. The bearing is taken from where they stand, so a few steps and a second reading cross on one wall.

How near is up to them. Perception sets the reach: 5 cells for sharp eyes, 4 for average, 3 for dull. It is a reach and never a roll — the same companion feels the same thing on every step and after every reload — so who you send down the corridor first decides what gets noticed at all. It buys noticing and not cheaper searching: the walls you actually pay for do not move.

Then you dig. Right-click any wall down there and the companion walks over and chisels at it for 25 s — with a lit light in hand, at the wall. A hidden door becomes a doorway; honest rock costs the same 25 seconds and gives you nothing but the news that it is solid. The verb is offered on every wall on purpose — a right-click that behaved differently over the secret would be the secret — and a wall the party has never had light on cannot be searched at all. Cross two bearings first and it is one wall in the entrance hall and three in the Warren, 75 s at worst, under half a torch. Guess instead and you are paying 25 seconds of flame a wall for as long as your nerve holds — which is the whole reason the draught is worth walking towards.

The sealed door is the opposite: it is meant to be seen. No searching and no chiselling — it wants the scarab seal, and it opens for anybody standing there carrying it. The seal is not used up. It lies behind the Warren's secret, one floor below the door it opens, which makes that the one search in the building nobody can skip.

The cistern valve — the one thing that does not come back

229 cells of water lie on the third floor down, and because rock has no weather over it the pool never freezes and never dries: it is the only water in five storeys and it is there all year. The way down to the lantern runs across the floor of the basin, and the basin is full. From the rim, by torchlight, you can see the stair down there — water stops feet and not eyes. Nothing has to explain the valve in the south coping; the building does.

Pulling the valve is permanent, and the game will not ask you twice
Forty seconds of work by somebody holding a lit light — no key, no riddle, no dice — and the basin drains. You get the stair, and you get a shortcut: 229 cells nobody could cross become the floor of the room, so the walk across that storey stops going the long way round the tank. And the water is gone — not for the season, not for this settlement, but for the rest of the run, on every later visit and in every later cycle. From that moment every expedition into this place carries its own. It is the only place in the game where anything leaves the world for good: trees grow back and deposits restock, but a hand-drawn place is not a landscape. There is no confirmation dialogue — the forty seconds is the warning, long enough to watch the work ring fill and call it off.

Console: dungeon (valve, draught, pace, search <x> <y>, stairs) and cave light report every number on this page out of the same tables the game reads — developer builds only.

The Manor the second place somebody built

There is a great house with its roof fallen in on every map, standing on good open land near water, always in the temperate forest — so unlike the pyramid you do not have to cross a desert to reach it. It is 13×9 cells above ground, with two raised end pavilions and a proper doorcase whose both leaves stand open. Underneath: five storeys, 1 326 walkable cells, a flat 6 °C — colder than a cave — and it is darker than the pyramid, because it has no shaft at all. Bring light and bring spares.

It is not a second pyramid. There is no key, no seal, no valve, no sand and not one dart trap. The pyramid’s subject is a tomb somebody meant to keep you out of; the manor’s is mechanisms and decay — a house that worked, and then did not.

StoreyWhat it is for
Great HallTeaches. One plate, one gate, a rack of torches, no hazard at all.
Long GalleryComing down. The floors are the danger here.
Servants’ WingHides the secret.
The CellarsThe decision: two pressure plates in opposite wings and one gate on the stair.
The VaultThe family’s gold, a handcart — and, on a floor that has already split, an automation card.
Pressure plates: somebody, or something heavy enough
A companion always holds a plate down. So does a heap of dropped gear, at 8 kg. That number is chosen: eight gold ornaments weigh 3.2 kg, so a hoard alone can never buy you a door — gold plus stones can. Every plate on a storey holds every gate on that storey, and all of them must be down at once. With two plates in opposite wings and three companions, the cellars are a genuine puzzle about who stands where.
A gate can also be wrenched open by hand — but only by somebody the way out is not reachable from, and it never shuts again.
Floors that give way — and nobody is ever buried
Cracked boards groan, then split, then fall. A floor rated for three crossings is exactly three: everyone over and back spends six, so a party of three cannot simply walk in and walk out again the same way. Nobody is ever buried by one — and a fresh fall is the one wall in the game SEARCH can dig back out, at about 25 seconds of torch.

Six walls in the house can be read, once each, into the event log and the chronicle. They are the only account of what happened here.

Sound Esc → Settings → Sound

Sound in this game is information, not decoration: where the camera is, what the weather is doing, whether the settlement is working, and how much fuel is left in the fire. It is built to be listened to rather than left on.

Most of it is still silent in this build
The whole system below ships in v0.10.0, but the library it plays from is being filled in by hand: 37 of 225 sounds have a file today. A sound with no file is guaranteed silence — by design, never a crash and never an error — so the game is playable at every stage of the filling. Footsteps, fires, the creature calls and most of the interface are among the rows still waiting, so what you hear today is the ambience, some of the music and some of the work. The rest is wired up and mute.
What you hearWhat it tells you
Three ambience layers, cross-fadedThe place under the camera (cave › roof › near water › mountain › forest › biome, and it splits day/night), the weather laid over it rather than replacing it (rain in a forest and rain in a desert are different sounds), and a settlement layer that comes in once four buildings stand — the sound of the base being inhabited, and the one you notice missing when the party moves on
Seven music moodsBound to the run's phase, not shuffled: the bare opening (under 6 buildings), the settled base, night, winter, an expedition (more than 60 cells from the settlement), and mortal danger — which cuts in immediately, while every other mood waits out a 90-second minimum so it cannot twitch
Work has a beatOne impact per work cycle — the axe swing, the pick strike — so a job you cannot see still has an audible rhythm, and it slows exactly when the worker does. Chopping picks the sound of the tree species actually being felled
Footsteps, on nine surfacesGrass, forest floor, sand, snow, shallow water, road, planks, rock and swamp mud — so you can hear whether snow is lying yet, or that somebody waded the ford instead of using the bridge. The cadence rides the real stride, so a tired or overloaded companion audibly walks slower
A fire crackles, and thinsOne voice per lit fire, positional, and quieter as it burns down — the fuel level is otherwise only visible in a panel, so a fire starting to sound thin is the reminder to put a log on
Walls and rock muffleStep under a roof and the outside goes dull; go underground and it drops away behind reverb. A house being warm and dry was already a reason to build one — this is what makes it feel like one

World sound is gated on the zoom. Pulled far out you hear the beds and the music and nothing else; zoom in and the work, the footsteps, the fires and the animals come up. So the detail you hear tracks what you are actually looking at, and eight companions never turn into a wall of noise.

Five sliders, one switchEsc → Settings → Sound: Overall, Music, Ambience, World (work, footsteps, fires, animals) and Interface (clicks, windows, alarms and the mortal-danger heartbeat), plus a Silence switch that mutes everything and greys the sliders out. They are four genuinely different questions: before v0.10.0 one "SFX" slider carried the rain, the work loops, the heartbeat and every click at once, so turning the interface down turned the weather down with it. Turn Interface down, not World, if the clicking is what bothers you — and note that the heartbeat rides Interface, so muting that mutes your death-warning too.

Interface & keys

The game opens on an intro: three companions walk out of the dark, stop and turn to face you, the title fades in above them, and the whole picture dissolves into the menu that was standing behind it all along. Any key or click skips it, and it plays once per launch — quitting a run back to the menu does not replay it. The engine's own logo is gone; the window opens straight onto the same leather the title screen and the loading screen stand on, so there is nothing to sit through before it. The people in it are drawn by the painter that draws the map, so they change when the companions do. It has no sound yet.

The companion window holds everything you do to one companion, as four tabs — each key opens its own tab (press again to close; Ctrl+Tab walks the tabs). All four are about the companion you're steering — and pressing one with nobody selected now claims that companion, so Tab advances from them, F centres on them and a right-click orders the one whose sheet you are reading. A box-selected group is left alone, and closing the window claims nothing back.

KeyActionKeyAction
CCharacter tab (stats, skills, carry)SpaceBuild ring (radial menu)
TAutomation tab (rules)LLight / douse the whole selection
VCards tab (this companion's whole deck)18Select companion (twice = camera)
^Select the whole living party — the key left of 1 (` on US boards). It replaces the selection and the camera stays put.
KCrafting tab (bedroll, cordage, bow, rod, axe, coat, hat)TabNext companion (+camera)
HAim & shoot (bow, hold)MWidest zoom
ORead the sky (an hour's vigil)Open sky only — under a roof, in a cave or beneath the forest canopy there is nothing to read
FCentre camera on selectionGToggle fog (debug)
ZZones overlay (write on the map)EscClose the overlay
XMap lens — step to the next oneXKeep pressing: the ring ends back at no lens
JChronicle (saved history)- / .Game speed up / down
F5 / F9Save / load slotF1Help
F12Dev console (debug builds)EscClose open window, else pause/settings
Rebind everything in Esc → Settings.

The top-left corner is the roster and nothing else. A running list of everything the settlement owned used to sit under the cards; it is gone. It answered a question nobody standing in the world can ask — it totalled every pile on the map at once, from anywhere, through fog, while the goods it counted are real things lying in one place somebody has to walk to. What you have is answered by the thing that holds it: left-click a stockpile for its panel, right-click it with one companion to open it beside their pack, and the build ring still tells you what you can afford.

Only one window is ever open. Opening any of them — the companion window, a building, pile, site or room panel, the transfer window, the build ring, help, the chronicle — closes the one before it, so nothing overlaps. A stack in hand survives the switch: it is only ever put down where you put it down.

A window wears the moment it is opened in. The panels are tanned hide and bone ink, and the frame reports on the companion you have open without a word: a tallow glow after dark, rime creeping in from the corners below freezing, rain running down it while it rains, soot on the top rim while that companion stands at a fire or under a roof — and the frame pulses red when that one companion is in mortal danger, which is the one layer worth acting on, because the party alarm cannot tell you which of them it is. Every layer reads a number the simulation is already acting on; none of it is decoration you have to interpret.

Lenses over the map X

X lays a lens over the ground and steps to the next one. The ring is off → Zones → Soil → Climate → Rainfall → off, so the bare map is always one press away and only ever one lens is up. A plate under the clock names the one you are looking at and what its colours mean.

LensWhat it coloursRead it before you
ZonesThe areas you painted, filled in. Overlapping zones average their colours — the outlines underneath still say which two. Hand a workshop its work zone
ClimateThe degrees this ground adds to or takes off the sky: blue below, amber above, ±10 °C to full colour. Temperate lowland comes out almost clear. Choose where to winter, or plan a crossing
RainfallHow wet the ground lies, dry sand to deep blue. Open water stays clear. Site a camp, or guess where the hemp is
The rainfall lens over the starting camp
The Rainfall lens, with its legend under the clock. Dry sand to sodden blue, open water left clear. There were four lenses; there are three — the Soil lens went when soil stopped changing how fast a field is worked, so X now cycles zones → climate → rainfall → off.
A lens shows you what you have seen, and nothing more
Every lens is fog-gated. Ground you have never walked shows nothing at all — no tint, no hint, just the dark. Remembered ground keeps its colour under the fog's own haze. So a lens is a way of reading the map you made, never a way of scouting from the armchair: the answer to "where is the good soil" is still a pair of legs.

The event log — and the red alerts

Bottom right, a live feed of what the settlement is doing: arrivals and deaths, buildings raised, illnesses, level-ups, the traces a false companion leaves, season turns. Drag it by its top-left corner to move it.

The red lines are the rescue signal
Because nobody looks after themselves, the red alerts are the only warning you get — and several failures announce themselves there and nowhere else: a rule that cannot run because its target or source is missing; a companion following an order into collapse; a load with no pile that will take it; a stat crossing into mortal danger. Nothing on the map turns red for these. The alerts warn, you rescue. What a rescue actually costs is its own section.

The clock now takes its own foot off the accelerator. A red rim and a heartbeat only ever reach a player who is looking, and at 5x or 10x the line into mortal danger is crossed between two glances at the screen. So the time warp has a brake: the moment somebody crosses that edge, the game drops itself to 1x. It slows, it does not pause — a pause would hand you a frozen board to study, and 1x hands you the emergency at the speed the game is meant to be played at, with the clock still running while you decide.

  • Once per emergency. It pulls the speed down on the way into the red and then stays out of the way, so you can wind back up to 10x to send help across the map without being dragged down again every frame. It re-arms when nobody is dying.
  • It never starts a game you paused. A run paused on purpose stays paused, and simply comes back on the 1x rung.
  • Every difficulty, Brutal included. It needs no exception there: Brutal's refusal to pause while the rule editor is open guards the pause, and a brake that only moves the speed rung never goes near it.
  • Settings → Gameplay → Slow to 1x when someone is dying, default on.

A worker that cannot work says so, too. No tree in reach, no rock face, no farm, no water to draw, no bow or rod in the pack — the companion posts one red line naming the reason and stops, rather than standing there looking busy. It comes once per reason, so a new problem is never buried under a repeat. A farm in winter stays quiet on purpose: dormant fields are the rule working, not a failure.

How much it says is up to you: Esc → Settings → Gameplay offers Everything, Only what matters and Fewer. Verbosity only filters the live feed — the chronicle (J) always keeps the full history.

Achievements — yours, not the run's J

Thirty-eight achievements across six shelves: the opening hours, surviving the year, the companions, the rule programs, the map, and a small set that is Brutal's own. The point of them in a game you are meant to lose is where they are kept — they live in your profile, beside the settings, and survive a death, a new world and a deleted save. Losing everything does not lose these.

The chronicle (J) has a second page for them, with a tally per shelf and a bar on the counted ones. Four rows stay nameless until they happen, because naming a hidden place is the spoiler. Nothing is ever awarded for time served, and losing a companion is marked quietly and hidden — it is a thing that happened to you, not a to-do item.

Twenty of the thirty-five are watched today; the rest are waiting on a signal each. The list, and which is which, is in docs/achievements.md.

Difficulty & saving

Difficulty is chosen on the title screen, per run, and it decides what a mistake costs.

HardBrutal
SavingSave and load freelyPermadeath — the game saves itself, and Continue resumes exactly where you left off. The save suspends a session; it never undoes a death
It savesWhen you do (F5)On an interval, at every dusk, on every death, in danger, on pausing and on quitting
Rule editorPauses the game while openTime keeps running while you plan

Each run gets its own named slot: the Esc menu names, overwrites and deletes them, the title screen loads any of them. The autosave interval is in Esc → Settings → Gameplay.

A save keeps what everyone was told to do. The standing order rides along with what it was aimed at, the work already banked, and the whole Shift waypoint chain queued behind it — so you can plan a march across the map, save, and load into a party still walking it. A batch craft keeps its kit and its materials, an hour of vigil stays stood, and a watch that has already seen the night fall knows it. Saves written before this carry no orders: that party loads standing idle, which is worth knowing before you wonder why nobody moved.

Where the files live. Saves and settings sit in %APPDATA%\Companions (~/.local/share/Companions on Linux) — the game keeps its own folder rather than one under the engine's name. If you played an older build, its folder is copied across on the first start and the original is left untouched, so an existing installation carries on either way.

While the prototype is being tested, manual saving is left enabled on Brutal too.

Settings worth knowing about

Esc → Settings, four pages. The ones players actually miss:

  • Gameplay — event-log verbosity, autosave interval, edge-scroll speed and border width (0 switches edge scrolling off).
  • Graphics — resolution, window mode, anti-aliasing, quality, the FPS readout, and the scale of the whole interface. A fresh install opens at 1280×720; 1280×800 (the Steam Deck's panel) is in the list on every machine, not only on one that happens to be 16:10.
  • Sound — five volumes (Overall / Music / Ambience / World / Interface) and a Silence switch. Which one to reach for is in Sound.
  • Keys — every binding above can be reassigned.
— Developer Reference —
A full carry grid
Items in the pack: every kind carries its own weight and nutrition, and perishables show their freshness per batch. Right-click a slot to take it in hand, Shift+right-click to choose how many. An ordered pick-up is never refused any more: right-click a stack on the ground and the companion lifts all of it, however heavy the pack already is — past the weight budget and past the +50 % ceiling alike. The bill is the one overload always promised: the legs get slower with every kilo and stop dead past the ceiling, and the log says so. Only your order does this — your hand and the transfer window still stop at +50 %, and no rule may ever overload its own companion. The pack lies on a hide rather than in a rack of squares — empty slots stop drawing themselves, so four things read as four things and not as sixteen gaps. Every slot and every gesture is still exactly where it was. At the foot of the hide, the room left as a lane with the exact figure under it: over budget, both turn amber, then red. Over the grid sit the category chipsAll · Food · Drink · Medicine · Tools · Clothing · Materials · Cards — a pure view that moves nothing and survives Tabbing through the party. Herbs file under Medicine, seed and waste under Materials. Nothing is hidden by a full pack any more: the grid grows a row at a time and scrolls, because what limits a pack is weight, and every age batch of a perishable is its own slot.
The transfer window
The transfer window: the companion on the left, the stockpile as its physical tiles on the right (one kind per tile). It also opens between two companions.
The chronicle
The chronicle (J): the run's saved history — deaths, level-ups, firsts and season turns, day-stamped and carried in the save.

Architecture & conventions

Engine, layout, and the ground rules the codebase holds itself to.

  • Engine: Godot 4.x, 2D top-down. GDScript only (no C#).
  • Language: all identifiers, comments, node/scene names in English — no German anywhere in code or the scene tree.
  • Naming: snake_case for vars/funcs/signals/files; PascalCase for classes/nodes/scenes; class_name for reusable scripts.
  • Data-driven: tunables live in .tres Resources (resources_data/) and @export vars — not magic numbers. Numbers should be tunable without touching code.
  • Decoupling: cross-cutting state lives in autoload singletons; systems talk through signals where it decouples them.
  • A freed object compares == null as TRUE. So node != null short-circuits and never catches a freed one — is_instance_valid() is the only safe test. Any registry that outlives a scene teardown (cells → nodes, caches) must prune or skip stale entries with it.
PathHolds
scripts/autoload/Singletons (managers, world & save state)
scripts/player/Companion rig: stats, skills, controllers, jobs, automation
scripts/world/Worldgen, terrain/biome/landmark, renderers, camera, weather, fog
scripts/resources/Resource nodes, animals, harvest cycle
scripts/buildings/Buildable, build controller, sites, stockpile inventory
scripts/items/Item catalog, item graphics, ground items
scripts/audio/The sound library's resource classes, the music/ambience directors, the signal router, the work profiles and the bus layout (the per-companion FootstepPlayer and WorkSoundPlayer sit with the rig, in scripts/player/)
scripts/ui/HUD, panels, dev console, settings, screens
resources_data/All .tres configs: buildings, animals, resources, stats, skills, palette, theme
tests/Headless suite + benches + the screenshot harness

Autoload map

The singletons every system reaches. Persistent autoloads must reset in WorldGenerator._ready (a reload doesn't re-instantiate them).

AutoloadOwnsFile
GridManagerCell↔world math, occupancy gridautoload/grid_manager.gd
TerrainManagerPer-cell terrain / biome / landmark layers, walkability, water bodies, climateautoload/terrain_manager.gd
TimeManagertime_of_day, day, season; ambient temperature; rollover signalsautoload/time_manager.gd
TimeWarpManagerPause / 1–10× via Engine.time_scaleautoload/time_warp_manager.gd
WeatherManagerSeason-weighted weather spells, snow coverautoload/weather_manager.gd
FogManagerThree-state per-cell visibilityautoload/fog_manager.gd
PartyManagerMembers, selection, embodiment. The drag box is drawn by world/tile_inspector.gd at z_index 110 — above the cave floor (z 2), the fog and the darkness (z 100). It sat at the default 0 until 2026-07-26 and was invisible in every cave while the hit test, being pure geometry, went on selecting.autoload/party_manager.gd
BuildingManagerPlacement, sites, rooms, action-area serving, water bodiesautoload/building_manager.gd
CityInventoryAggregate facade over all stockpile tilesautoload/city_inventory.gd
AnimalManagerRunning population tallies, capacitiesautoload/animal_manager.gd
TaskBoardBuilding-posted tasks (11.6)autoload/task_board.gd
SaveManagerNamed save slots, migration seamsautoload/save_manager.gd
EventLog / ChronicleLive feed / saved historyautoload/event_log.gd, chronicle.gd
AchievementManagerThe profile store — 38 feats that outlive the run, deliberately outside saveable and outside the reset listautoload/achievement_manager.gd, achievements/achievements.gd
SoundManagerThe library (id → row), the five buses and the voice pools. play(id) is THE entry point and world_gain_at(pos) THE zoom gate (it used to be copied in three files). Owns the directors — see Audioautoload/sound_manager.gd
KeybindManager / GraphicsManager / GameState / ResourceManager / GroundItemManagerInput, graphics prefs, run state, resource registry, dropped stacksautoload/…

World generation & terrain

Seams. WorldGenerator.generate() builds the world. TerrainManager.is_walkable(cell) is THE passability seam (nav bake, collision, standability, rooms all read it — a bridge's set_walkable_override opens a crossing for all of them). TerrainManager.climate_offset_at(cell) is THE climate seam. TerrainManager.is_drinkable_water() is THE drink seam; is_fresh_water() is salinity only; is_still_water() is THE quality seam (7.5 — a cell the generator marked STANDING, or a body that reaches no sea), and IllnessController.wear_bad_water() is the one place an untreated drink is billed. Since the terrain pitch (2026-08-04) three more: TerrainManager.height_at / slope_at / altitude_at (the height field every later pass reads), rain_at (how wet a place is, as a RANK) and fertility_at (how well it farms, likewise a rank).

A cell has five orthogonal per-cell layers: terrain (what it physically is — world/terrain_types.gd: PLAINS/WATER/FOREST/MOUNTAIN/SAND/SHALLOW plus CLIFF and MARSH, the coast's own sorts), biome (its climate — world/biome_types.gd: temperate/tundra/swamp/desert, grown as one region each), landmark (world/landmark_types.gd: crater lake / hot springs / standing stones, and the traces somebody left — old camp / cairn), cave (world/cave_types.gd: where a cave opens — its mouth; the rooms behind it are their own map), and height (world/height_layer.gd: elevation, slope, rainfall and soil fertility — the physical field and what is derived from it per cell).

The terrain pitch (2026-08-04) — the height field is the spine
_classify always computed a height field, used it for three thresholds and threw it away. Keeping it is what every later pass is built on, and each of them replaced a placed or random thing with a consequence of the shape of the land:
  • Height & slope — 5 fbm octaves under a domain warp (a coast that bends instead of a circle) plus a ridged fractal squared under a slow spine mask, so highlands arrive as ranges with saddles. Steepness costs a walker time (to half pace), billed through both movers, so an automated haul pays exactly what an embodied march does.
  • Drainage (world/hydrology.gd) — priority-flood depression fill + D8 flow accumulation. No river is placed any more: channels are cut at quantiles of the land's accumulation (thread / stream / trunk), lakes are where the fill has to stand water, and every lake is given the outlet brook the fill says it has.
  • Coast sorts — steep shore → CLIFF, flat shore with a trunk river arriving at the sea → MARSH, flat shore otherwise → a beach (which needed no new id: it is SAND).
  • Orographic rain (world/orography.gd) — moisture is an air mass crossing the map from a seed-rolled wind, not a second noise field.
  • Forest density — rain × headroom under the treeline × footing on the slope, multiplied (each is a veto). The density is the wood stock, and the canopy sizes its crown off that stock. Species follow the place.
  • Soil fertility — flat × wet × (1 + bonus × log drainage): a floodplain. ROADMAP 14.5 wanted this and could not have it without a soil layer.
  • Traces — old camps at water with wood, cairns on passes, each with a cache on the ground. Not a new system: a landmark already carries naming, fog discovery and a chronicle line.
Two rules run through all of it. Every threshold is a quantile, never a constant — that is what holds the land share still so area_scale() does not move under the spawners. And rainfall and fertility are stored as ranks, because the raw fields are so skewed (the wettest cell can carry hundreds of times the median) that a value threshold calls half the island a desert.
TerrainManager is a facade, not a god object (17.2)
The autoload delegates to four owned layer objects on a shared CellGrid base (scripts/world/): TerrainGrid (type, wood/species/chop, walkability), BiomeLayer (biome grid, climate_offset, soaks), LandmarkLayer (landmarks, sites, warmth_at, the NO_WARMTH sentinel) and WaterBodies (salt mask, lazy body labelling, fresh/salt/still/pond). The public API is frozen — every TerrainManager.X seam kept its exact signature, so nothing calling it had to change. The facade keeps only what crosses layers or touches the tree: the felling signals, the salt/water-body invalidation in set_terrain, the composite drink seams (is_drinkable_water/is_still_water), and the season-driven freeze/drought state. The layers themselves are RefCounted — never in the tree, never aware of TimeManager or EventLog.

Caves

A cave is one cell on the world map — its mouth — and a map of its own behind it (world/cave_interior.gd, generated by cave_interior_generator.gd and owned by the CaveManager autoload). The mouth cell keeps its MOUNTAIN terrain, so the terrain renderer, the spawn rules and the walkable tally — and with them every spawn density — are exactly where they were.

How many: cave_count (18 since 2026-07-26, raised from 7) is a request, not a headcount — _carve_caves opens at most one mouth per mountain massif, so a world gets however many massifs clear cave_min_massif_cells (70) and cave_min_spacing (55): measured across five seeds on the 512² map, 13–17. Performance is not the limit and the number was set to saturate the land: an entered cave costs ~40 navmesh polygons (+0.5%) and ~1 MB. It used to cost ~4.5 ms on top of the wall-build freeze as well; since that freeze was traced to the navigation map's free-edge merge and switched off (2026-07-26), a wall costs ~21 ms with every cave in the world open — down from 1278 ms (tests/cave_scale_probe.gd, tests/nav_edge_probe.gd).

Each interior is laid out in a reserved band of world coordinates east of the island rather than in a separate scene. That is the whole trick: one World2D, one navigation map, one physics space, so nothing is unloaded and the surface simulation keeps running while the party is underground — and selection, right-click orders, the camera and every autoload work down there unchanged. TerrainManager stays the one map seam: is_walkable, is_underground, is_cave_dark, is_buildable and cave_sight_radius route off-grid cells to CaveManager, so no caller needs to know which side of the ground it is asking about. The band's one recurring trap (paid twice, 2026-07-26): GridManager covers only the 512² surface and answers “neither empty nor floor” for every band cell, so any predicate built on it silently rejects the whole underground. That is what made building impossible down there and destroyed a stack dropped in a cave (GroundItemManager._find_drop_cell found no cell and the caller threw the item away). Both now branch on is_underground and read the building/site dictionaries, which are keyed by world cell and have no bounds at all. Buildable.stands_underground() is the separate question of what may stand there: interior_placeable or stockpile. An interior is generated deterministically from the world seed and the mouth cell, so an unvisited cave costs nothing and still comes back identical.

The layout (re-carved 2026-07-26). The interior is scaled against the mountain massif behind the mouth — CaveManager._massif_cells flood-fills it lazily on first entry — on the square root of its cell count: 70 cells of rock give ~80 floor cells and ~29 steps of depth, 290 give ~275 and ~51 (tests/cave_layout_probe.gd, 200 seeds each). The same weight picks the cave’s form (fissure / warren / gallery / great hall), which drives its proportions, chamber count, corridor width and name; both axes are still drawn independently, so the ratio remains deliberately unrelated to the world’s. Chambers are wobbling ellipses, passages wander, two cellular passes smooth the result, dead-end spurs go nowhere on purpose, single rock pillars are left standing in the halls, and the interior is then trimmed onto what was actually carved. Pools (CaveInterior.Tile.WATER) are laid deep in the cave and draw back wherever they would cut a passage; TerrainManager routes is_fresh_water / is_still_water / is_drinkable_water through CaveManager.is_water, so underground water is real water to the drink order, the waterskin and the HUD — still, and never frozen or dried. Finds sit at least 8 steps along the walk from the exit (CaveInterior.depth_at, a BFS), and the renderer shades the floor with the same measure.

The doorway is one shape, drawn from both sides (world/cave_doorway.gd, 2026-07-26). CaveRenderer cuts it into the mountainside and CaveInteriorRenderer draws the same opening from within full of daylight, so walking in and looking back shows one door. It carries a rubble fan, a stone lip shaded from near-black to nearly white as it turns toward GamePalette.mountain_light, two or three chips out of the rim, an uneven doorstep and a darker throat behind the opening — everything hashed off the mouth’s own cell, so no two caves share a doorway and nothing is stored or seeded. It was tuned against screenshots, and the constants carry what the screenshots ruled out: too much rim wobble stops reading as a doorway, chips that reach too far in become fangs, and a bright stroke over the lit half is a smear of paint (hence a shaded band).

What a cave gives youDetail
Pitch darkSight collapses to 2 cells underground (against 20 in the open), tracked per interior (CaveInterior._seen) because the fog grid is sized to the surface. A carried torch adds 7 back — craft one in the Crafting tab (K) from 1 wood + 2 plant fibre. Without a light you explore blind.
ShelterRock roofs you: rain, snow and hail cannot reach, and wet clothes dry as they would under any roof.
Constant 8 °CUnderground replaces the sky entirely — no season, no weather, no day. A refuge from a −15 °C winter night and from a 42 °C desert afternoon. (Building underground is not possible yet, so there is no fire down there to warm you further.)
Finds2–5 spots per cave (mushrooms, rock, loose stones), seeded at least 7 cells from the exit, so a cave pays the party that explores it rather than the one that peeks in.
Going throughStanding on a mouth (or on the exit tile) takes a character through — and since 2026-07-25 a right-click on either resolves to Command.ENTER_CAVE for the whole selection. It had to: a mouth is a hole in a MOUNTAIN cell, so the click fell through to “mine the rock”. A mouth is also only one cell with rock on every side, so CommandController._mouth_click_cell snaps a click on that rock (within MOUTH_CLICK_CELLS) to the mouth itself — the cell, not just the verb, since the order carries the clicked cell with it. Open ground beside a cave is left alone.
Crossing the thresholdAn interior has no navigable link to the surface, so CaveManager.route is the portal seam every mover asks: a walk that crosses is really two walks, aimed at the exit tile (or the mouth) first. That is why rule programs keep running underground — a thirsty companion leaves the cave by itself, because the way out is the first leg. World searches centre on the mouth while inside (CaveManager.search_center); reach tests still use the real cell.

Key tunables — scripts/world/world_generator.gd

GroupExports (on the WorldGenerator node in Main.tscn)
Shapeworld_seed, height_base_frequency, height_octaves, height_warp_amplitude, height_ridge_*, height_spine_*, island_falloff, water_share (0.1385), mountain_share (0.045), sand_share
Water networkriver_thread_/mid_/trunk_share (0.02 / 0.006 / 0.0012 of the land's flow), river_mid_/trunk_half_width (1.2 / 1.7 — a trunk stays ≤4 tiles, the ceiling the bridge-only rule needs), lake_min_cells (120), lake_min_depth (0.045), lake_min_rain (0.20 — a basin drier than this holds no lake)
Runoffrain_runoff_floor (0.7) + rain_runoff_exponent (1.5): Hydrology.flow_accumulation takes a per-cell runoff array, so drainage is a water budget rather than an area budget. Deliberately mild — past a gentle setting the redistribution starves the map's settle sites
Desert waterdesert_channel_tier (2 = trunk only) and desert_channel_half_width (0.0). _flood_water_cell is the one veto: it refuses a desert cell unless the caller vouches for it, so the lake pass, the outlet brooks, the elbows and the disc a border river stamps sideways all obey it — before, only the channel loop was gated. Measured over three seeds, desert water cells fell 1486/1769/1126 → 99/18/429. A crater lake may no longer sit in a desert either; the guaranteed oasis pools are untouched and are why the country is still crossable
Coastcoast_cliff_slope (0.013 — the shore's 85th percentile), coast_delta_radius (4)
Forestforest_share (0.22 at the cut; the biome pass lifts it to ~30% of the land), forest_treeline (0.46) + forest_treeline_north_drop (0.16), forest_slope_bare, wood_per_forest_cell (8), birch_/spruce_/oak_share
Soilsoil_slope_barren (0.020), soil_flow_log_full (9.0), soil_flood_bonus (1.5); the farm end is JobRunner.farm_barren_work_factor (0.45)
Biomestundra_share, desert_share, swamp_share, swamp_bog_count, biome_terrain_affinity, biome_edge_wander (0.18) + biome_edge_lobes (3.0) — the border noise, sized relative to each region's own width so the shape holds at any map size
Landmarkscrater_lake_count/radius, hot_springs_count/radius, standing_stones_count/radius, old_camp_count/radius (5), cairn_count/radius (4) + cairn_max_slope, landmark_min_spacing
Spawnspawn_water_dry_quantile (0.85 — the floor is a quantile of how far this map's land lies from a drink, never a constant), spawn_water_max_walk (90, a hard ceiling), spawn_open_land_share, spawn_wood_share (0.12)
The biome & desert pass (v0.10.0) — four things that were quietly wrong
  • Every border was the same ruled line. The compass half of a biome's suitability is a linear ramp, and an iso-cost contour over a linear ramp is a straight line — so every map got the identical wedge in the identical orientation. The fix is a warped fbm field applied as a potential on the growth flood's priority, never as a step cost (a step cost averages away along the path). Tundra border length grew 43% on the test world, and both tundra and desert are still exactly one connected region — which the suite now asserts. The tint mottles per cell to match; a flat wash is what made a biome read as a coloured sheet, and the terrain shader's edge blend compares terrain ids, so it never fires on a biome-only seam at all.
  • The desert was not where it does not rain. Placement weighted dryness against a fixed south pull 50/50, which the seed-rolled wind can contradict outright — on seed 777 the desert sat at rain rank 0.559 while the tundra held the real rain shadow at 0.093. Dryness now carries 0.8 of the weight, and the desert takes ranked fallback seeds so it cannot vanish when the tundra claims the driest ground first.
  • A biome that grew into a dead end stayed there. Seed 777 walled its desert into a pocket and produced 24 cells of a requested 29000. A region that comes up short is now rolled back and re-seeded.
  • SiteQuality had drifted unwatched — the suite only ever scores a 256² test world. Measured on the shipped map, the best cell on seed 12345 scored 0.134 against a 0.50 threshold: no good settle site existed anywhere, before the desert was touched at all. Stone was the cause (median walking distance 83 cells against a range of 20, so a linear falloff zeroed it almost everywhere — and the four components multiply). Walking ranges went 12/12/20 → 20/28/64; three seeds now report 0.048% / 0.077% / 0.046% of cells good, back inside the documented 0.04–0.12% band. Console sites.
Tuning the generator — the two traps that cost the most
Every carve knob moves area_scale(). Spawn counts are densities over REFERENCE_WALKABLE_CELLS (203000), so a change that eats walkable land silently thins every resource and herd in the game. water_share fell 0.185 → 0.1385 across this pitch purely to pay for what the drainage and the cliffs carve. Re-run tests/river_probe.gd after touching any of them and check the tally is back in band (measured 201–203k, scale 0.99–1.00).
The spawn's wood rule is correctness, not difficulty. Since the rain became orographic, "dry" and "barren" are the same place — the rain shadow grows no forest, so no fuel, no fibre, no forage. Aiming the opening at the driest sixth alone put the party where nothing grows: tests/run_playtest.sh measured 3 of 12 companions surviving four days before the pitch, 0 of 12 after it, and 5 of 12 once spawn_wood_share went in. A start with no fire is not a hard start but an unwinnable one — difficulty belongs in spawn_water_dry_quantile, never in an accidental barrenness.
Map size & density
Grid size lives solely on the GridRenderer node (512×512). Nothing technical caps it — the nav bake is chunked (chunk_cells 64, ~0.1s at 512², one wall re-bakes only its chunk ~5ms), the navigation map skips Godot's quadratic free-edge merge (the wall-build freeze in person: 983 ms → 21 ms per wall, no path changed — flush-trimmed chunk seams connect exactly and never needed it) and every spawn count is a density via TerrainManager.area_scale() (walkable land over REFERENCE_WALKABLE_CELLS ≈203000). 512 is a design choice (3–5 cycles/run), not a performance one.

Rendering: world/terrain_renderer.gd (per-cell texture), terrain_snow.gdshader, tree_canopies.gd (crowns draw over walkers at z 4; _apply_walkers feeds the reveal+sway shader), room_floor_renderer.gd, fog_overlay.gd. All world colours live in resources_data/palette.tres via GamePalette. Nav: walkable_navigation_region.gd; collision: terrain_collision.gd.

The player’s map lenses roadmap 14.5

Seam. WorldOverlays.OVERLAYS is the registry — a lens is a row (title, hint, a per-cell colour function), and cycle() walks off → zones → soil → climate → rainfall → off, so no lens can be reached without passing through the bare map. _regate() is the ONE fog gate: it zeroes the alpha byte of every cell FogManager.visibility_state() does not call discovered, so a lens can never scout. The debug lenses (sites, forage) stay outside the registry at z 120, above the fog, on purpose — a red/green “settle here” map would hand the player the one judgement the design pillar reserves for them. Console overlay. Write-up: docs/world-overlays.md.

Resources & animals

Seams. A resource type is a .tres (resources/resource_type.gd); a creature is a .tres (resources/animal_species.gd) — a new creature needs no code branch. ResourceType.restock decides where a source comes back and ResourceType.tires() whether it wears out under foraging (8.3); HarvestCycle.work_node is the one harvest seam; Animal._can_enter is the movement seam (flies); ItemCatalog holds per-kind nutrition/shelf life.
ConcernFile / configNotable fields
Resource definitionsresources_data/resources/*.tresspawn_terrain, spawn_biome, yield_item, harvest_time, work_scale (rock/fish 10), restock, spawn_seasons, regrow_days, spawn_abundance, fatigue_per_unit, fatigue_recover_days, fatigue_regrow_penalty
Spawning & restockworld/resource_spawner.gdcount_per_type (120, a density), _target_count, _pick_restock_cell
The land wears out (8.3)resources/resource_node.gd, world/forage_overlay.gdforage_fatigue (0..MAX_FATIGUE 3), regrow_days_now(), fatigue_share(); saved as an additive fatigue key; BuildingManager.settlement_pressure() is what wildlife reads
Animal speciesresources_data/animals/*.tresflies, flee_radius_cells (0 = never flees), settlement_shyness, speed_variance, carrying_capacity, initial_population, food_yield, spawn_near_fresh_water_cells, group_chance + max_group_size (the share that keeps company, and how big it gets), home_range_cells, prey_max_body_scale (the predator seam — a size ceiling, never a species list), hop_height, horn_size (a spike curving out and forward — antler_size is the branched rack, and they are two fields on purpose)
The roster's budgetresources_data/animals/*.tres, tests/test_resources.gd404 starting animals and 770 of carrying capacity across 16 species, pinned as a total in the suite. It is the one thing no per-species field records, so a new creature must buy its room out of it — the three added in 0.20.0 were paid for by trimming the four commonest
Animal behaviourresources/animal.gd, world/animal_spawner.gdParametric _draw; breed_check_days (no per-frame registry scan); _can_enter
Harvest & fellingresources/harvest_cycle.gdchop_treeTerrainManager.chop_wood; HARVEST_TIME_SCALE 1.8
Trap
The herd is hundreds of animals — nothing in the tick may scan the whole registry (a naïve mate search cost 47 ms/frame vs 1.4 ms). AnimalManager.count_of() is a running tally, so _spawn() calls setup() before add_child(). And "every animal stands on walkable terrain" is false — fliers only obey the map edge.

Companions

The companion rig is scenes/player/Player.tscn / class_name Player, instanced three times as nodes Character1/2/3 (a node name is a save key — rename via SaveManager.RENAMED_CHARACTER_NODES). Behaviour is split across small controllers on the rig.

Controller / fileOwnsKey seams / tunables
player/player_stats.gd (+ player_stats_config.gd)The six stats, decay, sleep_debtstat_changed signal; config in resources_data/stats/*.tres
player/vitals_controller.gdEating/drinking application, healing gatesheals_at_rest() (a bed's), regenerates() / regen_blocker() (the waking one), begin_meal/drink_if_below (the ONLY consumption entries)
player/temperature_controller.gdDrift toward felt warmth_target_warmth() (climate offset, then campfire maxf); in_danger_band()
player/wetness_controller.gd / comfort_controller.gdWet debuff, room-comfort Mood_standing_in_swamp; room_quality_at
player/illness_controller.gdAilment onset/cureruns whatever player/ailments.gd declares
player/ailments.gdWhat each sickness IScause, course, cure — a new one is one entry
player/loadout.gdWhat a companion works with and wearshas_tool(), work_multiplier(activity, worked), worn(slot)/warmth_bonus(), vessel_of() (static)
player/character_skills.gd (+ skill_set_config.gd)Learning by doingpractice() = XP entry, multiplier() = effect; resources_data/skills_config.tres. Re-priced 2026-08-20: xp_base 100 (10× slower), per_level_bonus 0.08, xp_rate 0.05/s unchanged — the pace moved, not how XP is earned. Console skill curve
player/character_level.gd (+ character_level_config.gd)The general level 1–40add_xp() is the ONE entry and it is called from exactly one place, CharacterSkills.grant_xp(); spend_point() the ONE spend. The level is derived from lifetime XP, so a re-tune re-levels every companion honestly. resources_data/character_level_config.tres: xp_base 75 (15× slower), points_per_level 12, attribute_cap_level 13. Console level curve
player/job_runner.gdExecutes jobs/needs; the tuning heartsee below
player/command_controller.gd / worker_commands.gd / worker_needs.gdRight-click resolution, order execution, need handlershold/drag thresholds; _fetch_from_stores
player/character_profile.gd / nordic_name_generator.gdIdentitydisplay_name() = the name seam; disposition (hidden), recruited, joined_day
player/renegade_controller.gdFalse companions (5.4b)work_factor() (via the ONE work seam), desert_day (drawn once, saved), _tell()
world/wanderer_controller.gdA rig that is NOT in the party (5.4)its PRESENCE is the flag (Player.is_wanderer()); Phase, wanderer_at()

How a companion is drawn — scripts/player/companion_figure.gd 2026-08-06

One painter, one look. CompanionFigure.draw(canvas, feet, unit, look) paints the figure in cell coordinates, and everything calls it: the map figure, every CharacterPortrait (HUD row, character sheet, transfer window, companion window — framed on head and shoulders), and the character creator's previews. Player draws nothing itself. The portrait's old private bust, with its own hair pools and its own beard rule, is gone — that is what let the party row stop looking like the companion on the ground.

SeamWhat it decides
CompanionFigure.derived_face/_shape/_hair/_skin/_marks(key)The look the dice give an identity. All fold off identity_seed(), which mixes String.hash() first — folded raw, Character1..3 collapsed onto two of six faces
CharacterProfile.hair_shape() / hair_color() / face_trait() / skin_color() / face_marks()"Chosen beats rolled", decided ONCE. The five look_* fields are the only part of a look that is not derivable, so the only part get_state() saves. Player's same-named seams delegate here
Player.face_expression()The face actually worn: the identity trait, overridden by trouble. Tiers come from StatVisuals.tier(), the same seam the HUD bars read, so a face cannot disagree with its bar
Player.hair_color()Age-greying lives on the companion, so a grey head is grey on the map and in the row alike
_kit_flags()What the figure wears — read off the pack, because carried is equipped
WorkPoses player/work_poses.gdWhat each job LOOKS like — fourteen profiles, the tool drawn into the hands and taken off the back for as long as it is held. It runs on its own beat, not work_ratio, and there are two work channels so a pose and the thing it is working on cannot fall out of step. The beat is fed by the same clock that pays for the labour, which is why a tired worker visibly swings slower. Console pose
Unset is not always 0
look_marks uses -1 for "derive", because 0 is a real answer: a player who deliberately picked a clean face must not have freckles dealt to them. look_shape uses -1 and the two colours use alpha 0 for the same reason. Any future flag-shaped look field needs the same treatment.

A drawing change is only reviewable if it can be seen: tests/figure_sheet.gd renders every face, kit piece, view, silhouette, tone and mark into one PNG, and tests/creator_shot.gd renders the creator panel. Both want a real display (DISPLAY=:1). Console: look, expression.

Recruiting — scripts/world/wanderer_spawner.gd

A wanderer is a companion rig (Player.tscn) that has not joined — not a second kind of person. That is the whole design: its identity, carry, drawing and save entry are the ones every companion already has, so recruiting is PartyManager.recruit() → rename onto a free Character<N> (a node name is a save key) + Player.join_party(). A stranger is frozen while it waits (Player._halt_survival) and reveals no fog. Leaving runs the other way: Player.leave_party() attaches a fresh controller in LEAVING and the rig walks off the map and frees itself — expulsion and desertion share that one door.

Spawner knobs: first_possible_day (6), min_days_between (6), arrival_chance (0.22/day), linger_days (3), renegade_chance (0.3), approach_cells (45). One stranger on the road at a time; a full party is sent nobody. Console wanderer [spawn [renegade]|here|panel|recruit|send|desert].

Save trap
SaveManager._collect_characters walks the TREE, not a name list — the party grows now, so CHARACTER_NODES would be a lie the moment somebody joined. A restore builds rigs the fresh world doesn't have (_rebuild_character) and frees Players the save doesn't know. The WandererController must be attached before the rig enters the tree, or it registers a hotkey slot it isn't entitled to.

Equipment — scripts/player/loadout.gd (17.1)

Seam. Loadout is a component Node on every rig and the ONE answer to "what does this companion work with, carry water in, and wear". Its effect flows through JobRunner.work_delta()Player.work_speed_multiplier() — the same single work seam skills, fatigue, wetness and illness already stack on. Never a second bonus path.

items/equipment_def.gd (.tres in resources_data/equipment/) is the data seam: id, slot (TOOL/VESSEL/HEAD/CHEST/HANDS/LEGS/FEET — append-only, a slot is a save key), applies_to (the same StringNames the skills use), work_multiplier, max_durability/wear_per_work_second, repair_workshop/repair_cost, warmth, and defense (shipped inert for 4.6). EquipmentCatalog registers them. A new tool is a .tres plus one preload line — the same rule animals and buildables follow. Today: axe (×1.5 lumberjacking, 400 durability, mended at the lumber camp for 1 wood), coat (+6°) and hat (+2°).

Carried = equipped (there is no equip gesture yet), so has_tool() reads the pack and worn gear is just carried items with tool: true in the ItemCatalog — which is what keeps a haul from shelving someone's coat. Warmth is applied by TemperatureController right after the biome offset as insulation (clothing_comfort_cap 20°): it lifts a cold body toward comfort, never past it, so carried gear is never a liability you can't shed. Wear rides the raw delta on the exact tick that reads the bonus, so it is deterministic — no dice, the contamination-load principle. Repair is Command.REPAIR (right-click the matching workshop). Console equip, durability, warmth.

Known limit
Durability is keyed per companion, not per item — the Inventory is id + age-batch with no room for per-instance state. Handing a worn tool over gives a fresh condition. Waits on item-instance state; don't paper over it.

The big tuning surface — scripts/player/job_runner.gd

Movement/work: move_speed, work_seconds, mine_seconds, fish_seconds. Needs/thresholds: need_trigger_ratio/recover_ratio, emergency_ratio, warm_seek_below/cool_seek_above, despondent_below. Automation: base_rule_slots (12), dev_self_care (re-enables the dormant self-care tiers — tests / a future easier difficulty). Hunting: hunt_range_cells, hunt_base/min/max_hit, hunt_giveup_seconds. Fatigue penalties live on player/player.gd (fatigue_walk_penalty, fatigue_work_penalty, mood_work_penalty).

Design invariant
There is no built-in self-care on any current difficulty — companions act only on orders and rules; passive consumption is gone. The comfort/emergency tiers are dormant behind dev_self_care. Don't silently re-add safety nets.

The bedroll is a bed, not a charm 2026-07-26

Seam. resources_data/buildings/bedroll_laid.tres is the placed piece; the item and its kit entry (bedroll.tres, yields_item) are unchanged — the kit is made at the bench now rather than on a 1×1 craft spot. Sleep quality rides on the new Buildable.sleep_rest_factor (0.7 here, 1.0 on every built bed), read in JobRunner._rest_in_bed.

Until 2026-07-26 JobRunner.has_bedroll() was the mechanic: carrying one upgraded a rough night from inside the pack. On the user's decision it must be placed first, so rough_rest_factor()/rough_metabolism_scale() no longer read the carry at all and has_bedroll() now means only “there is one here to unroll”. Everything else goes through the ordinary bed path — it is claimed by reserve_free_bed, walked to, slept in, saved and demolished like any bed.

Placing and packing up. BuildingManager.unroll_bedroll(character, container) lays one out on the nearest free cell within 4 (both orientations tried, since it is 1×2), paid straight from the carry (payable_from_carry) and stamped with BuildingNode.unrolled_by — the companion's node name, because that is what the save file already keys characters by. JobRunner._release_bed() is the one place a night ends, so the pack-up hangs there: self_unrolled_bed() gates it, so a companion rolls up only what it laid out itself and a bedroll the player placed stays put — that is how you tell an automated companion where to sleep. pack_up() calls remove_building(node, false): no half-cost salvage, because half of a one-item bedroll is nothing. Player-facing it is JobRunner.Command.PACK_UP on the right-click ring beside Sleep. Console bedroll.

The night watch — JobRunner.Command.WATCH 2026-07-28

Seam. BuildingManager.night_watch_advice(node) is the one answer to “does tonight need somebody sitting up with this fire”. It returns {} for anything that is not a finite-fuel heat source, else needed/cold/fire_hours/night_hours/ coldest_c/reason — the fire panel and the console both read it, so the sum exists once.

The arithmetic behind the warning: a campfire filled to max_burn_seconds (324 s) burns 7.2 in-game hours and the night is twelve, so a party that all lies down around one on a cold night wakes up short a companion. Cold is the whole gate — the reading is taken at 03:00, the coldest hour, through WeatherManager.get_effective_temperature() asked about a future hour, because a watch is set at dusk while it is still mild. The order itself holds position inside the heat radius and refuels on every tick the fire will take, ends at first light (not at the next dawn edge — a watch set at dusk must not end immediately), and costs the watcher a night's sleep, which lands as ordinary sleep debt the next day. Console watch.

Sleeping and mending — player/vitals_controller.gd 2026-07-29

Seams. VitalsController.SLEEP_METABOLISM_SCALE (0.5) is THE sleeping burn, read by JobRunner._rest_in_bed, its rough branch, rough_metabolism_scale() and GatherComponent. Waking repair is regen_per_second = SLEEP_HEAL_REFERENCE (0.12, a good bed) × WAKING_HEAL_SHARE (0.3), and regen_blocker() names the one thing stopping it.

Buildable.sleep_metabolism_scale was deleted rather than set to 0.5 on every bed (2026-07-29, user decision): four beds each carrying their own copy of one number is how they came to say 0.5 / 0.6 / 0.75 / 1.0 in the first place. A bed now pays in rest, warmth, shelter and healing only. The waking trickle never adds to a bed's rate — _process applies the shortfall, so a sleeper mends at the bed's pace and 30 % cannot quietly become 130 %; a bed that heals less (the laid-out bedroll heals nothing) is topped up to it instead. Temperature is the only thing that still moves a sleeper's burn: the cold-hunger and heat-thirst terms keep running, scaled by the same half. Console regen.

A worker that cannot work says so — JobRunner._report_no_work(reason)

Seam. One funnel for every trade's “I am standing here for a reason”, latched on the reason string rather than a flag per handler, so a repeat is quiet and a new problem is not.

Until 2026-07-27 only the fisher announced it; a lumberjack with no forest, a stonemason with no rock face, a hunter with no bow and a water carrier with no source returned zero velocity and stood there, which from outside is indistinguishable from working. A farm in winter stays silent deliberately — dormant fields are the rule working. drop_work() now really does drop every alert latch, including _danger_reported, which had been swallowing the first mortal-danger alert of the next episode. The full tick order and the four layers are in docs/automation-and-jobs.md.

Backstories & wishes Milestone 15

Seam. Both derived() picks roll no dice: the attributes are rolled first and BackstoryCatalogue ranks its 75 authored pasts by fit_score against that hand (ties broken by a per-person hash), then WishCatalog derives 1–2 of its 27 wishes from the backstory's tags. A backstory moves nothing — no attribute, no skill, no item — and neither reads the hidden renegade disposition (a headless test greps for it). A wish is fulfilled only by a signal the game already emits; there is deliberately no grant hatch. Mood is a CEILING, not a bonus: a neglected wish lowers that companion's cap by 12 and pushes Mood down to it faster than the dry-recovery lifts it, so it settles there. Two neglected wishes cap at 76, and JobRunner.despondent_below is 15 — a test asserts the gap, so wishes can never stop anybody working. Console backstory, wishes. Write-up: docs/backstories-and-wishes.md.

Automation internals

Seams. A program is AutomationProgram (an ordered AutomationRule list); AutomationInterpreter evaluates it top-down (first feasible triggered rule wins; UNTIL latches). Actions are existing behaviours — rules only choose which runs.
FileRole
player/automation_program.gdThe rule list + block budget accounting
player/automation_rule.gd / automation_condition.gdOne WHEN→DO UNTIL rule; a sensor condition
player/automation_interpreter.gdTop-down evaluation, latch, live diagnosis (ACTIVE/blocked/waiting)
player/work_actions.gdWorkAction + one subclass per trade (Lumberjack / Fisher / Farmer / Stonemason / Hunter / Hauler / Sleep): feasible(), tick(), label(). The shift's legs are re-asked every tick in order — lumberjack: tidy loose wood, deliver the pack to trade_yard(), load the trunk, fell; fisher: deliver only on a pack full of fish, then fish. _find_worked_tree() ranks by banked strikes (ties to the nearest), which is what makes a shift finish what it started
ui/automation_panel.gdThe rule editor (Automation tab)
autoload/task_board.gd + buildings/building_task_rule.gdBuildings post need-driven tasks; the "Take a task" block claims the nearest. Headless since 0.18 — no panel, no per-building switch in the UI; tasks / tasks silence in the console are the only doors. AutomationInterpreter._feasible still refuses the block without a planning table standing (so the rule reads blocked), but the editor no longer disables the word — cards alone decide what may be written
player/job_runner.gd (hauler)hauler_radius (30) is the plain round; _find_yard_to_clear() swaps it for the union of the zones under _search_center() when the companion stands in any (scan widens to 512 cells — the zone is the fence), decided fresh every tick with no latch. Source is BuildingManager.yards_holding_near (yards only), sink is haul_target_in_reach (flagged stockpiles only), and the delivery leg is neither range- nor zone-gated so a loaded companion is never stranded
player/work_actions.gdFreeTimeActionOff duty and "no rule applies" are ONE state, reached through three doors into the same run_free_time() ledger (automation off, a program with nothing to say, a written Free time rule). Holds the leisure anchor; the fence is [room, cave, roof] compared as one place, so an indoor companion stays in and an outdoor one stays out. Console rest/rest <hours>/rest here
player/automation_cards.gdThe catalogue: 48 table rows plus the 3 authored finds = 51 words, as AutomationCard rows — kind, glyph, mark key, the count of deeds, rule text, flavour. The three findable specials are .tres files
player/card_deck.gdOne deck per companion (a node on the Player) — owned cards + every counter. THE ownership seam: nothing else may answer "may this companion write that word"
autoload/card_collection.gdFans a banked mark out to the right deck, watches the world-wide marks (sunrise, season, weather) and reports an unlock
autoload/card_finds.gdDeals the eight copies of each findable word onto the map — preferred landmark or cave first, overflow into the far country
ui/cards_panel.gd / card_sheet.gdThe Cards tab (V) and the 63:88 sheet every card is drawn on — the only body a card has since the vocabulary bar was removed
One trade, one place (17.3)
Each job is a WorkAction object rather than a _do_* branch: JobRunner.run_job ticks the matching action and job_action(job) hands it out. The convergence that buys: AutomationInterpreter's per-job feasibility switch is gone — a WORK rule asks job_action(job).feasible(), so the WORK rule, the task-board path and the action's own tick guard all read the same answer. It is a deliberately thin strategy: the runner keeps the shared handlers, the machinery the orders and the suite call, and the one work accumulator.

Work actions are gated by standing workshops (Buildings) — except SLEEP, FREE and HAULER, which is_job_unlocked returns true for unconditionally: there is no hauler's hut, so the card is the only gate. Old saves migrate a painted schedule into time-window rules on load. Console: rules, prog, tasks, shift, hauler, auto, cards, deck.

Buildings & construction

Seams. Every building is a Buildable .tres (buildings/buildable.gd) — a new building is data, not code. BuildingManager._serves is the action-area seam (every find_*_near passes through it). Buildable.paint (CHAIN/AREA/single) drives placement. makes_walkable + TerrainManager.set_walkable_override is the bridge seam. _stand_by = which cell to use a building from. Buildable.cost_alternatives + pick_cost = the "3 twigs or 3 wood" seam: a site commits to ONE variant, so everything downstream (delivery, the fetch trip, the panel, the save) still sees a plain cost dictionary. RecipeCatalog.is_station(id) is what makes a building a WORKSHOP WITH A QUEUE (19.1) — derived from the recipes, never a flag; JobRunner._do_craft is the ONE handler the CRAFT order and the CRAFT task share. Buildable.has_yield_store() is the fence for the WORKSHOP YARD (2026-07-29). The carried kits go through a second door (2026-08-16): Command.HAND_CRAFT, reached only through WorkerCommands.begin_hand_craft() — no site, no ghost, no store, paid out of the crafter's own pack and banked through work_delta against HAND_CRAFT_SKILL (building). Its order is _do_craft's: bank the labour, THEN pay, THEN pocket, which is what makes an interrupted craft cost seconds and never materials. Buildable.yields_item is still the fence between a kit and a building, and craft_seconds() its labour. A queue shops its own yard first (2026-08-20): JobRunner.craft_sources / has_cost_from answer yard → pack → stores, a half-covered cost drains the yard and takes the rest off the pack, and only a shortfall against both walks to the stores. Console craft sources.

The workshop yard, and working a building by hand 2026-07-29

Seam. A yard is a StockpileInventory in the same BuildingNode.stock field a stockpile uses — so the city-store aggregate, the map drawing, the save and the demolish drop all keep working with no new code: all four key off the field, not the flag. What makes it a yard rather than a shelf is that Buildable.stockpile stays false, which is what keeps haulers out and leaves a right-click on the hut meaning “work here”. Data: yield_store_items (empty = no yard) and yield_store_tiles (1 = 20 units) on the .tres.

The order is WorkerCommands._cmd_work, and it deliberately owns none of the doing: it walks the worker in, latches reported for duty — it has to latch, because each trade's own search sends the fisher to the water and the lumberjack into the trees, so “am I still at the hut?” reads false a second after arriving — and then hands every frame to run_job, the same WorkAction the rule program and the task board drive. One implementation per trade. It resolves below REPAIR and CRAFT in CommandController, so no click that meant something yesterday means something else today. Console yard.

ConcernFileNotes
Craft recipesitems/craft_recipe.gd / items/recipe_catalog.gdA recipe is not a Buildable: inputsoutput, work_seconds, skill, station. New recipe = a .tres + one preload line. The queue lives on BuildingNode.craft_queue as plain dicts (saved); Sensor.CRAFT_QUEUE posts it
Building definitionsresources_data/buildings/*.trescost, cost_alternatives, size, category/secondary_category, action_radius, build_seconds_per_cell, room_warmth, comfort, speed_factor, heat_output/radius, burn_seconds, yields_item, task_rules, preserve_per_hour/preserve_open_air/preserve_hand_fed (the last one is THE larder fence: true = cures only its own stock and stops when full — the drying rack; false = draws from CityInventory — the smokehouse)
Placement / ghost / paintbuildings/build_controller.gdrequest_build_path; CHAIN walls, AREA floors; ghost console
Placement rules, rooms, servingautoload/building_manager.gdcell_placeable, _room_id_at (≤400-cell flood), warmth_at/sheltered_at, adjoining_water_body, floors in _floor_cells
Construction sitesbuildings/construction_site.gdFetch/deliver/build; saved (incl. its committed cost variant); reconsider_cost re-picks while nothing is delivered; cancel_site drops materials. order_group is THE commit seam (0 = none, never chained onto): BuildingManager.begin_order_group() stamps one per gesture, find_site_in_group() has no radius at all, and WorkerCommands._chain_or_finish goes through it — which is what ended the old 8-cell hand-on. BUILD_CHAIN_CELLS (8) survives only as the bound on the shopping list; teardown keeps its own 24-cell chain
Site supplyplayer/worker_commands.gdPack first, then the store nearest the site — yard or stockpile, no preference — on all three build paths (order, BUILD rule, claimed task). The refusal distinguishes "none anywhere" from "out of the site's reach". Console buildorder prints the whole shopping trip
Building node & panelsbuildings/building_node.gd, ui/building_panel.gd, construction_site_panel.gdstack_at = "what lies on this cell"
Save trap
Restore order is ground → structures → interior fixtures (SaveManager._restore_rank): a floor can't be laid on an occupied cell, so restoring a bed before its planks loses the floor silently.

The field year, and the nine crops 2026-08-30

Seam. BuildingNode.field_work_due(season) is THE seam — it answers SOW / TEND / HARVEST / NONE and everything asks it: the order (WorkerCommands._cmd_work), the rule (WorkAction.FarmerAction.feasible), the task board's FIELD_WORK sensor and the panel's status line. advance_field_work(work, seed_paid) is the ONE door that moves a field, and it returns {units, seeds}. A crop is a CropType .tres (buildings/crop_type.gd, listed by CropCatalog) — a new crop is data. plants_its_own_produce() (seed_item == yield_item) is what folds the harvest and the seed-back into one number; perennial is what makes _close_field_year keep field_sown and the winter arm sleep instead of unsowing. The crop list is derived, not chosen: a test walks resources_data/resources/*.tres and fails if an edible plant has no crop. Console field. Full write-up: docs/farming.md.

One drawing per plant — the ripe field IS the wild stand 2026-08-30

Seam. PlantGraphics.draw() (resources/plant_graphics.gd) holds the eight plant drawings that grow in two places, and BOTH ResourceNode._draw and BuildingNode._draw_field_crop go through it. PlantGraphics.Plant is its OWN enum — ResourceType.Look and CropType.Look are append-only save formats and neither may constrain the other; ResourceNode.shared_plant() and BuildingNode.crop_plant() meet in the middle, and −1 means “grows in one place only”. maturity is ONE draw_set_transform about the foot of the cell, so at 1.0 it is the identity — that is what makes the rule a property of the code rather than a resemblance somebody maintains. Colours are entirely the caller's, and the crop's are copied off the wild .tres. The field keeps only the ground (_field_water, _field_litter). Review sheet: tests/field_sheet.gd, whose last column is the wild stand.

The kitchen and the healer’s hut 2026-08-30

Seams. A dish is a .tres recipe with station = &"kitchen", so the ordinary station queue is the only door and the kitchen unlocks_job = -1 — there is no cook trade, only the cooking skill. Dishes.KINDS maps a dish to one of four boons and NourishmentController keys them by boon, not by dish (so a second dish of the same kind replaces); the grant fires in VitalsController._begin_bite, the single mouthful funnel, which is why the sheet's double-click, the EAT rule and eating out of a stockpile all count. Four landing points: TemperatureController._finish_target, Player.work_speed_multiplier(), speed_multiplier(), rest_multiplier(). — The healer's hut is heal_per_second = 0.18 against a good bed's 0.12, and Rescue.remedy_for(cause) is the seam that turns a down-cause into carry-to-warmth / carry-to-water / carry-to-bed / fetch-and-tend / vigil. The hut's existence, not the card, is what makes TaskBoard post TEND. Console kitchen, healer.

Items, inventory & storage

Seams. ItemCatalog (items/item_catalog.gd) is the ONE data seam for weight, nutrition and shelf life — there is no generic "food" item, every source yields its kind. ItemGraphics.draw() is THE inventory look. Inventory is weight-based (capacity_kg, space_for) with FIFO age batches. StockpileInventory.tile_layout() = one type/tile, 20 units; CityInventory aggregates.
FileRole
items/item_catalog.gdPer-item weight / nutrition / moisture (thirst from eating) / shelf_days / rest_factor
items/item_graphics.gd / ui/item_icon.gdProcedural item drawing (world + inventory)
player/inventory.gdThe carry: kg budget, take_amount/take_all_of, age batches
buildings/stockpile_inventory.gdPhysical tile store, storage rules
items/ground_item.gd + autoload/ground_item_manager.gdDropped stacks (age as they lie)
player/world_hand.gd + ui/character_sheet_panel.gdONE hand (owned by the sheet, character_sheet group); resolve order site>stockpile>hearth>companion>ground
ui/transfer_panel.gdCarry↔pile and carry↔carry exchange window
ui/workshop_view.gdFireView for the trades: THE picture of a workshop, hung in both windows one can open (BuildingPanel and StockpilePanel) and asked for by WorkshopView.shows_for(buildable). Painted with BuildingGraphics.draw() — the map's own brush, keyed by Buildable.Style and never by id — so a new .tres gets its portrait free. Stateful (IDLE/READY/WORKING), and "it moved" is sampled from craft_worked and the yard's contents, because nothing on a BuildingNode records who stands at a bench

Time, weather & temperature

Seams. TimeManager only tracks & broadcasts (time_changed/day_changed/season_changed) — it knows nothing about gameplay. WeatherManager.get_effective_temperature() is the one weather-temp seam. Ambient feeds TemperatureController._target_warmth(). WeatherManager.precipitation_at(cell) is THE "does the spell reach here, and how hard" seam (v0.10.0; a rate multiplier 0.3–1.7 since 0.19.0, and exactly 1.0 at the middle of a band, so an average spell is the old game). is_precipitating()/is_precipitating_at() are now defined as it being above zero, so there is no second per-cell rule to drift out of step with the desert mask: the sky stays one sky and the visuals are untouched by design, but a rain/snow/hail spell reaches nobody in the desert, and no snow lies there. Every consumer that used to ask the bare is_precipitating() — wetness, hail damage, snow cover, drying — asks the per-cell one instead.
18.1/18.4. next_weather is rolled when a spell starts; approach_progress() is THE one number the three ambient tells ease on, and no UI may read next_weather — naming the sky belongs to SkyReader. open_air_drying_factor(cell) is THE open-air drying seam (a soaked body and a drying rack scale their own duration by it), snow_cover_at(cell) THE snow seam (0 in the desert and underground), bad_water_scale() the rain-churn multiplier on an untreated litre, and air_temperature_at(cell) the one sum of effective temperature + climate offset.
0.19.0. precip_strength (0..1) is the wind's twin — rolled per spell from a band, drifting inside the spell, pinned by force_weather(), one line in the save. runoff_factor() is the response curve that makes a drizzle leave no puddles, and puddle_cover() is derived from water_runoff — so the puddles ride the save with no key of their own and can never disagree with what drinking it costs. sight_factor() (the fog-of-war disc) and haze_factor() (the fullscreen murk) are two numbers, deliberately. FOG_BAND is a separate table from PRECIP_BAND on purpose: falls_from_the_sky() is PRECIP_BAND.has(), so never add FOG to PRECIP_BAND — a fog that answered yes would wet everyone standing in it. Strength buys a rate, never a temperature: get_effective_temperature() is untouched.
FileExports / seams
autoload/time_manager.gdday_length_seconds (18 min), days_per_season (7), start_time_of_day, per-season *_temp, day_night_swing; get_ambient_temperature(), jump_to_day()
autoload/weather_manager.gdmin_/max_spell_hours (2/6), temperature_jitter, snow_accumulate_/melt_per_hour (0.4/0.15); is_precipitating() (the sky) vs is_precipitating_at(cell) (the ground under it); turn_slide_hours (1.5), dry_sun_/dry_cloudy_factor (1.7/0.35), dry_cold_/warm_temp (5/20 °C), runoff_per_hour/runoff_settle_per_hour/runoff_bad_water_extra (0.45/0.11/1.0); SPELL_HOURS (rain/snow/hail 0.5–5.4, storm 6–12, fog 4–9), PRECIP_BAND vs FOG_BAND (0.30–1.00), precip_gust_min_hours, puddle_max_level (0.429). The forecast, the strength, the runoff and the snow ride the save
player/sky_reader.gd / sky_reading.gdPer companion: reading() is pure (level → what may be said), can_read_sky() the ONE shelter gate for all three XP paths, lead_hours() the Perception lead, HARSH_LEVEL (3) the sensor's rung. SkyReading.best_reader() decides who speaks — one line per turn, event log, never chronicled
player/temperature_controller.gdshade_relief (6 °C) floored at shade_floor (22 °C), applied on the sibling WeatherHazard.is_sheltered() — the same cover that stops hail
player/player.gdsnow_speed_penalty (0.35) folded into ground_speed_factor(), so it multiplies a road rather than replacing it and the embodied mover and JobRunner pay the same
world/day_night_cycle.gdCanvasModulate tint interpolation
world/weather_particles.gd / weather_hazard.gd / cloud_shadows.gdRain/snow/hail particles (sized for a downpour and thinned by amount_ratio — one emitter at two settings, never two to keep in step), the near streak layer, the ground-level splashes under the fog, the heavy-rain veil, hail Health damage, cloud shadows. The murk is a fullscreen WeatherHaze ColorRect on assets/shaders/weather_haze.gdshader; the puddles are the ground_wet uniform on assets/shaders/terrain_snow.gdshader — snow cover's exact seam

Temperature damage: cold below 4°C / heat above 35°C (temperature_controller.gd). Pacing: the 18-minute day and ×1.8 task lengths; HARVEST_TIME_SCALE is the harvest seam.

Audio & the sound library

Seams. Every sound in this game is a row in a list you open in the Inspector, and an empty row is guaranteed silence. SoundManager.play(id) is THE entry point — no gameplay file plays a sound directly. SoundManager.world_gain_at(pos) is THE zoom gate (0 at or below world_zoom_silent 1.2, full at or above world_zoom_audible 2.0; it existed three times in three files until v0.10.0). SoundRouter is THE bridge from gameplay signals to ids, and WorkProfiles is THE map from a job to its loop + impact.

Before v0.10.0, eighteen audio files carried the whole game and every path was a constant in sound_manager.gd: building, dying, hunting, fishing, tending a fire, crafting and every footstep were silent, and the sound of the game could only grow if somebody opened GDScript. It is now 225 rows across nine banks in resources_data/audio/, each with a plain-language description, and filling one is dragging a file into stream. Full write-up: docs/audio.md.

The two rules that make an unfilled library safe to ship
1 · A missing file is silence, never an errorplay() on a streamless row returns quietly, which is what lets the list ship complete and mostly empty (37 of 225 filled today). 2 · An unknown id is a bug — it warns once, and test_meta._test_sound_library fails the suite on it: it scans every .gd under scripts/ for library-prefixed ids and checks each exists. Rename a row and forget a caller and you find out in the test run instead of never.
Class / fileWhat it is
SoundEntry audio/sound_entry.gdONE sound: id, description, stream, bus, kind, volume, positional, cooldown, max voices, priority, ducks, conditions
SoundBank audio/sound_bank.gdOne themed page: name, category, default bus, Array[SoundEntry]
SoundLibrary audio/sound_library.gdThe root (sound_library.tres): Array[SoundBank] + the id → row index
SoundConditions audio/sound_conditions.gdWhen a row is allowed to play — hours, seasons, weather, biome, interval. The owl and cuckoo used to be hand-written timers with their hours compiled in; a thirteenth call is now a row, not a patch

The nine banks: music (moods + stingers) · ambience_beds (place · weather · settlement) · ambience_spots · work (every job: start, loop, impact, finish) · footsteps (nine surfaces) · creatures · buildings · ui · world. Naming is bank/subject_variantwork/chop_impact_oak, amb/bed_forest_night. Use an AudioStreamRandomizer for variations and an AudioStreamPlaylist for a mood; both are Inspector-only. tools/gen_sound_banks.gd regenerates the banks from its table and never overwrites an assigned stream; rows that vanish from the table are reported, never deleted. docs/sound-checklist.pdf prints all 225 rows with tick boxes as a shopping list.

The mix — five buses, five sliders, one Silence

Master
├── Music      moods, stingers
├── Ambience   the three beds, the spots
├── World      positional: work, footsteps, fire, animals
│   ├── effect 0  low-pass   — the roof
│   └── effect 1  reverb     — the cave
└── UI         clicks, windows, alarms, the heartbeat

There used to be two buses and three sliders, one of which ("SFX") carried the ambience beds, every work loop, the heartbeat and every UI click — so turning the interface down turned the rain down with it. A pre-v0.10.0 audio_settings.cfg migrates: the old SFX value seeds Ambience, World and UI. Ducking is a tweened number, not a side-chain — a stinger names the buses it pushes down in its ducks field and SoundManager.duck() lets them back up over duck_release_seconds; a number is something a headless test can assert, and it does. Room acoustics are bus state, not sounds: underground the reverb comes up to 0.5 and the outside beds fall 12 dB, under a roof the low-pass closes to 4 kHz and they fall 7 dB, both owned by AmbienceDirector._set_room() off TerrainManager.is_underground() and BuildingManager.is_indoors() on the camera's cell.

The six layers

LayerOwnerHow it works
MusicMusicDirectorSeven moods asked of the world every few seconds — danger / winter / opening (<6 buildings) / expedition (>60 cells from the settlement centre) / night / settled. A 90 s minimum dwell stops it twitching; danger is the one exception and cuts in immediately, because by the time it is polite it is too late to be useful. Deliberately not vertical stems — layered stems need material written to fit together, which a free library cannot supply
AmbienceAmbienceDirectorThree cross-faded layers chosen per camera cell, once a second: PLACE (cave › roof › near water › mountain › forest › biome, split day/night), WEATHER laid over it rather than replacing it, and an OVERLAY at ≥4 buildings. Water without emitters: 51,000 water cells would kill the frame, so a bounded ring scan (radius 8, stride 2) asks how far the nearest water is and whether it is salt or still
Spotsambience_spots.tresAny row carrying a SoundConditions with an interval schedules itself and its own conditions decide whether anything sounds
WorkWorkProfiles + WorkSoundPlayerJobRunner._report_work(target, ratio, loop, profile) already reported ratio 0→1 every frame to drive the progress ring. When it snaps back, a cycle completed — an axe swung — and the impact fires on that edge, so the rhythm is correct by construction. Nine sites passed null here and were silent; they now name a profile and know nothing about audio. Chop impacts pick the species from the terrain at the work position rather than threading it through fifteen call sites
FootstepsFootstepPlayerThe cadence is free: Player._advance_visuals already accumulates _walk_phase from distance travelled to swing the drawn legs, and one step per PI of it is one step per stride — self-correcting for terrain, roads, exhaustion, overload and the zoom-speed coupling without knowing about any of them. Nine surfaces, ordered by what overrides what: underground › floor › road › shallow water › snow › forest/mountain/sand › swamp › grass. A dedicated four-voice pool plus the zoom gate caps eight companions at four voices
Life & surfaceAmbienceDirector._tick_fires(), SoundRouterOne keyed voice per lit heat source, positional and louder while well fed — idempotent, so it can run every tick. SoundRouter turns the game's own signals into ids (buildings placed/removed, jobs unlocked, deaths, recruits, party wiped, alert/warning feed categories, season changes, saves, pause, cave transitions), so the list of what the game can be heard doing is one file long
Traps
  • Never stream.loop = true on a load()ed resource — it mutates the shared cached copy for everyone, which turned one companion's work loop into everybody's. Four places did it. SoundManager.stream_of() and WorkSoundPlayer._looped() duplicate first — and a WorkSoundPlayer therefore compares against _source, not stream, or it would swap the stream every frame.
  • AudioStreamWAV has no loop property. It has loop_mode and a frame range, so stream.set(&"loop", true) compiles, runs, returns nothing and does nothing — which is how every LOOP and BED row filled with a .wav played once and stopped until 2026-08-05. loop_end must come from get_length() * mix_rate and not from data.size(): the WAV importer defaults to QOA compression, so the bytes are not frames.
  • MP3 loops click — encoder padding at both ends. Beds and music belong in .ogg with loop points set at import; one-shots in .wav; anything positional in mono, or the panning is lost.
  • SoundRouter suppresses everything for 1.5 s after a load, because loading a save re-places every building and would otherwise fire forty clicks in one frame.
  • A row can be waiting for a file or waiting for a caller, and both sound the same. Of the 190 empty rows, 81 sound the moment a file lands and 108 do not, because no line of code plays them yet (the whole creatures bank among them — animal.gd contains no audio at all). Fill the 81 first; the other 108 are ROADMAP Milestone 21. And watch the third silence: 13 rows are filled but shadowed by the older ResourceType / AnimalSpecies stream slots, which _wanted_loop() consults first, so swapping the file changes nothing (20.7 / 21.8).
  • Autoload _ready has not run when a module test starts. The full suite gets there after many awaits; a standalone --module=meta does not. Both sound tests await process_frame first.

UI & panels

Seams. resources_data/ui_theme.tres is THE UI look seam (panels must not restyle themselves). StatVisuals = glyph+tier+colour; StatusEffects.list(character) = "what is on this companion right now". The companion window is one framed TabContainer with four tabs (C/T/V/K) — a tab's visible ≠ the window standing, so read is_visible_in_tree(). WindowAtmosphere is the frame's weather layer: it reads numbers the simulation already keeps, caps every layer under 13% opacity, and costs no frames when it has nothing to say (console atmos).
FileRole
ui/hud.gdRoot HUD; binds the companion window on control switch
ui/companion_window.gd + companion_header.gdThe 4-tab frame; subject()/bind_character(); host_of()
ui/character_sheet_panel.gd / automation_panel.gd / cards_panel.gd / crafting_panel.gdThe four tabs (Character / Automation / Cards / Crafting). The crafting tab is a bench, not a placement door: it drives WorkerCommands.begin_hand_craft(kit, count), the ONE entry into Command.HAND_CRAFT, and the console's crafting goes through the same select_kit / craft_pressed / step_batch the mouse does
ui/window_atmosphere.gdThe window's weather: night glow, frost, rain, soot, the mortal-danger pulse. Per-companion, never the party
ui/card_find_overlay.gd / card_sheet.gdThe card ceremony's three modes — LOOK, EARNED and FOUND. FOUND is the lift: it draws the envelope and refuses to show a face, which is what keeps a find a promise rather than the payoff. Console cards found
ui/character_status_panel.gd / stat_bar.gd / stat_visuals.gd / status_effects.gd / stat_icon.gdParty cards, bars, badges
ui/alert_screen.gdMortal-danger heartbeat (fires at EMERGENCY health tier; health_alert.gdshader)
ui/build_radial_menu.gdThe build ring: one _draw, hit-testing by angle+radius (no node per sector); geometry COMPUTED from the sector count
ui/build_categories.gdThe tree as DATA. Categories declared here; entries GROUPED from the live catalog by Buildable.category — never a list of ids. PLANNED = the greyed placeholders (empty since 16.3, kept as the mechanism). FURNITURE is a real category id deliberately NOT in CATEGORIES, so it gets no sector — the room panel asks for it directly. entries_for matches category or secondary_category, so a piece that belongs in two lists says so itself (the straw bed: furniture and Supply)
ui/room_panel.gdFurniture hangs on the ROOM, not a building (16.3). Binds to a cell, never a room id (ids regenerate on every placement). Drives the ordinary BuildController.select_buildable(buildable, fence) — never a second placement pipeline. Console room panel
ui/building_icons.gdBuildingIcons.draw() = the building icon seam (the twin of ItemGraphics.draw); monochrome, unit-square, one drawing per Buildable.id — unknown id → silent fallback swatch. Console icons audits which entries still wear it
ui/build_icon.gdBuildIcon = the Control that PICKS the seam: a kit (yields_item) draws as its item via ItemGraphics, everything else as its building. Used by the shared entry button and the construction-site panel
ui/build_entry.gdBuildEntry.cost_labels_for() / tooltip_for() feed the ring's info panel AND the crafting tab — one source for what a thing costs
ui/loading_screen.gdPushed phases; everything switched via RenderingServer (force_draw()). Wears the title screen's leather. The phase weights are measured, not guessedtests/loading_film.gd times a real cold start and is what to re-run when a load gains or loses a stage; the bar runs all the way to 100% and holds there before the game takes over
ui/event_log_panel.gd / chronicle_panel.gdFeed / history. There is no task-board panel any more (0.18): the board runs, nothing draws it — tasks in the console is its only readout
ui/path_preview.gdThe waypoint line: hold_ms (2000) is a ceiling, the line dies with the plan; the clock is Time.get_ticks_msec(), never delta, so Engine.time_scale cannot stretch it, and PROCESS_MODE_ALWAYS lets the fade finish while paused. One show_for() entry, real NavigationServer2D routes per leg
ui/wanderer_panel.gdThe recruiting decision (5.4): identity + attributes, take in / send on. Must never read the hidden disposition
ui/new_game_panel.gdThe character creator (13.1), code-built, no .tscn. Both doors into a run go through it — the title's Play and the death screen's Retry — and through NewGamePanel.begin_run(), which arms GameState.pending_party (handed out once, by Main._apply_created_party()) and claims a fresh save slot. Every named choice is an arrow picker; the colours stay swatch grids. attributes_locked() reads GameState by path — a class_name script compiled as a test dependency cannot speak autoload globals
ui/pause_menu.gdThe Esc ladder (closes ui_windows group before pausing)
ui/ui_windows.gdUiWindows.register(self) = the one window seam: joins the ui_windows group and makes the window exclusive — showing one closes every other, so windows can never overlap. A new window needs that single line (and a close() that opens nothing)
ui/settings_panel.gd + gameplay/graphics/audio/keybindings_settings.gdSettings; rebinding writes per-domain .cfg

Save / load

Seam. A stateful autoload saves itself by joining the saveable group in _ready and implementing save_key() / save_state() / load_state() — since 17.4 SaveManager._collect walks that group instead of a hand-written list, so a new system is saved the moment it joins and forgetting is structurally impossible. Saves are named slots on disk (user://saves/<name>.save). brutal_testing_saves is true while the prototype is tested (Brutal saves/loads freely) — flip it to restore the permadeath pillar.

Load order still matters, and is kept explicitly: _apply_saveable(key) places the order-sensitive members by hand (terrain before buildings, the task board after them, weather last) and an order-free tail sweep catches every other member — so both halves are safe against a newcomer nobody remembered. Members register with the literal group name, because SaveManager autoloads last, after them all. Session meta, CityInventory and the tree-walk collectors stay hand-written on purpose.

Node names are save keys (see Companions). Since recruiting (5.4) _collect_characters walks the tree, not a fixed name list, and _rebuild_character builds the rigs a fresh world doesn't have. Restore obeys a rank order (ground → structures → fixtures). A slot shorter than a stored Variant's 4-byte header (MIN_VARIANT_BYTES, checked in _open_for_read) is skipped without being read: a save interrupted mid-write leaves a 0-byte file, and get_var() on it prints an engine error GDScript cannot catch. Difficulty (Hard = free save/load, Brutal = suspend-only + slot wipe) is picked on the title screen. Console: saves, save, load, delsave, difficulty, orders.

Standing orders ride the save too (2026-08-16): the active JobRunner.Command, where it was aimed, the work already banked, the whole WorkerCommands.queued waypoint chain, and the few things a command cannot read back off the world — a batch craft's kit (by resource_path) and its latched cost, an hour of vigil already stood, a watch that has seen the night fall. An exchange travels by name and a hunt by position, because neither node identity survives a load. Saves written before this simply carry no orders, which is a load into an idle party, not an error.

One store deliberately outside the save
AchievementManager keeps user://achievements.cfg in the profile, not the run: it is NOT in the saveable group and NOT in WorldGenerator._ready's reset list, or permadeath would wipe the very record it is supposed to leave behind. Its one call in the generator, begin_run(), is run bookkeeping and not a reset. A test breaks if anybody "tidies" that up.

Console commands

Every command the dev console knows, what it does and one example each.

F12 opens the console (debug builds only); Esc or F12 closes it and the game pauses while it is open. Handlers live in scripts/ui/dev_console.gdhelp inside the console is the authoritative list, and every new mechanic ships a command here.

Most commands act on the selection: the companions currently selected, or the whole party when nobody is. select 2 is therefore usually the first thing you type.

Companions & stats

CommandWhat it doesExample
select [<n>|all|none]Select and control the n-th companion (1-based). Everything below that says “the selection” means these. all takes the whole party, as ^ does; none clears.select 2
who [reroll]The selection's identity: name, age, body, the five base attributes. reroll draws a new one.who reroll
rosterThe HUD's companion shelf exactly as the cards read it — hotkey digit, condition word, current activity.roster
stat <name> <value>Set health / thirst / hunger / tiredness / temperature — also sleep_debt in percent.stat thirst 8
fillTop every survival stat back up to full.fill
skill [<id> <level>|curve [<id>] [xp/day]]List the selection's skills, or set one outright (levels 0–10). curve prices a whole skill ladder in days of practising it (default lumberjacking at 17 XP a day, the measured pace of a specialist).skill curve fishing
equip [<id>]Give the selection a tool (equip axe); with no id, list what each known tool speeds.equip axe
durability [wear <s>|repair]Read the selection's tool wear; wear <s> ages it by that many work-seconds (to watch the bar drop and the axe break), repair mends everything to full.durability wear 400
warmth [<id>]The selection's worn gear and the degrees it insulates; naming a piece (coat, hat) grants it first.warmth coat
regen [<rate>]Whether the selection is mending and, when it isn't, the one thing blocking it (a bar under half, too cold/warm, sick). A number sets the waking Health-per-second rate, so the trickle can be watched in seconds.regen 5
fatigueThe exhaustion drag: tiredness ratio, the walk/work pace it costs right now, and the sleep debt.fatigue
rest [<hours>|here]The leisure ledger: hours banked off duty toward the Free time card, the rest debt duty has run up, and where each one is spending it. A number banks that many in-game hours outright; here drops the spot they were sitting at, so free time re-anchors where they stand.rest 5
weight [<kg>]Show the carried load against the weight budget, or set the budget itself.weight 60
carry [<kg>|clear]The load and its overload: how far past the budget, what it costs the legs, whether it is immobile. A number piles stone on until the pack weighs that much.carry 50
wet [<0-100>]Rain soak and how fast it is drying where the companion stands, or set it.wet 100
sick [<kind>] [<0-100>]Ailments and the contamination loads building toward them, or force one. Kinds: fever, dysentery, food_poisoning — they stack. sick load <kind> <n> sets a load outright.sick dysentery 50
effectsEvery buff and debuff on the selection — the same list the HUD shows as badges, with what each one does.effects
doseMake the selection swallow a herb against a sickness — the same entry the sheet's double-click and the Take herbs rule use, so it can refuse for the same reasons (nothing to treat, a dose already running, no herbs in the pack). Nobody doses themselves.dose
down [tend|carry|drop|expire]The fallen: every body on the map, what felled it, what would wake it and how much of the half-day rescue window is left. With a healthy companion selected it fells them down the real vitals path; tend/carry/drop order the rescue through the right-click's own resolver, and expire runs the window out, which is the death.down carry
meal [eat|waste <0-1>|chew <points/s>]What the stomach would do: the richest bite still worth taking, what would be eaten next, and whether it is full enough to stand the EAT rule down. meal eat begins one through the rule's own entry point; meal waste sets how much of a unit may spill (1 = the old eat-to-completely-full); meal chew is the swallow rate — how fast a mouthful reaches the bar.meal chew 8
skin [<litres>|stale|clean|drink|pour [<litres>]]Waterskin fills in litres and what is in them; set the fill (skin 0 = dry, skin 5 = full), mark the contents still (dirty) or clean, make the companion drink, or pour it into the barrel or pan it stands at (a part litre included).skin pour 0.4
alert [on|off|auto]The mortal-danger alert screen (red rim + heartbeat): force it for a look, or hand it back to the party's health.alert on
alert slow [on|off]The brake: drop to 1x the moment somebody falls into the red (= Settings > Gameplay > Slow to 1x when someone is dying). Bare, it reports the state.alert slow on
face n|s|e|wPoint the standing map figures at a compass direction — a staging aid for screenshots.face s
figures [iso|top]Map-figure style: upright 3/4 view or the old bird's-eye look.figures iso
look [<name> face=|shape=|hair=|skin=|sex=|freckles|scar|glasses|warpaint|earring|eyepatch|bare|reset]What the party is wearing, and the character creator's edits reachable mid-run: set the face trait (one of twelve), the hair silhouette (0–17), the hair or skin colour, the drawn sex=, toggle any of the six marks, strip every mark (bare) or hand the whole look back to the dice (reset).look Sigrid skin=#c8a078 eyepatch
expression [<name>|auto]Force one expression on every map figure and portrait — for looking at it — or hand the faces back to the companions' own stats.expression weary
pose [<profile>|off]Hold a work pose on the selection (chop, mine, fish, craft, … — bare lists them all), so a swing can be looked at without walking anyone to a tree. pose off hands the body back to whatever the job really is.pose chop
ordersWhat every companion stands under right now, waypoint chain and all — the same dict the save writes, so orders / save / load / orders proves a standing order survived the load.orders
path [off]Draw the waypoint line over the selection's whole order chain — the same call a click and a selection go through, so the two-second line can be staged without a mouse. It reports every chain it drew; off takes it down.path
reclick [<x> <y>]Right-click the same job again through the door the mouse uses: the repeat order is dropped for the companion already doing it, so the half-done work keeps its progress. Bare uses the standing order's own click point; a cell of your own must still redirect. It prints the work each companion kept.reclick
order <x> <y> [queue]Right-click that cell with the current selection: resolves the verb there and hands it out, so the order gate (materials nowhere = nobody walks, and the log says so) can be driven without a mouse. queue is the Shift-held waypoint form, which is never gated.order 120 96
march <x> <y>The selection walks there as a column — whoever gets ahead stops and waits for the last companion. Parked for the trek, so this is the only hand that still orders it.march 200 180
camp [<x> <y>]Bed the selection down: everyone carrying a bedroll unrolls it, the rest sleep on the ground. No cell = where the party stands. Parked with march.camp
highlight [<x> <y>]Flash the green command feedback on a cell without ordering anyone — the only way to stage that visual for a screenshot.highlight 118 94
wanderer [<action>]Recruiting: list who is on the road; spawn [renegade|loyal], here, panel, recruit, send, desert.wanderer spawn renegade
taleWhat a newcomer would tell you: picks an undiscovered landmark, lifts the fog around it and prints the line — what recruiting one does.tale
temperament [list|<id>]How the selected companion speaks: their temperament, what it means and how readily they talk; list names every one the game ships, an id hands them another. Voice only — it moves no stat, no skill and no work clock, by design.temperament dry
speech banks|stats|check|line <id>|preview <tag> [k=v …]The companion line bank: banks and stats size it and show which temperament tags have gone quiet, check audits every row (character cap, unknown tag, a dialogue half whose partner is missing) and is what the headless test asserts on, preview draws real lines out of the real selection for a made-up world.speech preview grim season=winter place=fire
voice [say [<n>] [words]|poll|reset]The voice system's board: who would speak next and which gate is blocking whom. say makes companion n talk (no words = a line from the bank), poll runs one selection pass ignoring the rolled interval, reset forgets every speech budget and drops any running exchange.voice poll
memories [<name>]What a companion carries: their memory ring, newest first, with the in-game day, the kind, the subject and how heavily it weighs. The ring is bounded and drops its least salient record, so this is also how you see what a run has already forgotten.memories Sigrid
backstory [<name>|pools]Where a companion comes from: their rolled life, the attribute hand it explains and the tags it hands to their wishes. pools lists the five pages and their sizes.backstory Runa
wishes [<name>|list]What a companion still wants, whether it has been granted, how far off it is and what it is doing to their Mood ceiling. There is deliberately no wishes grant.wishes list

Windows, items & the hand

CommandWhat it doesExample
sheet [<n>]Toggle the character sheet (C), or open it on the n-th companion. Opening it selects that companion, exactly as the key does.sheet 2
shop [list|panel|work] [<id>]The workshop portrait: list names every workshop that gets one and the state each is in, panel raises the window, work banks a beat of work so the picture moves.shop panel lumber_camp
rulesToggle the automation rule editor (T).rules
craft [<recipe> [<n>]]The workshop craft queues (19.1): bare, every standing station with its orders plus every known recipe; with a recipe id it puts that order on the nearest station that makes it. craft clear empties every queue, and craft sources says where each next order takes its materials from — per input, what the workshop's own yard gives, what the crafter's pack gives and what has to be fetched.craft sources
crafting [<kit> [xN] [craft|dblclick]]Toggle the crafting bench (K) — where carried kits like the bedroll are made. With a kit id it selects that entry and reports the ingredients out of the subject's own pack; x3 steps the batch spinner (clamped to what the pack can pay for), craft presses the button and dblclick takes the double-click door. It drives the panel's own select_kit / craft_pressed / step_batch, so it cannot drift from the mouse.crafting bedroll x3 craft
atmos [auto|off|night|frost|rain|fire|alert]What the open window wears. Forces one layer on so a screenshot can be staged for a sky this seed never rolled; echoes the live values.atmos frost
windows [close]The exclusive windows: every registered window and which one stands — at most one ever does, since opening one closes the rest. close clears the screen (the Esc ladder's rung).windows close
tileinfo [<0-3>]Which of the four looks the bottom-left mouseover readout is drawn in (a pitch: 0 as shipped, 1 one accent, 2 the traffic light, 3 the token) — the words are the same either way.tileinfo 2
tileinfo coords [on|off]Put the hovered cell back into the readout's title — the coordinate every <x> <y> command on this page wants. A dev aid, off by default.tileinfo coords on
hover <x> <y>Point the mouseover readout at a cell without a mouse, through the same TileInspector.hover a real motion uses, and echo what it now says.hover 118 94
uiscale [<0.5-3>]Blow the UI up for a screenshot, this window only — it saves nothing.uiscale 1.5
transfer [mate]Open the carry↔stockpile exchange (snapping a companion to its nearest pile); transfer mate opens it between two companions.transfer mate
zone [list|new|name|color|paint|erase|tool|del|go|at|open|close]The whole zones overlay as commands — every branch presses the button the overlay presses, the fog refusal included.zone new "North woods"
level [<n>|xp <amount>|curve [xp/day]|spend <attr>|refund <attr>]The selection's character level: bare reads it, a number jumps to it, xp grants raw experience through the skills' own funnel, and spend/refund place a point through the same call the sheet's + makes. curve prices every level in days at a given XP/day (default 30, an ordinary working day).level curve
hearth [<logs>]Open the nearest fire's panel and stage it: logs in the flame (0–4) and raw fish on the pan, so the fuel slot and the pan's progress have something to show. It echoes what the fire portrait is drawing, which is the one thing a script cannot see.hearth 3
boil [hand]Run the whole boiling chain: fill the skin with pond water, stoke the nearest fire and issue the real order. boil hand opens the fire exchange window instead.boil hand
cook [<units>]Cook carried raw fish/meat into its cooked kind.cook 3
hand [grab|drop|take <item> [n]]The world hand: report what is held; grab snaps the one selected companion to its nearest pile and lifts the first tile's stack, take lifts a named item straight out of their pack, drop gives it back.hand take wood 2
give <item> <n> [carry]Add items to the city stores, or with carry straight into the selection's packs.give berries 20 carry
shine [<item>] [<tier>]Bare: the tier table, the marked item types and every glinting stack on the map. With an item, drops a glinting find at the selection; shine mark <item> makes a whole type sparkle wherever it is drawn.shine wood 2
drop <item> [n]Lay a dropped stack on the ground at the first selected companion (right-click it in play to pick it up).drop wood 5
spoil <days>Age all perishable food (stores and packs) by n days and rot whatever expires.spoil 4
fishHand the selection a fishing rod — the tackle the Fisher job needs.fish
chronicle [<text>]Toggle the run's chronicle (J); with text, write that line into it stamped with the current day.chronicle A hard winter began
context [water]Open the right-click context ring on the nearest water — the same entries a right-click offers. A fire grows no ring any more, so there is nothing there to stage.context water

World & terrain

CommandWhat it doesExample
worldMap size, walkable land and the density scale it gives every spawn count (1.0 = the shipped 512×512 island), with the live populations.world
biome [<name>|<x> <y>]Biome census as a share of the walkable land; a name teleports the party into one, a cell reads it out.biome tundra
cave [<n>|walk <n>|in <n>|out|light|<x> <y>]Caves: list every mouth and what is known of its inside, teleport beside one, order the selection to walk in, send the party in or bring it out, or read a cell.cave in 0
cave lightWhat the time of day is worth underground (nothing, bar the glare in the doorway), what each companion's own light is worth — a smudge, with no flame — and every fire burning down there with its reach, its strength and whether it is down to embers.cave light
dungeon [<n>|walk <n>|in <n>|out]The hand-authored places (the pyramid): list every one and what is known of its inside, teleport beside a door, order the selection in through the real one, send the party inside at once or bring everyone back into the daylight.dungeon in 0
dungeon floors <n>Every storey of one place with its traps, secrets and caches.dungeon floors 0
dungeon reveal <n>Map one that has already been entered.dungeon reveal 0
dungeon stairsPairs every storey step with the cell a climber actually ends up standing on — it steps off the stair, which is where the pairing can go wrong.dungeon stairs
dungeon search <x> <y>Order the selection to work that wall over — the same order a right-click on it gives, with the walk, the light check and the 25 seconds. It deliberately does not say in advance what is behind it.dungeon search 214 88
dungeon draughtHow far each companion feels a hidden door. Perception scales it, so who you send in first is the whole mechanic.dungeon draught
dungeon paceThe floors that cost speed, and how much of each storey is made of them.dungeon pace
dungeon valve [<x> <y>]What valves the place has and whether anybody has pulled them; a cell orders one pulled through the walk, the light check and the full forty seconds. Water does not come back — the one act in the game with no undo gets no shortcut here either.dungeon valve
dungeon lookCounts the vocabulary storey by storey — every column, frieze, plinth, jar, bracket, rubble patch, mosaic and shaft, plus which cells are lit with no torch at all.dungeon look
dungeon blinkFire the storey-change wipe through the very node a stair fires it through. A real one only fires when the camera was on the storey being left.dungeon blink
landmark [<n>|<x> <y>]Designed landmarks (crater lake, hot springs, standing stones): list them, teleport to one, or read a cell.landmark 2
height [<x> <y>]The height field: the waterline and how the land is spread over it, or one cell's elevation, steepness and what that steepness costs a walker.height 120 84
vista [<x> <y>]The view from high ground: the sight radius the party has where it stands (or at a cell), what the height is worth, and the map's best lookout.vista 200 60
flow [<x> <y>]The water network (replaces rivers): the trunk/stream/thread census and the drainage each tier is cut at, or how much land drains through one cell and whether its water stands or runs.flow 120 84
rain [<x> <y>]Which way the wind blows on this island and where the wet and dry quarters lie, or one cell's rainfall as a share of the island — never a raw amount.rain 120 84
soil [<x> <y>]Fertility: how the good ground is spread and where the best of it is, or one cell's rank and what a farm on it would cost in time.soil 120 84
water [<x> <y>]Bodies of water. With a cell also its quality — still water wears a dysentery load, running water is clean.water 120 84
salt [on|off]Sea salinity — off makes all water drinkable again (a testing hatch).salt off
freeze [on|off]Midwinter ice: the state and its window; off stops surface water freezing.freeze off
tree [<species> <x> <y>]Forest species census, or plant a pine/birch/spruce/oak on a cell.tree oak 100 100
chop <x> <y> [strikes]Bank chop strikes on a tree; with no count, all but the last — the next strike fells it. The reply names both halves of the fall: what went into the chopper's pack and what stayed at the stump.chop 100 100
trunkWho is still clearing a felled trunk and how much room they have left, plus every wood stack lying on the ground.trunk
canopy [reveal|sway <n>]The forest roof's live walker feed (who thins and sways the crowns), or retune the reveal alpha / sway amplitude.canopy sway 2
relief [<knob> <v>]The mountain hillshade and snow-cap knobs — freq, amp, ambient, snowline, snowsoft, light x y.relief snowline 0.7
sites [on|off]The base-site quality heatmap (red bad, green good) plus how rare a good site is.sites on
forage [on|off|clear|wear <0-3>|<x> <y>]The foraging-fatigue lens (green rested, red picked over) plus wear stats; a cell reads one patch out, wear/clear drive the whole map.forage on
navmesh [rebake]Navmesh chunks: layout, polygon count and bake timings (what one wall costs). rebake bakes the world again and times it.navmesh rebake
room [panel] [<x> <y>]Room detection: is the cell inside an enclosed room, how big, how warm, how homely. room panel opens its furnishing window.room panel
revealUncover the whole map (fog drops to explored).reveal
fog on|offFog of war on or off.fog off
grid [<alpha>|off|full]How loud the cell raster is outside build mode (0–1, default 0.1); placing anything still snaps it to full. off hides the resting grid entirely.grid 0.3
tp <x> <y>Teleport the selection (or everyone) to that grid cell.tp 100 100
overlay [list|off|<id>]The player's map lenses (zones, soil, climate, rainfall) — fog-gated, one at a time, the same door X uses. Bare, it names the one that is up.overlay fertility

Time & weather

CommandWhat it doesExample
time <hour>Set the clock, 0–24.time 22.5
day <n>Jump to day n; the season follows the calendar and the rollover signals really fire.day 20
season <name>Jump to the first day of the next spring / summer / autumn / winter.season winter
tint [<season>]The seasonal ground tint; with a season name, jump to its middle where the tint is strongest.tint autumn
weather [<name>] [hours] [next]Bare: the sky and the temperature, what is pre-rolled to follow it, how far the world has already leaned that way, the rain runoff with what it costs a drink and what it gives a fisher, and every barrel's catch rate. With a name it forces sunshine / cloudy / rain / snow / hail / drought / fog for a few in-game hours (default 6) and reports, per companion, whether the spell is actually reaching that one — the desert answers no. A third argument forces what comes after the current spell, which is how a turn and all three of its tells are staged by hand.weather rain 6 hail
snow [<0..1>]The snow lying on the ground — the one winter visual that otherwise takes two and a half in-game hours of snowfall to stage. Reports the cover, whether it is melting, and what each selected companion's ground speed is under it.snow 1
precip [<0..1>]How hard it is coming down — the word, the rate everything is running at, what a soaking and a bare pit cost right now, the puddles on the ground and every barrel's fill. A number pins it, exactly as wind pins a gale, and it stages a fog's thickness the same way. It is precip and not rain because rain <x> <y> is already the map's orographic rain shadow.precip 0.9
runoff [<0..1>]The standing water the ground is holding — what the puddles are drawn from, what it costs an untreated drink, and how long it has left to settle.runoff 1
sky [read]Weather-reading: every companion's level, their minutes of warning and how many skies they have seen; who would speak, the line they would say, and whether it has been spoken for this turn. sky read sends the selection into the real vigil, through the same entry point O uses. (Set a level with skill weather_reading <n>.)sky read
dryWhat the sky is worth to drying right now: the open-air factor and air temperature where the selection stands, plus every standing preserver and the pace the weather leaves it. A clear sky beats the reference pace, an overcast one crawls, rain stops a rack dead.dry
clouds [<0..1>|auto]Cloud-shadow cover: a number forces it now (staging), auto follows the weather again.clouds 0.8
weather stormForce the storm, the one sky that is an event. Reports its length and when the map has gone — sight is cut to a third, so the report is the only way to see what it is doing. It prints AIR THICK at N% beside SIGHT COLLAPSED, because the murk and the sight radius are separate numbers and showing one would hide the difference between a storm and a fog.weather storm
wind [<0..1>] [n|e|s|w|…]Read or set the live wind: the strength, the quarter it blows from, the word the clock shows for it, and the chill in degrees each selected companion is actually feeling.wind 1 n
speed <x>Time warp: 0 pauses, then 1 / 2 / 5 / 10 …speed 5

Resources & animals

CommandWhat it doesExample
res [<id>]Resource-node census, or teleport the party to the first node of that type. Ids: berry_bush, herbs, rock, mushrooms, hazel_bush, mussel_bed, bird_nest, wild_roots, twigs, loose_stones, leaf_pile, cactus, wild_hemp.res mussel_bed
animal [<species> [n]]Population census and how each species is spread (biggest party against its group ceiling, and whether it hops), or spawn n adults in a ring around the party. Species: deer, pig, pigeon, crow, wolf, bear, badger, beaver, raccoon, hare, fox, eagle, vulture, squirrel, turkey, wisent.animal wolf 3
animal pocketsThe map's separate walkable patches, and every animal standing on one too small to live on — a walker never leaves the patch it was dealt.animal pockets
animal warden [now]The population warden: live count against ceiling and rescue floor per species, and which of the three rails is engaged — twins and triplets, a pair walking in off the map, or animals quietly leaving. now drives one warden step.animal warden now
hunt [<species>] [<n>]Stage a hunt: arm the selection with a bow and spawn prey nearby (default three deer), so the manual aim (hold H) and the Hunter rule can both be tried at once.hunt hare 5
hunt waitThe stand a hunter falls back to when there is no prey in sight.hunt wait
wild [now|hunt [<species>]|nuts]The wood's own hunters and its birds: every predator with what it hunts, what the dice said about each chase and how many are still sated, then every flier airborne against landed, then every swimmer afloat against ashore — and whether anything is standing somewhere it never may. now spends every cooldown, hunt sends the predator nearest the selection after its prey, nuts sends a squirrel or raccoon to strip a hazel bush.wild hunt fox
beaver [<n>|work [<n>]|cycle [<days>]]Beaver colonies: each one's home, the lodge-and-dam pair it is building and how far along, the trees it has down and what it owes back. An index teleports the party there, work runs colony work checks, cycle advances a whole 8–12 day build so the move, the hauling and the old pair fading out can all be seen.beaver cycle 10
mosquitoes [here|list|activity <0..1>|auto|bite <0..1>]The swarms: what the field is doing and what is biting the selection, here the cell they stand on, list the nearest swarms with their size, activity forces the whole field on or off whatever the season and the sky say (auto hands it back), bite sets the bite level that ruins their night.mosquitoes bite 0.8
regrowRefill every stock resource (berry bushes and the like) to full right now.regrow
restockRun the seasonal spawn pass now — seeds and clears mushrooms, nests and nuts.restock
flint [give <n>]The fire striker: what the selection carries and whether the nearest fire could be struck by each of them. No flint, no spark.flint give 2
feather [give <n>]Where feathers come from — the three finds standing in the world and the three birds that pay.feather
arrow [give <n>]The quiver: what the selection can still shoot, and what a spent shaft's chances of survival are.arrow give 10

Building & automation

CommandWhat it doesExample
build <id> [<x> <y>] [site [<pct>]]Conjure a finished building free of charge, or with site lay its construction site — optionally part-built. It walks past every placement rule, which is what makes it useless for asking whether the rules work — that is span's job.build smokehouse site 50
span <id> <x> <y> <w> <h>Commit a drag-sized footprint through the player's own path — the span trim, the fog gate and the refusal message included. The way to test a long bridge without a mouse; it names what went down and both sizes, or says nothing was laid and leaves the reason in the event log.span bridge 110 22 6 1
cost [<id>]Build costs: every entry with its cost variants (“3 twigs or 3 wood”), the labour each takes, what the settlement holds, and what standing blueprints committed to.cost campfire
radial [<cat> [<n>]]The radial build menu: toggle it, or pin it open on a category and list what that ring holds with each entry's state. A trailing index hovers an entry, raising its info panel.radial workshops 3
iconsAudit the building icons: which catalog entries have a drawing of their own and which fall back to the placeholder swatch.icons
looksThe world twin of icons: which standing buildings are drawn as themselves on the map and which still fall through to the plain plank hut.looks
yard [<x> <y>] [<n>|clear]Reports a workshop's own store — the trade it serves, what it accepts, what lies there and the room left. A number fills it with that much produce (to watch a shift end on a full yard), clear empties it. Without a cell it takes the nearest one.yard 20
stores [<item>]Which store the selected companion's hands are actually in where it stands, and which one a fetch would walk to — the two questions the pile-identity fix split apart. With no item, every kind the store in reach holds.stores wood
watch [advice|set]Reads night_watch_advice off the nearest fire — fuel hours, hours of night left, the temperature at the coldest hour and whether a watch is wanted. set puts the first companion beside it on the real Command.WATCH until first light. Since 0.17.0 this is the only way to order a watch — the fire panel's button and its advice line were removed.watch set
flame [light|strike|out|embers|soak <0..1>|fuel <logs>]The nearest fire's three states. Bare reports lit / embers / stone cold, burn time left, how wet the pit is, its exposure to the sky, and what a light would cost here and now. out spends flame and embers (what a storm does), soak 0.8 wets it past lighting, light cheats one alight, strike gives the real order.flame strike
torch [light|out|toggle|give|burn <h>]The torch and its flame: what the selection carries and how much is left in each head. light strikes one at a burning fire or a mate's lit torch (the fire window's own button, same door), out snuffs it and keeps the rest, toggle is the L key for the whole selection, burn runs that many in-game hours off the flame.torch burn 2
bedroll [unroll|packup|list]Bedrolls: list every one lying on the map with who unrolled it, lay out each selected companion's own, or roll up whatever they are standing on.bedroll unroll
bed [in|up|list]The sleeping pose: every bed with its pillow point and who is lying in it, in tucks the selection into the nearest free one on the spot, up gets them out again.bed in
ghost <id> <x> <y> [<w> <h>] [<rot>]Pin the placement ghost at a cell without touching the mouse — w h fakes a live drag; on the wall it pins a chain anchor so the open run previews. ghost off releases.ghost wall 40 40 6 1
cancelsite [<x> <y>]Cancel the construction site covering that cell — delivered materials drop to the ground.cancelsite
area [<id> [<cells>]]Action areas: every standing building with one, its reach and who stands inside it. With an id and a number, retune that building type's reach live (0 = unlimited).area campfire 25
pilerule [<x> <y>] <rule>A stockpile's storage rule: everything, nothing, food, materials, or a list of item ids.pilerule wood stone
auto on|offRun or stop the rule program of the selection.auto on
prog [basic|grammar|off|switch <n> [on|off]]Dump the selection's rule program and live rule state; basic assigns the built-in basic-supply program, grammar a three-rule demo using ANYONE / UNLESS / ONCE, off removes it. switch <n> darkens or lights rule n (the number the editor shows) — a dark rule is skipped but still costs its blocks, so the rules under it never move up.prog switch 3 off
tasks [silence [on|off]]Dump the needs board: every task the standing buildings post, with its claim state. The board has no window in the game — this is where it is read. silence stops the nearest posting building from asking, which is the only door that switch has left.tasks silence off
jobzone [<x> <y>] [<zone>|none]The zone a job building works — lumber camp, fisher's hut, farm, mason's yard, hunting lodge, and never a fire, a stockpile, the drying rack or the smokehouse. Binds a zone by name or id through the same door the panel's Work zone picker presses; none clears it back to Anywhere.jobzone North wood
shiftWhich of the three harvest contexts each companion is in — loose, a job building worked by hand, or an automated shift — the yard its trade would bring a load to, and the leg it would run next (tidy, deliver or work).shift
hauler [run [<ticks>]|reach <cells>] [<n>]The hauler trade: what one companion's round covers — which painted zones it stands in and therefore what fences it, and the next yard with produce inside it. run works the trade through the very entry a WORK rule uses; reach retunes the plain round (a painted zone still wins).hauler run 120
paint <id> <x> <y> <x2> <y2>Drag-paint a run of sites through the player's own path — the seam a wall drag and a floor area both end in — and report the order it committed them under — and that nobody was sent, because a commit is not an order. One drag is one order, and a builder put on it works that order to the end and nothing else.paint wall 100 40 100 52
road [<x> <y>|on|off]The road preference: the network and what the selection's own walk is routed over; with a cell, what a route there saves against the direct walk. on/off toggles the preference itself — the speed bonus is untouched either way.road 140 120
unwallWho is standing inside a wall right now, and step them clear — the same sweep a finished wall and a load both run. It reports even when nobody is stuck, so it doubles as the “is anybody sealed in?” check.unwall
buildorder [<x> <y>]What the site at that cell (bare: the one nearest the party) belongs to — its order, every other site of the same commit, who is working it ("nobody is working it — a commit is not an order" until you send somebody), and where the remaining materials come from: the pack first, then every store holding any of them with its distance from the site, and which one the trip goes to.buildorder 120 84
buildqueueThe build queue in placement order: what an automated builder takes next, and why every site above it is being skipped — somebody is already on that tile, or nothing can pay for it.buildqueue
unlockjobs [on|off]Treat every work rule's job as unlocked, workshop or not.unlockjobs on
cards [<n>|party|finds|all|reset]The card census. Bare or with a number: one companion's deck, owned and counted (decks are per companion). party — how many words each of them knows and what is next. finds — every found card lying on this map, its word and its cell. all makes every word writable and stops counting; reset empties every deck.cards party
deck [<n>]Toggle the Cards tab (V) for a party member — that companion's whole deck, locked cards included. Like sheet, it selects them.deck 2
cards give <id> [<n>]Hand one card over, as consuming a find would.cards give found_last_light
cards learn <id> [<n>]Double-click the carried card in the carry grid — the player's own gesture, through the very entry point the sheet uses: one copy leaves the pack and the word is known.cards learn found_last_light
cards mark <key> [<c>] [<n>]Bank marks on one counter of one companion's deck, without doing the work.cards mark haul 3
cards show <id> [<n>]Hold one card's 63:88 sheet up as it really stands for that companion — open or locked, tally and all.cards show found_the_or
cards ceremony <id> [<n>]Play the full unlock ceremony for it — the flip, the fanfare and the plaque.cards ceremony job_1
cards found <id> [<n>]Play the lift ceremony — the sealed envelope climbing out of the world, and no flip. The find is a promise; the face belongs to the deck.cards found found_the_or
cards peek <id>Stand that card's sheet above the event log, exactly as hovering its line there does — the same entry point the mouse uses, so it cannot drift from what a player sees.cards peek found_the_or
cards queue [<count>]Lift that many finds back to back — the ceremony queue on demand; bare, it just reads it.cards queue 3
cards flight [<id>] [<n>]The same lift ceremony with its timetable printed: how long the card owns the middle, how long it is in the air, where it lands and how long it perches there — the four must still sum to the unchanged total.cards flight found_last_light
settlement [<x> <y>]The settlements on the map (buildings within 45 cells of each other), their size and centre; a cell says which one owns the stores there and what it holds.settlement 120 84
floorplan [<x> <y>|stamp <x> <y>|forget]The remembered plan: bare describes it, a cell records the room there, stamp lays it down again, forget throws it away.floorplan stamp 120 84
teardown [<x> <y>|all|clear|finish]Demolition as work: bare lists what is marked and how far along, a cell marks/unmarks that building, all marks everything standing, clear unmarks, finish completes them at once.teardown all
freebuild [on|off]Buildings cost nothing and rise instantly.freebuild on
field [crops|crop <id>|<x> <y>]The farming year: what stands in every field, how ripe, how well tended and what it wants next. field crops lists all nine with their windows, their seed and which are perennial.field crops
kitchenThe cooking trade: whether a kitchen stands, every recipe with whether the settlement can afford it right now, the queue, and the selection's live boons.kitchen
healerThe healer's round: whether a hut stands, who counts as a patient, and which of them the settlement has posted as tasks.healer

Sound

CommandWhat it doesExample
sound list [<bank>]The library: every row and whether it has a file, with the totals. With a bank name, just that page.sound list footsteps
sound missingThe shopping list — every row still without a file, with its description. The descriptions are written to be pasted straight into a sound library's search box.sound missing
sound play <id>Hear one row right now.sound play work/chop_impact_oak
sound bed [<id>]Which three ambience beds are running; with an id, force the place bed.sound bed amb/bed_forest_night
sound mood [<id>]Which music mood is playing and which one the world wants — the two differ while the 90 s dwell holds.sound mood music/winter
sound bus [<name> <0-1>] · sound muteRead or set a bus level live (Master / Music / Ambience / World / UI); mute silences everything at once.sound bus world 0.4
sound whereWhat the camera is currently hearing: cell, terrain, biome, weather, hour, indoors or underground, nearest water, snow. The fastest way to find out why a bed is not what you expected.sound where
music [next|stop|start]The music director: skip, silence or restart it. Bare, it says which mood is playing and why.music next

Saves, meta & staging

CommandWhat it doesExample
savesList the save slots on disk (user://saves).saves
save [<name>]Write a save slot; with no name the run's own slot, as F5 does.save winter-test
load [<name>]Read a save slot back; with no name the run's own slot, else the newest.load winter-test
delsave <name>Delete a save slot from disk.delsave winter-test
difficulty [hard|brutal]Show or switch the run's difficulty (normally picked on the title screen).difficulty brutal
achievements [<shelf>|reset]Every feat and whether this profile has it — they outlive the run. A shelf name (opening, survival, party, automation, exploration, mastery) narrows it; reset forgets every mark on the profile file, not in the run.achievements survival
achieve <id>Mark one, down the same path the game itself uses.achieve first_light
margin [flush|path]How close this run ever came to the edge: per companion and bar the lowest point, the hours lived under each of the game's three bands, plus days of food in hand and orders given. flush writes the roll-up to the run log now, path just prints where that log is.margin
god [on|off]Freeze all survival stats — no decay, no death.god on
scenario <name>Jump-start a test state: startbase (the old free settlement), base20 (stocked base at day 20), broke (strip all supplies).scenario base20
intro [fast|skip]Replay the opening intro over whatever is on screen, through the same entry point the first launch uses (the console hides itself for it). fast runs it at four times the speed to check the timeline, skip plays it and skips a beat in.intro fast
shot [file.png]Save a screenshot of the game view with the console hidden; prints the full path.shot look.png
float [<item> [<n>]]Spawn a floating “+n item” gain text at the party centre.float wood 3
fps [on|off]The FPS readout under the time-warp bar; bare, it reports frame rate, frame time and draw calls.fps on
perf [mark|reset|ablate]What this frame costs and what is being ticked, for catching a slowdown in the act: run it while the game is healthy, then again once it is slow, and the second report prints the difference. ablate switches off one subsystem at a time and names the culprit outright.perf ablate
rendererWhich renderer this build actually got, on which GPU, and where the window sits — the first question when a build runs badly on one machine and fine on another. A driver that is not the one the project asked for means the engine fell back, and a fallback is slower and looks different.renderer
smooth [on|off]Feathered edges on the hand-drawn world shapes (= Settings > Graphics > Smooth shape edges); off is about two thirds cheaper to draw, bare it reports the state.smooth off
versionThe build's version, the engine under it and the save-format version.version
clearWipe the console's output.clear
helpThe full in-console command list — always the authoritative one.help

Testing & tools

ToolCommandPurpose
Headless suitegodot --headless --script res://tests/run_tests.gdSmoke & regression tests (~3.3k assertions across 118 sections)
Screenshot harnessgodot --path . --script res://tests/screenshot.gd -- out=… seed=… grid=… cmd="…"Boots the real game with rendering, stages state via console, saves a PNG (needs a display — DISPLAY=:1, not --headless). These wiki screenshots were made with it.
Figure sheetgodot --path . --script res://tests/figure_sheet.gd -- out=… scale=6The real companion figure drawn many times over on a plain background — every face, kit piece, view, silhouette, complexion and mark, the walk cycle in profile, the portraits beside them. A drawing change is only reviewable side by side, which a game screenshot cannot do. Needs a display
Creator shotgodot --path . --script res://tests/creator_shot.gd -- out=… seed=… slot=…Renders the character creator on a bare tree — no world, no run, exactly its situation on the title screen. Needs a display
Soak testtests/soak_test.gdN-day base-balance net (not in the suite)
Benches / probestests/animal_bench.gd, grid_benchmark.gd, river_probe.gd (the whole terrain census — drainage, coast, wind, wood, soil, spawn and the land tally), height_probe.gd, gen_cost_probe.gd, water_probe.gd, sim_night.gd, nav_edge_probe.gdTargeted performance / behaviour probes
The suite is split by domain (17.5)
tests/test_base.gd (a RefCounted, not a SceneTree) is the toolkit — every constant, autoload accessor, world-builder and assertion helper lives there once, so the modules compose in one process; the tree APIs the tests need are re-exposed as vars set by bind(tree). Eleven domain modules extend it (test_core / terrain / resources / water / survival / equipment / jobs / automation / building / ui / meta.gd) and hold only their _test_* functions — every helper belongs in the base, none in a domain. run_tests.gd stays thin: set up once, bind the modules, then dispatch in the original order — grouping is organisational only, execution order is byte-identical, which is what makes the split safe against hidden inter-test ordering dependencies. A new test goes in its domain module and the dispatch list.
Two traps the split cost
Tests that used to run on a SceneTree must be rewired: get_first_node_in_group goes through the base's wrapper, and current_scene/paused/all(self) /close_all(self) take tree, not self. And an async test must be awaited — a detached one runs on and resets the autoloads in the middle of a later test.

Godot binary for this environment: ~/Downloads/Godot_v4.7-stable_linux.x86_64. After adding a class_name, rebuild the class cache before headless tests. Claude cannot see the running viewport — visual work is verified through the screenshot harness or by the developer.

Re-shoot the wiki screenshots
All screenshots regenerate from one script: wiki/screenshots/ is produced by the batch used to build this page (seed 12345, grid 256, res 1360×760). To refresh a shot, re-run screenshot.gd with the same out=, seed= and cmd= line and drop the PNG back in place.

Versioning

One number, one source, and the two things it is deliberately not.

The game's version lives in exactly one place: application/config/version in project.godot — the engine's own field, so an exported build carries it in the PCK for free. Everything in the game reads it through GameVersion (scripts/main/game_version.gd), a static class like BuildCategories: GameVersion.string() gives "0.5.0", GameVersion.label() gives "v0.5.0" — the one spelling every screen uses, so no label re-types the "v".

A release is not a build. The number only moves when a release is cut, so between two of them every build wears the same one — twenty-three commits and three features once all reported 0.5.0. Since 2026-07-26 the class answers both questions: GameVersion.string() is the release, build_id() is this build<commits>.g<sha>, plus .dirty for an uncommitted tree, and empty when the build is the release. build_string() puts them together as 0.5.0+23.gb81e6d1. It is derived from git, never typed, and never a gate — pure provenance.

How an exported build knows
There is no repository inside a .exe: in the editor build_id() asks git describe (once per process, then cached), and for an export tools/stamp_build.sh bakes build_stamp.txt beforehand — carried into the PCK by include_filter. The stamp is gitignored on purpose: committed, it would change with every commit and could only ever name the one before the commit it ships in. In the editor git wins, so a stale stamp is harmless.

tools/export.sh does both halves: it stamps, then names the file from the seam (build/survival_0.5.0+27.g8331277.exe) — the path on the command line beats the preset's, so the preset stays generic. It has to: the editor's export dialog writes whatever filename you pick into export_presets.cfg, which is how a hand-typed survival_0.3.0.exe came to sit there two releases later. The suite now fails on any preset whose output path contains a version.

Scheme: plain semver. While the prototype runs at 0.x, MINOR goes up per completed feature batch and PATCH for fixes; 1.0.0 is reserved for the release that closes the run arc (ROADMAP Milestone 10, the migration cycle). Milestone-derived numbering was rejected — milestones complete out of order, so the version would have run backwards.

Two versions that must not be confused
SaveManager.SAVE_VERSION is the save file FORMAT — the only number that may ever refuse to load a file. GameVersion is the build that wrote it, stamped into each save's header as game_version and shown in the save browser's tooltip. A save from an older build always loads; the stamp is provenance, never a gate.
It moved to 3 on 2026-08-04, and the reason generalises: a save does not store the map, it stores the seed and regenerates the world from it, then lays the player's diffs over the top. The terrain pitch replaced the height field, the rivers, the coast, the moisture and the forest — so the same seed grows a different island, and an old save would put a house in a lake and a fisher's hut inland. Reading it would be worse than refusing it: the refusal is the migration. Whenever a change makes a seed stop meaning the same map, this number has to move.

Where it shows: the title screen's bottom-right corner, the pause menu, every save's header, the console command version (which also prints the engine build and the save format), the Windows executable (mirrored into export_presets.cfg), and the line at the top of this page. The first four show the build — a save header carries build_id beside game_version, so two runs saved a week apart under one release number no longer read as the same game.

Cutting a release (full steps in CHANGELOG.md): bump project.godot, mirror the number into export_presets.cfg and this page, write the changelog section, run the headless suite, commit, then git tag -a v<version>. The suite fails if the three copies drift apart — that check is what keeps the mirrors honest.

A MINOR release costs more than a PATCH. Only x.y.0 freezes its own wiki archive — both languages plus a re-shot copy of every screenshot, roughly 10 MB per release. Paying that for a one-line fix is what made a bump a ritual, and a ritual that expensive does not get performed, which is how a whole day of work ended up sharing one number. A patch release therefore rides on the archive of its minor line: needs_wiki_archive() and release_line() are the seam, the suite checks a patch against v<major>.<minor>.0, and wiki/snapshot.sh declines to freeze a patch while still rewriting the version picker.

One command: tools/cut_release.sh
tools/cut_release.sh <version|patch|minor|major> performs every mechanical step: it validates (semver, strictly forward, no such tag, clean tree, an ## Unreleased section that actually says something), bumps project.godot and all three mirrors including both pages' „last revised“ date, gives the Unreleased section its number, runs wiki/snapshot.sh and the suite, then commits and tags with --commit. --dry-run shows every edit and writes nothing; --shots re-shoots the wiki first. Each mirror edit dies if its pattern did not match — a silently un-bumped mirror is the failure it exists to prevent — and a MINOR refuses to run without --shots/--skip-shots and without --wiki-done/--wiki-skipped: the archive freezes whatever pictures are on disk forever, and the minor is the one moment this page gets written at all. It never pushes, never merges, and does not publish the build.

Who cuts one: a PATCH is cut without asking at the end of a fix-only job with a green suite; a MINOR is proposed and waits for a human go — sixteen re-shot screenshots want an eye on them before they are frozen.

Publishing the build — one .exe, always the newest

The download button at the top of this page links companions_<version>.exe sitting next to index.html on the server, and exactly one build exists there at a time. Publishing is the last step of a release, after the tag:

StepWhat it does
tools/export.sh Builds build/companions_<version>.exe and deletes the superseded builds in build/ (--keep-old opts out). A build off the tag has no build id in its name; every other build carries +<commits>.g<sha>, which is what stops a dev export from ever being published.
wiki/deploy.sh Reads the filename back out of this page, uploads that build if the server does not already have it, and then deletes every older companions_*.exe there — never before, so a failed upload cannot leave the site with no download.
wiki/snapshot.sh Strips the download block out of the copy it freezes: an archived page offers no download, because that build's file is gone the moment the next release lands.

What an exported build actually is — none of it visible in the editor, which is why all of it had been wrong for a year. The .exe no longer carries the test suite or the wiki (the export filter shipped 59 test files and every screenshot: 157.5 MB → 147.5 MB, and the living wiki/ gained the .gdignore its archives always had). It says who made it and wears its own campfire icon, written from one geometry by tools/gen_icon.py so icon.ico and icon.svg cannot drift apart, and there is no companions.console.exe beside it any more. The game also keeps its own user directory (use_custom_user_dir): the UserDir autoload runs first of all and copies an older installation's folder across once, never deleting it — this had to land before the first Steam build, because Cloud file patterns are written against that path. tools/export.sh --linux builds for two platforms, and tools/steam_upload.sh pushes a build to a SteamPipe depot (it refuses a working-tree build, refuses --live unless asked, and reads the ids from an ignored tools/steam.env). It is deliberately not part of cut_release.sh: cutting is not publishing.

The link is a mirror like the version number — cut_release.sh rewrites it and the suite fails if it drifts. It has to be strict: this vhost answers a missing file with this page and a 200, never a 404, so a link to an unpublished build would hand a reader HTML under an .exe name rather than fail visibly.

The wiki archive — one frozen page per release

This page is a living document: it always describes the build in development. So that it can also say what an older build did, every release freezes a full copy under wiki/v<version>/ — both languages and their own copy of the screenshots, because an archived page showing today's pictures would defeat the point of archiving it. The picker in the sidebar reaches every frozen build; a frozen page wears an amber banner and links back here.

ScriptWhat it does
wiki/shots.sh Re-shoots every wiki screenshot from the real game, one list, same seed each time so two builds' pictures are comparable. DISPLAY=:1 wiki/shots.sh for all of them, or name a few: wiki/shots.sh hero party. Needs a display — the harness boots the game with rendering, so --headless cannot do it.
wiki/snapshot.sh Freezes the live pages + screenshots as wiki/v<version>/, stamps the archived banner into the copies, and rewrites the version picker on the live pages. Reads the version from project.godot, so it runs after the bump. Idempotent.
wiki/deploy.sh Uploads the live pages, every translation and every archive directory. Warns if the <style> or <script> blocks of the two languages have drifted apart.

Release order, and it matters: edit both pages for the release → wiki/shots.sh (so the frozen set is this build's) → bump project.godot, export_presets.cfg and both pages → wiki/snapshot.sh → changelog, suite, commit, tag.

Keeping this in sync important

Standing directive (2026-07-27)
Everything that matters must be in this wiki. Rather too much than too little — but in measure, and readable. A feature is not done until F1 and this page reflect it. The bar for "matters": if a player could make a worse decision without knowing it, it belongs here.

When a player-facing mechanic changes (a control, a building, a gather target, a survival rule):

  1. Edit HelpPanel.HELP_TEXT in scripts/ui/help_panel.gd — the single on-screen source of player help (its nav is derived from the section headers, so keep the [font_size=17][color=#9ec1ff][b]…[/b] header format).
  2. Write the changelog entry under ## Unreleased. That section is this page's to-do list — see the next callout.
  3. At the next MINOR release, update the matching Player Guide section here, and — if the change touches code structure (a new file, seam, tunable or console command) — the matching Developer Reference section, re-shooting the screenshot where it shows.
When this page is written (2026-07-29)
At the minor release, and at no other time. Until then the rule was "same commit as the code", and it applied to F1 and this page alike. It still applies to F1 — that text ships inside the build, so it is wrong the moment the code lands. This page is only wrong once someone can download the build it describes, so it is brought up to date as the first step of cutting a feature release. What keeps that honest is the changelog: tools/cut_release.sh minor prints back every ## Unreleased heading and refuses to run without --wiki-done or --wiki-skipped. A patch touches this page not at all (2026-08-08, user decision): it bumps the version the game reports and stops there, shipping no build — so the page goes on naming the MINOR it was written for, and a fix reaches players at the next one. The single exception is a fix worth publishing on its own, where the download link alone is moved by hand.
In measure, though
"Rather too much" is about coverage, not about length: no mechanic missing, but each one told once, in the section where a reader would look for it. A rule that fits in a table row does not become a section, and the same rule is not repeated in three places — a second copy is the one that goes stale. When a section stops being skimmable, split it rather than letting it grow.
One language (2026-07-27)
The wiki was bilingual from 2026-07-21 until 2026-07-27, when the German twin (wiki/index.de.html) was retired by user decision. There is one living page again. Archives frozen before that date keep their German copy — they are records of what shipped, not documents to be corrected; only their "current version" link no longer resolves.

The developer reference is derived from the seam catalogue in the project memory index (memory/MEMORY.md), where each system names its one seam — the fastest place to confirm where a mechanic actually lives.


Companions — prototype developer wiki. Player Guide mirrors the in-game F1 help; Developer Reference maps mechanics to files, seams, tunables and console commands. Screenshots made with tests/screenshot.gd (seed 12345).