Per the updated project policy, AI/Claude attribution lives in exactly one NOTICE file per repo and nowhere else -- removed it from the About description, README, wiki, and roadmap.
89 lines
5.0 KiB
Markdown
89 lines
5.0 KiB
Markdown
# Institution: Core — Wiki
|
||
|
||
*The shared foundation of the **Institution** suite: a set of RimWorld 1.6 mods about what an
|
||
institution does to the people inside it, and the crime, policing, and justice that put them there.*
|
||
|
||
Core is the engine every other Institution mod runs on. **On its own it changes nothing you can
|
||
see** — no items, no jobs, no UI, no XML. It ships one small assembly and is completely inert until
|
||
another Institution mod is installed on top of it. You install Core only because something else asks
|
||
for it.
|
||
|
||
This wiki documents what that engine actually computes, down to the exact numbers.
|
||
|
||
---
|
||
|
||
## The one idea
|
||
|
||
> **Every pawn has a criminal propensity on a spectrum — nature (traits) × nurture (circumstance,
|
||
> mood, treatment) — and the colony can police it.**
|
||
|
||
That single sentence is the whole suite. Colonists, prisoners, and slaves drift toward crime on a
|
||
continuous spectrum; a policing and justice layer discovers, catches, punishes, reforms, or paroles
|
||
them. Core is where the *spectrum* lives as code — before anyone is caught, before there is a record
|
||
to read, before there is a warden to search them.
|
||
|
||
## Why a shared engine
|
||
|
||
The propensity idea did not start abstract. It was written twice, concretely, in two different mods:
|
||
the piss spree's `WouldFoulPeople` (which drunk, miserable pawn starts a mess) and the breakout's
|
||
`WouldArmSelf` (which prisoner whittles a shiv when the door opens). Both asked the same real
|
||
question — *would **this** pawn do it?* — and both answered it their own way.
|
||
|
||
Core exists so they stop disagreeing. When the contraband system, the justice system, and the gang
|
||
system all read one disposition engine, they agree about who is dangerous instead of each computing
|
||
it from scratch and drifting apart. One pawn who is "the scary one" is the scary one to every module
|
||
at once. That coherence — not any single number — is the point of a shared substrate.
|
||
|
||
Core carries exactly the three things every Institution mod reads and none should own alone, and
|
||
nothing else:
|
||
|
||
| Pillar | Class | Answers | Page |
|
||
|---|---|---|---|
|
||
| **Propensity** | `Propensity` | *Would this pawn do it?* (nature × nurture, seeded) | [Propensity](Propensity.md) |
|
||
| **Criminal record** | `CriminalRecord` | *What has this pawn actually done?* (one per-pawn history) | [Criminal Record](Criminal-Record.md) |
|
||
| **Secured context** | `SecuredContexts` | *What kind of hold is this pawn under, and who may search them?* | [Secured Context](Secured-Context.md) |
|
||
|
||
The distinction between the first two is the spine of the whole design: **propensity is suspicion, a
|
||
record is fact.** Propensity says "this pawn *seems* dangerous"; a record says "this pawn *has*
|
||
escaped twice and shanked a guard." Keeping them separate is what lets the colony act on evidence
|
||
instead of on vibes.
|
||
|
||
## The pages of this wiki
|
||
|
||
- **[Propensity](Propensity.md)** — nature × nurture in full: the trait-weight table, the nurture
|
||
multiplier ladder, the `Would()` formula with worked examples, and why the roll is seeded per pawn.
|
||
- **[Criminal Record](Criminal-Record.md)** — every field, who writes and reads each, the
|
||
`For` vs `PeekFor` distinction, how it persists, and why `reform` is the pivot of the suite.
|
||
- **[Secured Context](Secured-Context.md)** — the Free / Prisoner / Slave kinds, `Of()` and
|
||
`OnMap()`, `IsHeld` vs `CanConceal`, and why the suite keys off this instead of "prisoner."
|
||
- **[Treatment Engine](Treatment-Engine.md)** — the shared rehabilitation maths: mark a condition
|
||
treatable, reduce it by skill × facility quality per session, and build a recovery track toward
|
||
discharge. Ward's psychiatric care and Justice's reform share this one engine.
|
||
- **[Modder API](Modder-API.md)** — the public surface any mod can call, and the one seam
|
||
(`Propensity.DeterrenceFactor`) that lets a justice layer feed back into disposition without Core
|
||
ever depending on it.
|
||
|
||
## The suite
|
||
|
||
Each mod stands alone as an install; together they form one system. Core is the leaf everything else
|
||
depends on.
|
||
|
||
| Mod | What it adds | Needs |
|
||
|---|---|---|
|
||
| **Institution: Core** (this) | the propensity / record / context engine | base game only |
|
||
| **Institution: Contraband** | concealment, improvised shivs, tunnels, warden search, warden corruption | Core |
|
||
| **Institution: Justice** | classification, deterrence, discipline, parole, regime, and **policing** (colony crime → weighed arrest) | Core, Harmony |
|
||
| **Institution: Gangs** | gangs as contraband economies: joining, smuggling, rivalry, fights-as-crime | Core, Contraband, Justice |
|
||
| **Institution: Ward** | psychiatric care — a prisoner treated, not punished, on Core's treatment engine | Core, Harmony |
|
||
| **Foul Play** | the vessel + substance + throw framework, home of the "Piss Nuke" | standalone; bridges to Core + Contraband |
|
||
|
||
## Requirements & load order
|
||
|
||
- **RimWorld 1.6.** Core references only the base game — no Harmony, no DLC, no other mod.
|
||
- Load Core **before** any other Institution mod (`loadAfter` Ludeon.RimWorld only).
|
||
- `packageId`: `flan.institution.core`.
|
||
|
||
---
|
||
|
||
*Part of the **Institution** suite.*
|