Aggregate the whole suite wiki onto the Institution page

Wiki/Home.md is the suite's front door; every layer's wiki now mirrors here
under Wiki/<layer>/ (core, contraband, justice, gangs, ward), so the whole
suite reads in one place with the index linking to the local pages. The
layer repos stay canonical -- Tools/sync-wiki.sh refreshes the aggregated
copy on demand. The README's main page points to it.
This commit is contained in:
flan
2026-07-15 20:30:38 +00:00
parent 25eb3a77db
commit 3530100ed5
31 changed files with 4574 additions and 6 deletions
+118
View File
@@ -0,0 +1,118 @@
# Institution: Ward
**Involuntary psychiatric commitment for RimWorld 1.6 — the third pawn state, neither free nor guilty.**
> **The psychiatric-care layer of the [Institution](https://git.onetick.ninja/flan/rimworld-institution)
> suite.** Ward runs on Core's shared treatment engine and ships bundled in the single Institution
> install with a toggle of its own; it still installs standalone (needing only Institution: Core and
> Harmony). Once a separate sister mod, now folded in.
RimWorld gives a person exactly two places to stand: **colonist**, or **prisoner**. There is no
third state for someone who is neither free nor guilty. Out of the box you cannot commit anyone. A
colonist breaks, wanders off, punches a wall, recovers on their own, and goes back to hauling steel
as though nothing happened. Mental breaks are episodic and amnesiac — nothing persists, nothing is
*done* about them.
Ward adds the missing state, and the room to put it in. A colonist you arrest can be set to
**psychiatric care**. Wardens counsel them at a **treatment station**. A room with prisoner beds
and a treatment station is a **psychiatric ward**, not a prison cell. Treatment lowers the patient's
mental-break threshold while it lasts — and it decays, so it has to be *sustained*. A ward you don't
staff is worse than no ward at all.
---
## The third state, without a fourth enum slot
The reason "commit a colonist" isn't a stock feature is a single compiled fact. `RimWorld.GuestStatus`
is a three-value enum:
```
Guest = 0
Prisoner = 1
Slave = 2
```
A mod **cannot add a fourth value** to a compiled enum. That one constraint drives every design
decision in Ward — and in the rest of the ecosystem. It is why *Hospitality* carries dozens of
Harmony patches to maintain a pawn who is in your colony but is not your colonist: the enum has no
slot for one, so it runs a shadow guest system and defends it by patching bed validity, allowed
areas, the work JobGiver and the mental-state handler.
**Ward doesn't pay that tax.** A committed pawn *is* a prisoner, in vanilla's own sense of the word —
arresting your own colonist already performs the colonist→prisoner transition. Ward only adds a new
**mode** to hold them under, and `PrisonerInteractionModeDef` is a **Def, not an enum**. Adding one
is XML plus, at most, a worker class. This is not a trick; it is the established pattern. *Prison
Labor* already ships seven custom interaction modes of its own.
So the *state itself* costs **zero patches** — it is all defs:
| Extension point | What Ward adds | Patches needed |
|---|---|---|
| `PrisonerInteractionModeDef` | `Ward_PsychiatricCare` (non-exclusive) | 0 |
| `RoomRoleDef` (`workerClass` is public) | `Ward_PsychWard` | 0 |
| `WorkGiverDef` (`giverClass`) | `Ward_WardenPsychiatricCare` | 0 |
| `JobDef`, `HediffDef`, `ThoughtDef`, `ThingDef` | treatment, recovery, neglect, the station | 0 |
Ward *does* use Harmony where a patch is the cleaner tool (a patient's inspect line, and more), so it
is not a zero-patch mod. Its compatibility is about **which** methods it avoids: it touches none of
the contested methods the popular psych/prison mods fight over, and never prefixes
`MentalStateHandler.TryStartMentalState`. The full argument — which mods it was verified against and
why it can't collide with them — is on **The Compat Harness** page.
---
## Riding the prisoner rail (why the suite cares)
The design choice that makes Ward *cheap* also makes it *interesting* inside the wider Institution
suite. A committed patient is a genuine vanilla prisoner. That means they are a **secure context** in
exactly the sense the rest of the suite understands: a pawn who is held, searchable, and capable of
concealing and improvising contraband. A patient in a psych ward can hoard a shiv or brew something
foul in a smuggled vessel for **free**, because the contraband, search, corruption and gang systems
were written against "held pawn," and a ward patient satisfies that predicate without Ward writing a
line of integration code.
The ward is a prison cell that happens to also be a ward. `Room.isPrisonCell` is a cached field
written only when the room's shape changes — it is **not** derived from the room's role — so
re-labelling a cell as a ward cannot break containment, food delivery, or prison breaks. The compat
harness asserts exactly this: a built ward is both `roleIsWard = True` **and** `stillPrisonCellAsWard
= True`. The two claims pull against each other, and both have to hold.
---
## Wiki index
| Page | What's on it |
|---|---|
| **Home** (this page) | What Ward is, the third-state problem, the suite |
| **Commitment** | How commitment works in play: the mode, station, room role, work giver, job, hediff, thoughts, neglect, and how it stacks with recruitment — with every real def name and number |
| **The Compat Harness** | The in-game test tool this repo carries: booting real headless RimWorld with the whole suite + the most-subscribed Workshop mods (~24 active), the dependency-ordered build, the `WARDTEST` / `PNTEST` / `CBTEST` / `FPBRIDGE` assertion families, and how to run it |
---
## Part of the Institution suite
A set of RimWorld 1.6 mods about what an institution does to the people inside it. Each mod stands
alone as an install; together they interlock into one system — colonists and prisoners drift toward
crime on a spectrum of nature × nurture, and a policing/justice layer discovers, catches, punishes,
reforms, or paroles them. Ward's psychiatric ward is a secure context where a committed patient can
conceal and improvise contraband exactly as a prisoner can, because they ride the same prisoner rail.
| Mod | What it is |
|---|---|
| **Institution: Ward** (this) | Involuntary psychiatric commitment — the third pawn state, neither free nor guilty. Also carries the suite's in-game compat harness. |
| **Institution: Core** | The shared engine — propensity (nature × nurture), the criminal record, secured context. |
| **Institution: Contraband** | The physical smuggling loop — conceal, improvise shivs, dig Prison-Architect tunnels, warden search, warden corruption. |
| **Institution: Justice** | Corrections & policing — classification, deterrence, discipline, parole, regime. |
| **Institution: Gangs** | Gangs as contraband economies — joining, smuggling networks, rivalry, fights-as-crime. Also the home of the suite's cross-module `CBTEST` integration test. |
| **Foul Play** | The vessel + substance + throw framework, and the "Piss Nuke" flagship; bridges to Core + Contraband when both are present. |
Reference sibling mods by name — the mods are separate repositories and cross-repo links break.
---
## AI disclosure
This mod was developed with substantial assistance from Claude (Anthropic), including the
compatibility analysis, the def and C# implementation, and the test harness. This disclosure lives
in the repository (About.xml, README, and here); it is deliberately not repeated as commit-message
attribution.