46 Commits
Author SHA1 Message Date
flan 2b9d53abc4 Remove README badge wall; drop heading emoji and extra emphasis 2026-08-03 23:43:00 +00:00
flan cb163ff596 Repoint forge references from git.onetick.ninja to git.arch.fyi 2026-08-03 20:03:18 +00:00
flan 7484a9bf70 Add project badges 2026-08-03 19:28:35 +00:00
flan b813cb8b4f Add sponsor badges to README 2026-08-03 19:09:26 +00:00
flan 17462eefc8 Add donation links (GitHub Sponsors, Ko-fi) 2026-08-03 18:46:24 +00:00
flan d4fa0bec17 Add the wiki link to the store description + the mod <url> 2026-07-16 02:59:54 +00:00
flan 8250dcb369 Wiki: player-facing rewrite of every layer + add a scenario FAQ, linked from Home 2026-07-16 02:18:25 +00:00
flan ff703271ba Rewrite the README for players: what each layer does in play, the wiki linked front-and-center 2026-07-16 02:05:56 +00:00
flan 5465f64a3d Rewrite the store description to the six-layer split (Policing/Corrections/Ward) 2026-07-16 01:57:14 +00:00
flan 1b3403efff Aggregate: vendored Defs follow the namespace rename (Class=Institution.*) 2026-07-16 01:51:20 +00:00
flan d0a4c001fa Release 0.1.0 2026-07-16 01:48:01 +00:00
flan 3fc4ef7a1d Rename the shared code namespace Contraband -> Institution; add license
The suite's classes all lived in namespace Contraband -- a historical artifact from the original
Contraband monolith, which read oddly for a class in Corrections or Policing. Renamed to namespace
Institution across every layer (46 .cs, the XML Class= refs, RootNamespace, the aggregate shim). The
Contraband MODULE, its Contraband.dll assembly, and the Contraband-named classes (CompContraband,
MapComponent_Contraband, ContrabandUtility, ...) are unchanged. Harness-verified 45/0.

Also adds a CC-BY-NC-SA 4.0 LICENSE file.

Aggregate: the settings shim now writes Institution.InstitutionSettings; Assemblies re-vendored with
the renamed DLLs; ROADMAP status refreshed to the six-layer suite at 0.1.0.
2026-07-16 01:45:34 +00:00
flan e96ac23949 Move AI attribution to a single NOTICE file
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.
2026-07-16 01:30:09 +00:00
flan ac68350662 Re-aggregate wiki after the NOTICE migration 2026-07-16 01:12:46 +00:00
flan 8007f4e4e2 Re-aggregate wiki + repackage for the split
sync-wiki.sh mirrors policing + corrections instead of justice; the aggregate Wiki index and the
per-layer folders reflect the six-layer suite (Core - Contraband - Policing - Corrections - Gangs -
Ward) and the reserved Judiciary seam. Assemblies re-vendored with the fresh module DLLs.
2026-07-16 01:07:06 +00:00
flan 7ce9c045c3 Repackage the aggregate onto the Policing + Corrections split
package.sh builds and vendors InstitutionPolicing + InstitutionCorrections (Policing first) instead
of InstitutionJustice, and merges both modules' Defs. The settings shim's 'Justice' checkbox becomes
'Corrections'; deterrence and riots move under the Policing toggle.
2026-07-16 00:45:41 +00:00
flan d44b7887d9 Repackage aggregate onto the smuggling-route build; add TUNING.md
Vendors the Contraband build that wires Corruption.Smuggle (visitors and bent
wardens deliver contraband). TUNING.md records the measured per-day rates from
the full-stack harness against their pre-registered target bands -- all in band:
ordinary colonists ~never offend, a mistreated psychopath ~1 crime/day, reform is
a 0.7-2 day investment. No constant was changed; the run validated the pacing.
2026-07-15 23:21:55 +00:00
flan 3d4f1b0052 Re-package with the security marker + texture bundled; ROADMAP: feature list complete, only playtesting remains 2026-07-15 22:30:03 +00:00
flan 8fe98b4560 Sync wiki: Regime section (yard/lockup + visitors) 2026-07-15 22:07:18 +00:00
flan fe8971c1db Re-package with visitation + Yard/Lockup bundled; ROADMAP: these ship now 2026-07-15 22:05:59 +00:00
flan 26205b9206 Re-package with the enforcement layer; refresh the stale ROADMAP; sync wiki 2026-07-15 21:40:35 +00:00
flan 7d8c376047 Wiki: link Foul Play to its wiki rather than its repo 2026-07-15 21:14:24 +00:00
flan 18a983b7cc Re-package with the corrections layer bundled; sync the wiki (Rehabilitation page, loop update) 2026-07-15 21:01:28 +00:00
flan 3530100ed5 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.
2026-07-15 20:30:38 +00:00
flan 25eb3a77db Fix: bundle Ward's Patches into the aggregate (Rim Disorders integration)
The re-package vendored Ward's Defs and Textures but not its Patches/ dir,
so the disorder-treatable marking never applied -- psychiatric treatment
silently did nothing to the illness a patient was committed for. package.sh
now vendors Ward's Patches too. The folded-suite compat harness confirms it:
integration.disorderMarkedTreatable now passes with Ward bundled in the
aggregate.

