flan 2d46fef192 Re-package the aggregate: bundle Ward + ship the policing layer
Fold Ward into the single Institution install as its psychiatric-care
layer. package.sh now builds Ward clean and vendors Ward.dll plus its
defs and textures alongside the other layers, and the settings shim
gains a Ward (psychiatric care) checkbox that writes the shared
InstitutionSettings.ward flag.

Re-assembling also carries in Justice's now-shipping policing defs (the
constable work type and crime thoughts), so the aggregate finally
bundles colony crime and the weighed arrest as well. README updated to
five layers over one Core with policing shipped and Ward folded in;
adds the changelog, the Workshop preview, and the preview generator.
2026-07-15 20:10:56 +00:00

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 is a separate install built on a small shared Core; 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 Needs Status
Institution: Core the shared engine — propensity (nature × nurture), the criminal record, the secured-context predicate. Invisible on its own — shipping
Institution: Contraband the physical smuggling loop — conceal / improvise shivs / Prison-Architect tunnels / warden search / corruption Core shipping
Institution: Justice corrections & policing — classification, deterrence, discipline & reform, parole, regime, and colony crime → witnesses → a weighed arrest Core, Harmony shipping
Institution: Gangs gangs as contraband economies — joining by disposition, smuggling networks, rivalry, fights-as-crime Core, Contraband, Justice shipping
Institution: Ward involuntary psychiatric care — a prisoner committed for treatment, not punishment, on Core's shared treatment engine: counselling reduces the disorder, a recovery track leads to discharge, and neglect deteriorates. Folded into the suite as its psychiatric-care layer Core, Harmony shipping
Foul Play throw a container of something off a body; a Noita-flasks liquid framework (vessels + substances) with the Piss Nuke flagship; bridges to the suite standalone shipping

The original monolith split along its natural seams in 2026-07: the substrate became Core, the corrections/justice systems became Justice, and the gang layer became Gangs, leaving Contraband as the physical smuggling loop. Regime (prisoner recreation) folded into Justice, which now also ships policing (colony crime → witnesses → a weighed arrest). Ward — once a standalone sister mod — is folded in as the psychiatric-care layer, consuming Core's shared treatment engine, so the suite is now five layers over one Core, bundled into a single install with a toggle each.

Principles

  • One shared engine, then build up. The suite runs on a small Core (propensity, record, secured context) so every mod agrees about who is dangerous instead of each guessing. Contraband and Justice build on Core; Gangs, the capstone, needs Core + Contraband + Justice. Foul Play stands fully alone and merely bridges to the suite when it is present. Cross-mod integrations that aren't hard dependencies stay soft — features light up if a mod is present and the loop still closes without it (e.g. Core's deterrence seam is neutral until Justice fills 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. 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; the split-out Core, Justice, and Gangs build clean and are exercised by the full-stack harness, with per-repo CI workflows still to be added.

AI disclosure

Designed and built with substantial assistance from Claude (Anthropic).

S
Description
The Institution suite hub — master roadmap linking Foul Play, Contraband, Ward and the planned modules. Private.
Readme
948 KiB
Languages
Python 70.2%
Shell 16.6%
C# 13.2%