62 lines
3.4 KiB
Markdown
62 lines
3.4 KiB
Markdown
# 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. Each mod stands alone and requires none of the
|
||
others; together they form one system.
|
||
|
||
## The thesis
|
||
|
||
> Every pawn has a criminal propensity on a spectrum — **nature** (traits) × **nurture**
|
||
> (circumstance, mood, treatment) — and the colony can **police** it.
|
||
|
||
The suite is the two halves of that: colonists commit crimes and a policing layer catches them
|
||
(pre-arrest), and prison / contraband / wards / secure areas hold and reform them (post-arrest).
|
||
Arrest is the hinge. Nothing hard-codes "prisoner" — every held-person system keys off a
|
||
**secured context**: prisoner, ward patient, slave, or secure-area occupant.
|
||
|
||
## The mods
|
||
|
||
| Mod | What it is | Status |
|
||
|---|---|---|
|
||
| [Foul Play](https://git.onetick.ninja/flan/rimworld-foulplay) | throw a container of something off a body; vessels + substances + the **Piss Nuke** flagship | shipping |
|
||
| [Institution: Contraband](https://git.onetick.ninja/flan/rimworld-contraband) | conceal / improvise / search / confiscate; intake, escape, secure areas | building |
|
||
| [Institution: Ward](https://git.onetick.ninja/flan/rimworld-ward) | involuntary psychiatric commitment — the third pawn state, neither free nor guilty | shipping |
|
||
| Institution: Regime | daily schedule (vanilla Restrict) + modest needs + visitation | planned |
|
||
| Institution: Justice | the crime loop, the policing officer, parole / discharge / manumission | planned |
|
||
| Institution: Discipline | security classification, punishment-as-order, corruption | planned |
|
||
| Institution: Gangs | prisoner & colony gangs, rivalries, contraband networks | planned |
|
||
|
||
## Principles
|
||
|
||
- **Self-complete, dependency-free.** Every mod works alone; none requires another suite mod or any
|
||
third-party mod. Integrations are always `MayRequire`-soft — features light up if a mod is
|
||
present and the loop still closes without it.
|
||
- **Coexist, don't duplicate.** We test against the all-time most-subscribed Workshop mods and
|
||
never rebuild what a genuinely good mod already does well — judged by quality, not sub count.
|
||
- **Extend by capability, not by list.** New content registers via `IsWeapon` / `IsDrug` /
|
||
category, so modded items are covered without being named.
|
||
|
||
## The plan
|
||
|
||
The full design, module scope, build order, and prior-art verdicts are in
|
||
[ROADMAP.md](ROADMAP.md). Per-mod roadmaps live in each repo (e.g. Contraband's item build list).
|
||
|
||
## Compatibility
|
||
|
||
The in-game harness (`Tools/run-compat-test.sh` in the Ward repo) boots a real headless RimWorld
|
||
with the suite plus the popular psych/prison mods **and** the all-time most-subscribed mods loaded
|
||
at once, and fails on any error naming our code. Combat Extended gets its own dedicated pass. It
|
||
needs a licensed RimWorld + xvfb, so it is a LOCAL step, not CI.
|
||
|
||
## CI
|
||
|
||
Each code repo runs a Gitea Actions workflow (`.gitea/workflows/ci.yml`) on push: **lint def XML**
|
||
(catches malformed XML and relative-xpath silent no-ops) + **dotnet build** against the Krafs
|
||
RimWorld reference assemblies (no game install needed). Runs on the self-hosted `truenas-runner`
|
||
(host mode, label `ubuntu-latest`); .NET is provisioned per-run via `setup-dotnet`. Green across
|
||
Foul Play, Contraband, and Ward.
|
||
|
||
## AI disclosure
|
||
|
||
Designed and built with substantial assistance from Claude (Anthropic).
|