Files
institution/README.md
T

62 lines
3.4 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 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).