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.
6.9 KiB
Corruption
A search is only as thorough as the warden running it, and a warden is a person with their own diligence and their own price.
The counter to contraband is the warden search — but a search is not a machine. It is a human being with traits and a mood, and Contraband models that human being on two axes, both read off the same vanilla traits, mood, and relationships — no new stat to maintain:
| Axis | Question | Effect on a search |
|---|---|---|
| Diligence | How hard do they look? | multiplies the find chance |
| Corruption | How bent are they? | a flat chance to look away — and a route into the prison |
This is "what turns 'the game vs the player' into 'the player's own guards, each with an angle.'" The prisoner you can control. The guard you assigned to watch them, you cannot.
Diligence — how hard they look
WardenDisposition.Diligence(warden) returns 0..1 and multiplies the whole find chance in
JobDriver_SearchPawn. A lax or miserable warden misses things a dutiful one would turn up.
d = 0.55 // baseline
d += 0.1 × degreeOf(Industriousness) // Lazy lowers, Industrious raises (per degree)
d += 0.15 if Abrasive // no qualms turning a cell over
d -= 0.20 if Kind // a gentle hand
d += 0.10 if Psychopath // does not care how it feels
d ×= Lerp(0.6, 1.1, mood) // a miserable warden phones it in
d = clamp01(d)
| Trait / factor | Δ Diligence | Reasoning |
|---|---|---|
| Industrious | +0.1 per degree | a hard worker searches hard |
| Lazy | −0.1 per degree | a lazy one frisks gently |
| Abrasive | +0.15 | happy to toss a cell |
| Psychopath | +0.10 | thoroughness without squeamishness |
| Kind | −0.20 | reluctant to be rough |
| Mood | ×0.6 (miserable) .. ×1.1 (content) | morale is thoroughness |
Corruption — their price
WardenDisposition.Corruption(warden) returns 0..1. In a search, a bent warden gets a flat chance
to look away on each item they would otherwise have a shot at finding:
lookAwayChance = Corruption(warden) × 0.6 // rolled per hidden item, before the find roll
c = 0.04 // baseline — most guards are mostly honest
c += 0.40 if Greedy // has a price
c += 0.15 if Kind // bends the rules out of sympathy
c -= 0.10 if Ascetic // wants nothing, cannot be bought
c -= 0.05 if Abrasive
c ×= Lerp(1.6, 0.7, mood) // a desperate, miserable warden is more temptable
c = clamp01(c)
| Trait / factor | Δ Corruption | Reasoning |
|---|---|---|
| Greedy | +0.40 | the classic bent guard — everyone has a number |
| Kind | +0.15 | looks the other way out of sympathy, not money |
| Ascetic | −0.10 | wants nothing, so cannot be bought |
| Abrasive | −0.05 | too surly to do anyone a favour |
| Mood | ×1.6 (miserable) .. ×0.7 (content) | a happy guard is harder to tempt |
The Kind warden is a double liability
Read the two formulas together and one trait jumps out. Kind lowers Diligence (−0.20) and raises Corruption (+0.15). The gentle guard both frisks softly and bends the rules out of pity — the worst warden you can put on a contraband detail, and the least obvious one, because "kind" reads as a virtue everywhere else in the game. Meanwhile mood cuts the same way on both axes: a miserable warden looks less hard and is more temptable. A depressed guard is a sieve at both ends.
Worked examples
Find chance for a hidden item is baseFind × Diligence, with a separate lookAway = Corruption × 0.6 chance to ignore it entirely. Assume a mid-skill warden whose raw find chance on a shiv is
around 0.30 before disposition:
| Warden | Diligence | Corruption | Look-away/item | Net on a 0.30 shiv |
|---|---|---|---|---|
| Neutral, content | ~0.61 | ~0.03 | ~2% | thorough-ish: ~0.18 find |
| Abrasive + Psychopath, content | ~0.88 | ~0.02 | ~1% | a nightmare for prisoners: ~0.26 find |
| Greedy, content | ~0.61 | ~0.31 | ~18% | looks capable, pockets bribes |
| Greedy, miserable | ~0.37 | ~0.62 | ~37% | ignores contraband over a third of the time |
| Kind + miserable | ~0.25 | ~0.27 | ~16% | a sieve at both ends: ~0.07 find |
(Numbers rounded; mood taken as content ≈ 100% or miserable ≈ 20%.) The takeaway is that who you assign to search matters as much as whether you search at all. A greedy, miserable warden is not a guard — he is a supply line you are paying to pretend otherwise.
The bent warden as a supply route in
Corruption is not only "looks away." The Corruption.Smuggle primitive is the reaching-in half — a
guard who slips a prisoner contraband through the very same Conceal door a smuggler or a gangmate
uses:
ThingDef Corruption.Smuggle(warden, prisoner, tracker)
// picks a random OnBody-hideable contraband and Conceal()s it onto the prisoner; returns the def
Only what can ride on a body gets slipped across a handshake (OnBody). The method is the act
itself; the caller decides who and when, gated on WardenDisposition.Corruption. In Contraband
on its own, this primitive is exposed but not yet wired to an in-game trigger — it is the seam
Institution: Gangs drives when a gang's outside members pay a bent warden to make a delivery, and
the thing a planned secure-zone checkpoint that frisks guards is meant to catch. Search-side
corruption (looking away) is fully live today; reach-in corruption is the hook the rest of the suite
plugs into. See Compatibility.
How to play with it
- Vet your wardens. A Greedy or Kind pawn on prison duty is a liability the trait tooltip won't warn you about. Ascetic and Industrious make the best searchers; Psychopath and Abrasive are brutally effective if you can stomach them.
- Watch mood. A prison-duty warden in a slump is failing at both jobs — searching and not smuggling. Keep your guards content or rotate them out.
- Redundancy beats brilliance. Because each search is one shot per prisoner per day and even a good warden misses a well-hidden shiv, a second diligent warden over time matters more than a single perfect search.
Quick reference
| Constant | Value | Meaning |
|---|---|---|
| Diligence baseline | 0.55 | before traits and mood |
| Corruption baseline | 0.04 | most guards are mostly honest |
| Diligence mood scale | ×0.6 .. ×1.1 | miserable → content |
| Corruption mood scale | ×1.6 .. ×0.7 | miserable → content |
| Look-away multiplier | ×0.6 | applied to Corruption, per item |
| Smuggle payload | OnBody contraband only |
what fits in a handshake |
Part of the Institution suite — Core · Contraband · Justice · Gangs, alongside Foul Play and Ward. Each stands alone; together they interlock. Developed with substantial assistance from Claude (Anthropic).