Add the suite-overview wiki (Wiki/Home.md).
2026-07-15 20:27:57 +00:00
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
flan bd96c2c516 Add the Policing settings toggle; re-vendor Core + Justice DLLs
A fourth checkbox (Policing, default on) drives colony crime independently, and
the re-vendored drop-in carries the flipped-on Core flag, the enrichments, and
prison riots.
2026-07-15 18:37:17 +00:00
flan 703317b507 Re-vendor the Justice DLL with the resistible arrest into the drop-in 2026-07-15 18:09:26 +00:00
flan 0a26804626 Re-vendor the Justice DLL with the weighed arrest into the drop-in 2026-07-15 17:50:12 +00:00
flan 6fd3c3eb9b Vendor Justice's crime ThoughtDefs + updated DLL into the drop-in
package.sh now merges Justice's Defs (the crime relationship thoughts) into the
aggregate's Defs tree alongside Contraband's, so the shipped one-mod Institution
carries them. Re-vendors the Justice DLL with the consequences/relationship code.
2026-07-15 17:06:54 +00:00
flan 7fd3d32eb2 Re-vendor the Justice DLL with the cops investigation loop 2026-07-15 16:47:32 +00:00
flan 18fc44c728 Consolidate the suite into one installable Institution mod with toggles
This repo is now the single player-facing mod. It bundles the whole engine and
all three feature layers into one folder -- Core, Contraband, Justice, and Gangs
DLLs plus Contraband's Defs -- with one About.xml and a settings shim that turns
each layer on or off from a checkbox (all on by default). A player installs one
mod (this) and Harmony; no separate Core dependency.

- Source/Institution: the only new code, a settings shim (InstitutionMod +
  InstitutionModSettings) that writes the player's choices into Core's shared
  InstitutionSettings. It owns no gameplay.
- Tools/package.sh: rebuilds the sibling DLLs clean and vendors them + Contraband's
  content in here, so the repo stays a complete drop-in.
- Assemblies/, Defs/, Textures/, Languages/: the vendored, assembled mod.

Still fully modular and splittable: the feature code stays in its own repos and
DLLs (their About.xml files remain), so breaking this back into separate mods is
just shipping them individually -- no code change.
2026-07-15 16:11:56 +00:00
flan 401d34f390 Note the four-mod split at the top of the roadmap
Adds a status callout establishing the shipped Core/Contraband/Justice/Gangs
topology and pointing at the README, so the older design sections (which group
modules the pre-split way) don't mislead. The north star and secured-context
principle are unchanged.
2026-07-15 08:08:39 +00:00
flan 094f531ca0 Update the suite map for the four-mod split
Core / Contraband / Justice / Gangs replace the old monolith-plus-planned
layout: adds Institution: Core, slims Contraband to the physical smuggling
loop, and promotes Justice (with Regime/Discipline folded in) and Gangs from
planned to shipping. Updates the dependency notes and the standalone-vs-Core
principle to match the real topology.
2026-07-15 07:56:03 +00:00
flan 5284dbf067 roadmap: container physics (capacity, pour, dip furniture) + stage 5 shipped 2026-07-15 05:53:53 +00:00
flan 4a250435a8 roadmap: propensity merge shipped (Disposition.Source seam, stage 2) 2026-07-15 04:27:10 +00:00
flan 8c029eba88 roadmap: Foul Play is universal (any pawn fills vessels); the eight-liquid catalogue
- Universality principle: filling/fermenting/throwing/drinking/addicting are any
  pawn's behaviours, gated by disposition, not prisoner status. Contraband is the
  held-pawn CONCEALMENT lens on top. Prisoner gate lives only on the conceal path.
- Drink-any-fluid stage now includes blood as a substance and per-fluid addiction
  rarity modified by mental health + circumstances.
2026-07-15 04:04:56 +00:00
flan 036facab29 roadmap: generic vessels + runtime contents (Noita-flask model)
Hooch reframed per user directive: not a bespoke item but FP_Hooch the substance,
in generic vessels whose contents are runtime state -- fill, ferment, pour, drink,
mix. Staged: runtime substance -> drink-any-fluid -> contraband content tag ->
pour+mix -> ferment-model overhaul (age+dilution+sealed/open+temperature+spoil,
mirroring CompRottable). Any fluid drinkable with different consequences; blood is
a substance; any drink can breed addiction at a per-fluid rarity, modified by
mental health + circumstances.
2026-07-15 03:48:54 +00:00
flan fcfb32fff7 roadmap: secure-zone guard frisk + age/storage potency model
- Secure-zone checkpoints frisk guards too -> the counter-play to a bent warden
  smuggling contraband in. Wires corruption <-> secure zones <-> the search loop.
