103 lines
5.6 KiB
Markdown
103 lines
5.6 KiB
Markdown
# Criminal Record — the history of fact
|
|
|
|
If [Propensity](Propensity.md) is *suspicion* — "this pawn seems dangerous" — the criminal record is
|
|
*fact*: "this pawn **has** escaped twice and shanked a guard." The two are deliberately different
|
|
kinds of thing. Propensity is computed fresh from who a pawn is and how they're treated; a record is a
|
|
durable log of what they've actually done, written once when it happens and read forever after.
|
|
|
|
There is exactly **one criminal record per pawn**, and the whole suite shares it. Classification grades
|
|
on it, parole gates on it, the deterrence loop reacts to it, and reintegration remembers it. Because
|
|
everyone reads the same record, no two parts of the suite can disagree about a pawn's past.
|
|
|
|
---
|
|
|
|
## What a record remembers
|
|
|
|
A record is a small set of counters plus two special marks. Core provides the record and keeps it
|
|
safe; the individual events are logged by whichever mod they happen in.
|
|
|
|
| What it tracks | Starts at | Meaning | Tracked by | Used by |
|
|
|---|---:|---|---|---|
|
|
| Crimes committed | 0 | count of committed crimes | Justice (and gang fights) | classification risk score, deterrence |
|
|
| Escape attempts | 0 | breakout attempts | Contraband | classification risk score |
|
|
| Contraband made | 0 | items brewed / whittled | Contraband | classification risk score |
|
|
| Times searched | 0 | how often searched | Contraband (warden search) | search prioritisation |
|
|
| Times caught | 0 | searches that found something | Contraband (warden search) | classification risk score |
|
|
| Last crime | never | when the most recent crime happened | Justice | recency / cooldown checks |
|
|
| Reform | 0 | rehabilitation score (see below) | Justice (discipline, parole) | **Propensity's Nurture**, parole gate, reintegration |
|
|
| Pardoned | no | granted a clean slate after genuine reform | Justice (on release) | parole gate, reintegration |
|
|
|
|
"Last crime" starts at *never* — a distinct value from "at the very first moment of the game."
|
|
Everything else starts at zero / no.
|
|
|
|
> **Who logs what.** Core is the *vault*, not the *clerk*. It hands out records and keeps them; the
|
|
> actual "a crime just happened, add one" logging lives in the mod where the event occurs. The columns
|
|
> above name which mod does that — Core itself only holds the fields.
|
|
|
|
## Reform — the pivot of the suite
|
|
|
|
Most of a record is inert tallies. **Reform** is the one entry that feeds back into behaviour, and it's
|
|
worth its own section. It's raised by good treatment and good conduct, decays without either, and can
|
|
be driven negative by harsh punishment. A record is where a sentence's *outcome* is stored, and three
|
|
systems lean on that one number:
|
|
|
|
- **[Propensity](Propensity.md)'s Nurture** scales a pawn's disposition by their reform score — so a
|
|
genuinely rehabilitated pawn (reform above 0) is calmer *for good*, and a prisonized one (reform
|
|
below 0) is inflamed *for good*. This is how institutionalization and recidivism enter the game
|
|
without a separate mechanic bolted on.
|
|
- **Parole** (Justice) gates release on it: a pawn is only releasable once reform clears a threshold.
|
|
It's the number that says "this one is ready."
|
|
- **Reintegration** reads it to decide when a clean slate is earned — which is what the *pardoned*
|
|
mark records.
|
|
|
|
The negative range isn't a bug — it's the "hardened" end of the spectrum, and Nurture is written to
|
|
expect it.
|
|
|
|
## Pardoned and blank records
|
|
|
|
The **pardoned** mark flips on exactly once, after genuine reform, so reintegration can grant a clean
|
|
slate without erasing the history that earned it — the counters stay, but the pawn is marked forgiven.
|
|
|
|
A record counts as **blank** when nothing meaningful has ever been written to it: no crimes, no escape
|
|
attempts, no contraband, never caught, reform still 0, not pardoned. Note what blankness *ignores*:
|
|
times searched and the last-crime time aren't part of the test. A pawn who was searched and found clean
|
|
— searched but never caught, never a crime — still counts as blank. That's intentional: being
|
|
*checked* is not a mark against you, only being *found* is.
|
|
|
|
---
|
|
|
|
## Records are created only when needed
|
|
|
|
Records are made lazily. A pawn only gets a record the first time something is actually **written** to
|
|
it — a crime, a search that found something, a reform change. Simply **reading** a pawn's disposition
|
|
never creates one.
|
|
|
|
That distinction matters because Propensity's Nurture reads a pawn's reform score constantly, on every
|
|
pawn on the map, as part of judging their mood. If merely checking disposition created a record, every
|
|
mood check would stamp a criminal file onto every innocent pawn on the map. Because reading only peeks
|
|
— and tolerates a pawn having no record at all — the innocent stay off the books.
|
|
|
|
The rule the whole suite follows: **something happened → a record is created and written; just looking
|
|
→ no record is created.**
|
|
|
|
---
|
|
|
|
## Persistence
|
|
|
|
Records save with your game and reload with it, and there's exactly one shared store for the whole
|
|
colony — no mod keeps its own private copy, which is what keeps them all agreeing with each other.
|
|
|
|
On load, that store cleans itself up. Three kinds of record get dropped:
|
|
|
|
1. **Records of pawns who are gone** — dead or removed. They take their records with them.
|
|
2. **Corrupt entries** — a guard against a broken save.
|
|
3. **Blank records** — anything still blank. There's no reason to keep a file that records nothing.
|
|
|
|
The upshot: **records are cheap and self-cleaning.** Anything that never got a real mark written to it
|
|
simply evaporates on the next load, so the save never bloats with one empty file per pawn ever glanced
|
|
at.
|
|
|
|
---
|
|
|
|
*Part of the **Institution** suite.*
|