Devlog
Work, eat, or fight: how a colonist decides
Every colonist runs the same short priority check once a tick, whatever they’re doing — hauling planks, standing watch, mid-swordfight. The order rarely changes, and it decides almost everything that looks like personality from the outside: who drops their tools to eat, who fights instead of running, who keeps chopping wood while a fight breaks out nearby.
The priority list
In order, first match wins the tick:
- Already fighting or fleeing? Finish it.
- Hunger or sleep critical? Go eat or sleep.
- Already doing something — working, eating, wandering? Keep at it.
- An order queued? Start the next one.
- Is there a job to do? Go find one.
- None of the above. Idle, or wander.
A fresh, nearby threat can still interrupt anything on this list — that’s what puts a colonist into row one to begin with. But once a fight is already underway, it isn’t one of the things allowed to interrupt itself.
That’s close to the whole system. Two exceptions are where it gets interesting.
Orders resist hunger, but not forever
A player-issued order — walk here, harvest that, attack this — isn’t dropped for ordinary hunger. The colonist finishes it first. Only severe need overrides an order, and severe is a specific number: half of whatever level made the need critical in the first place. Merely hungry finishes the harvest. About to collapse doesn’t.
Fighting or fleeing is a comparison, not a health bar
Most colonists don’t flee at “health below X%.” A colonist compares their own fighting strength — skill, attributes, health — against whatever’s attacking them, and only breaks off when they’re hurt or scared and actually outmatched. A strong colonist getting bloodied by a weak opponent stands and finishes the fight. The one override that isn’t a comparison: drop low enough — half the ordinary flee threshold — and anyone capable of running does, win or lose. Colonists fighting as part of a unit don’t run this check at all; the unit holds its ground instead. A hunter chasing wildlife stays on the fight until it’s nearly dead too — 15% health, regardless of the comparison.
The list used to be an accident
For most of this project’s life, that priority order wasn’t written down anywhere. It was whichever order the checks happened to run in, inside one long chain of early exits — which meant “the order” was really just whatever the last edit to that function left behind. It’s one explicit list now, closer to a filing cabinet than a pile of paper.
Status
Checked two ways before the old version was deleted: an exhaustive comparison against it across all 8,192 possible combinations of fighting / hungry / has-a-task / order-queued and so on — zero mismatches — then a live run in the real map, a raid fought start to finish with the new list as the only thing making decisions. The old version doesn’t exist anymore.
If a colonist somewhere is doing something this list can’t explain, that’s a bug. Tell me about it on Discord.
Follow the build
SpringFall is a colony sim built by one person, and these posts go out as the work lands. The SpringFall Discord gets builds and questions first; @SpringFallGame on X gets the short version of everything here.