- Potency = age + storage (sealed/open), never container size. Topping up dilutes
  age (volume-weighted), so a shared bucket stays fresh while a hidden jar ages to
  full potency -- "a jar of old piss and a bucket of fresh" both make sense.
2026-07-15 03:18:13 +00:00
flan 78fe129911 roadmap: capture the expanded substance + warden-personality vision
Foul Play "finish substances" grew into a substance-cocktail system, staged so
each ships green:
- Hooch: fermentable, incendiary flame-splash firebomb (no splash-code change --
  just a flame damageDef through the existing GenExplosion path), also drinkable.
- Ferment in ANY liquid-holding furniture (toilet, barrel, tub, sink, vat),
  capability-detected by recognizable identity + known vanilla defs, no DBH
  dependency. Hooch requires a site; piss can use one but still brews from body.
- Mixing: a vessel's contents become a runtime blend of SubstanceDefs and the
  splash applies all effects together; defaults to the single substance unmixed.

Contraband warden-personality/corruption (queued under Discipline): search
intensity by trait + circumstance, per-warden item forgiveness, and bent wardens
who smuggle contraband IN -- the corruption supply route that feeds a gang.
2026-07-15 03:13:27 +00:00
flan 5a8b4becac roadmap: intake shipped Harmony-free (poll-based, not a SetGuestStatus patch) 2026-07-15 03:03:31 +00:00
flan dbd6ea0e03 roadmap: institutionalization & recidivism are ours, on our own axis
Corrected an over-correction. In a suite named Institution these are the
namesake, and our substrate builds them on an axis Prisoner Realism has no engine
for, so it is complementary, not a rebuild:

- Institutionalization -> prisonization, and NOT a new system: the existing
  Propensity.Nurture reads the existing CriminalRecord.reform field (signed:
  harsh regime prisonizes, rehabilitative reforms). One field, additive. When PR
  is present we soft-read its hediff as one more input -- no patch, no dependency.
- Recidivism -> we own the reintegrated who STAY and reoffend inside the colony
  (wiring gap D); PR owns the departed who return as raiders. Different
  population, no overlap.

Also records the governing constraint "defer the depth, never the payoff": the
propensity -> contraband -> detection spine is fully ours and self-complete; only
the response side (Discipline, Parole) needs its own minimal effect so nothing
dangles when PR is absent.
2026-07-15 02:50:38 +00:00
flan f90da721a4 Re-cut roadmap after Prisoner Realism deep scan
Mapped Prisoner Realism (11.3k subs, good) feature-by-feature. It owns 20
prisoner-behavior systems, several of which were on our build list. Under the
standing "keep good incumbents" rule:

- DELETE our reintegration+recidivism module. PR's Recidivism is complete and
  good. Parole keeps only the ideology-driven release decision (self-complete);
  PR supplies the return outcome when present.
- RE-SCOPE Classification to a pure router (reads record + propensity, assigns a
  tier). PR's Solitary owns the isolation toll.
- RE-SCOPE Gangs to contraband economies. PR's Ringleader owns mood contagion.
- NARROW the escape tool to the wall-cut path for ward patients and low-skill
  pawns PR's break/lockpick system never moves.

Sharpens Institution's uncontested core: hidden-contraband + search, propensity
across all pawns, Ward, Foul Play, classification-as-router, and policing free
colonists (the crime loop turned on your own colony).
2026-07-15 02:16:58 +00:00
flan 0f08132aa9 Add the four system-wiring gaps (shared substrate, real harm, deterrence feedback, reintegration)
A full-lifecycle audit found the gaps are missing CONNECTIONS, not features.
Without them the suite is a linear pipeline; with them it is a cycle. The shared
substrate (propensity stat + SecuredContextOf + CriminalRecord) must be built
first -- everything reads it.
2026-07-15 01:01:59 +00:00
flan 8879297274 Record CI: live and green on truenas-runner (host mode) 2026-07-15 00:54:49 +00:00
flan 77672b1083 Institution suite hub: master roadmap + overview
The suite-level home: the thesis (crime spectrum, nature x nurture, policeable),
the secured-context principle (prisoner/ward/slave/secure-area), all seven module
slots, the full crime loop, build order, prior-art verdicts, and the standing
rules -- self-complete and dependency-free, coexist-don't-duplicate judged by
quality not sub count, extend by capability not list.
2026-07-15 00:34:27 +00:00