Devlog
The healer who wouldn't heal
A colonist assigned as Healer would walk to a bleeding patient and stand there. Not stuck, not pathing badly, not busy with something more urgent — they arrived, and nothing happened, and the patient kept bleeding.
Two separate bugs were stacked, and the first one hid the second.
The skill gate was circular
Jobs used to carry skill floors. Below the bar, a colonist could not hold the job — and assigning them anyway produced no error, no warning, and no task for the rest of their life. The gate was also circular: a skill floor on a job locks a colonist out of the only activity that would raise that skill.
The floors are gone. Four separate requirement tables existed, and they had already drifted from each other — Knight read Combat 60 in one and Combat 50 in another. Two tables, one job, different answers. All four are deleted, along with the field they hung off, so a fifth cannot be added out of habit.
Deleting only those would have shipped a worse bug in silence. Eight task types carried their own minimum on their job’s core task — Hunt 10, Research 5, Trade 10, Construct 5, Defend 5, Capture 20, Heal 10, Teach 15 — and a task-level minimum is a hard reject. The jobs would have become assignable and inert: no error, and the colonist never receives a single task. All eight are now 0.
Two ladders stay, because they gate an advanced action inside a job already held rather than the job itself: the Bard’s performance ladder, and the prisoner ritual ladder. A Warden captures on day one and earns their way to the Bind Ritual.
Underneath it, a multiplication by zero
With the gates gone, the healer still stood there.
Tend quality scales with medical skill, and nothing floored it. Every colonist starts untrained at 0, so the multiplication came out at exactly zero benefit. The healer was working. The work was worth nothing.
An earlier pass had made this worse in a way that looked like the opposite. It added an actionability check — skip any patient this healer cannot meaningfully treat — which at skill 0 means every patient. The healer stopped walking over at all: invisible rather than merely useless, and the symptom now looked exactly like the skill gate that was in the process of being deleted.
The fix is a floor. An untrained tend applies 0.05 of a trained one’s quality, and the skill term is gone from the healer’s patient search.
Two traps it had to avoid, both now documented at the code that depends on them. The floor belongs in the tend-application path and not in the shared tending routine — that one is also used by periodic self-tending, which has a deliberate skill-above-5 gate of its own, and flooring it there would have broken that. And the patient search has to keep its “has something tendable” check: that is what actually prevents a self-targeting freeze. The skill term never did.
One deliberate exception: cleansing stays skill-gated. A tend is continuous, so “badly” is expressible as a small quality. A cleanse is binary — flooring it would hand an untrained healer the full benefit a trained one gets.
Bones, in the same pass
Bones break now. A broken leg limps visibly, and setting one takes a healer real time, scaled to the severity of the break rather than resolving on a button press.
Status
All of it compiles clean and is in the build. None of it is playtested — no untrained healer has yet been watched tending a real patient in a running colony. That is the next thing on the list, and if the farmhand still finds a way to stand there uselessly, it will be written up here.
Which would you rather have: the specialist two valleys away, or the amateur already standing over the patient? Say so in 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.