Subterfuge just had its best month in years: a full balance pass, a brand-new smoke bomb skill with its own crafted reagent, a client-side stealth visibility overhaul, and a Distract that finally works. The combat math is in the best shape it has ever been. What the school still lacks is everything around the math: a skill sold by every trainer that does not exist, a poison passive whose level is read by nothing, caltrops that vanish in a frame, no locks to pick, no traps to disarm, no pockets it is legal to pick, and no way to know how hidden you are. This document surveys what the genre learned about thief gameplay, measures the tree against it, and proposes twenty-four improvements — sixteen of them pure client or data work.
Shroud's Subterfuge tree is a direct descendant of Ultima Online's thief: the stationary/moving stealth split is UO's Hiding and Stealth, the smoke bomb is UO Ninjitsu's smoke bomb, the poison coatings are UO's Poisoning ladder, and the backstab passives are as old as the genre. But UO's thief was never just combat math. It was a web of surrounding systems — Detect Hidden as the counter-investment, Lockpicking as a treasure profession, Remove Trap as the party moment, Stealing as an economy — and it spent twenty-five years learning which of those survive contact with an MMO population. The answer, learned the hard way through the 2003 insurance patch that killed the player-thief overnight: the PvE loops survive. The theft economies that lasted (UO's Doom stealables, WoW's junkboxes, ESO's Justice fences, OSRS's Thieving) all point the skill at NPCs and the world, not at other players' property.
SotA holds the skeleton of every ancestor system and ships almost none of the surrounding body. Measured against the genre, our gaps cluster in three places:
Twenty-four proposals follow. S1–S8 are fix-first honesty work, all client or data. S9–S18 build the counterplay spine and the toolbelt, still zero server code. S19–S24 are the systems tier — lockpicking, trapped chests, the PvE pickpocket economy, world stealables, the Perception counter-stat, and server-side broadcast suppression — each labeled with its real server cost. Two community asks are answered by name, and the whole ransom question stays where it already lives, on the PvP page's S22.
| # | Proposal | Tier | Size | Server | One-line pitch |
|---|---|---|---|---|---|
| S1 | Stop selling a skill that does not exist | 1 | S | none | pull dead Pick Lock from trainers; bank the stranded XP |
| S2 | Make Poison Weapon honest | 1 | S | none | wire the passive to a real reward; the tooltip stops lying |
| S3 | Obfuscate polish set | 1 | S–M | none | skill-level term, item text, merchant stock, real smoke |
| S4 | Caltrops that linger | 1 | S–M | none | the one-frame burst becomes a 20–30s spike field |
| S5 | Publish the stealth-break rules | 1 | S | none | one audited table of what ends concealment, in tooltips |
| S6 | The stealth eye | 1 | M | none | Hidden / Noticed / Revealed, driven from the real checks |
| S7 | Wire or delete the dead tweak | 1 | S | none | the movement threshold dial gains a reader or leaves |
| S8 | Reconcile the two distance models | 1 | S | none | targeting range vs visibility range: decide and publish |
| S9 | The suspicion ladder | 2 | L | none | NPCs investigate before they attack |
| S10 | Front-arc detection | 2 | M | none | behind a guard becomes a real place |
| S11 | Revealed: the re-stealth lockout | 2 | M | none | one debuff prices re-stealth; every counter speaks it |
| S12 | The noisemaker | 2 | M | none | a crafted throwable tier under the Distract skill |
| S13 | Sap's blackjack rule | 2 | M | none | unaware targets sleep longer and wake with no memory |
| S14 | Rogue gear that exists | 2 | M | none | the first items in the game that touch Stealth |
| S15 | The Smoke Pot | 2 | M | none | bottle the orphaned stealth field as a thrown cloud |
| S16 | The second coat | 2 | M | none | Poison Weapon 40 unlocks a utility-only coating slot |
| S17 | Ghost runs | 2 | M | none | cleared-unseen achievements; the community's own endgame |
| S18 | The quarry mark | 2 | M–L | none | a delayed finisher the victim's own running feeds |
| S19 | Lockpicking | 3 | XL | content + loot | the lock, the pick, and a standing supply of chests |
| S20 | Trapped chests | 3 | L | rides S19 | detect and disarm; the party moment that invites a rogue |
| S21 | Pickpocket NPCs | 3 | XL | theft op + DB rows | the PvE theft revival: junkboxes, a fence, daily limits |
| S22 | World stealables | 3 | L | spawn tables | skill-gated rare lifts that end up on your mantle |
| S23 | Perception: the counter-stat | 3 | L | enum + mirror | a net-new observer stat, plus the flare that reveals |
| S24 | Stop broadcasting the hidden | 3 | L | view filtering | the server stops sending what you should not see |
The tree holds seventeen entries: ten actives from Distract at the root through Camouflage and Silent Movement to Sneak Attack, Sap, Pick Pocket and Opportunity Strike, six passives from Train Dexterity to the Subterfuge specialization, and one ghost. Here is the tree as the trainer sells it, annotated with what each row actually does:
| Skill | Type | Trained | Notes |
|---|---|---|---|
| Distract | Active | 80 | tree root, reworked Aug 9 |
| Engage Opponent | Active | 80 | gap closer, spec stealth pulse |
| Trip | Active | 64 | knockdown |
| Camouflage | Active | 100 | stationary stealth |
| Silent Movement | Active | 100 | moving stealth |
| Obfuscate | Active | 12 | smoke bomb, new Aug 1 |
| Sneak Attack | Active | 96 | stealth opener, capped Aug 3 |
| Sap | Active | 72 | mez from behind |
| Pick Pocket | Active | 40 | cannot fire in any scene |
| Opportunity Strike | Active | 55 | post-dodge reaction |
| Pick Lock | Active | 33 | Coming soon. Does nothing. |
| Train Dexterity | Passive | 100 | core stat |
| Armor Weak Points | Passive | 88 | crit chance |
| Backstab | Passive | 90 | behind-target damage |
| Safe Fall | Passive | 61 | fall damage reduction |
| Poison Weapon | Passive | 77 | level is read by nothing |
| Specialization | Passive | 80 | scales nearly every rune |
One pipeline carries the whole school. A stealth rune applies a concealment effect; the effect writes the additive Stealth stat and drives the two visibility axes (a dissolve everyone sees, a per-observer perception channel); NPC aggro multiplies its detection radii by the stat; player visibility runs distance-and-angle bands through one shared perception class; and exactly one damage formula reads the stat directly. Every proposal below extends one of these nodes. None forks the pipeline — that discipline is what let August's balance wave land 21 data changes without breaking anything.
flowchart LR A["Stealth rune cast\nCamouflage / Silent Movement / Obfuscate"] --> B["Concealment effect\nbreak rules + grace windows"] B --> C["CharacterStat.Stealth\nadditive, consumers clamp"] C --> D["NPC detection\naggro + hearing + peripheral radii"] C --> E["Player visibility\ndistance + angle bands"] C --> F["Sneak Attack damage\nstealth term capped at 1"] B --> G["Visibility axes\ndissolve + per-observer channel"] style B stroke:#c9a55a,stroke-width:2px style C stroke:#c9a55a,stroke-width:2px
The August wave already fixed the combat math, and nothing here re-proposes any of it: the specialization term that read the wrong school, reaction windows cut from 11 seconds to 4.5, Sneak Attack gated to melee and its stealth multiplier capped, poison durations scaling with skill and spec, faster stealth cooldowns, a data-driven Distract radius that finally reworked into a five-target alert, the brand-new Obfuscate smoke bomb with its crafted reagent, and a client-side visibility overhaul — stealthed players actually disappear now, keep their name out of chat and the PvP list, stop being barked at by NPCs, and re-stealthing drops aggro when line of sight breaks. Testers got /tweak stealth dials and a /reactions overlay to check the new windows. That work is the floor this document stands on.
Territory: the PvP page owns the ransom system and everything downstream of it (its S22); alchemy owns poison recipes, oils, and the conserve chance (its S5 and S18); the Lunar magic school owns Vanish, Shadow Form, Night Step and Cocoon of Night; the traps epic owns trap-counterplay wiring; player dungeons own decoy doors. This page links rather than claims.
UO shipped the complete thief in 1997: Hiding and Stealth as separate investments, Snooping and Stealing as a two-stage crime, Lockpicking as a treasure profession, Remove Trap as the party ritual, Poisoning as a PvP terror, Detect Hidden as the counter-stat anyone could buy. It was the best emergent drama the genre ever produced, and it was slowly dismantled by its own victims: every protection layer players demanded — item insurance above all, in 2003 — drained the player-theft economy until only the PvE loops were left standing. The recovery UO chose is the single most instructive decision in the school's history: the same expansion that shipped insurance shipped the Doom stealables, rare artifacts liftable only with the Stealing skill, and the thief became a collector. Twenty years later that is still what a UO thief does.
Ultima Online: the ancestry itself — and the insurance arc, the genre's clearest proof that victim-protection and player-theft are a zero-sum dial, with PvE stealables as the recovery that worked. Dark Age of Camelot: detection as a smooth opposed formula players could reason about, poison as a loadout decision, and the Vanish lesson — escape tools must lock out re-engagement or they become engage tools. WoW: the complete themepark kit, plus two twenty-year lessons: maintenance is not gameplay (poisons went crafted, to vendor, to permanent ability), and lockpicking died of supply drought, not mechanics — when content stopped placing lockboxes, "LF rogue, tips paid" disappeared. ESO: the only shipped MMO thief economy — Legerdemain ranks earned by committing crime, pickpocketing with position and witness rules and a live success readout, the bounty-fence-launder pipeline — and the Nightblade cloak's cautionary tale that binary stealth counters leave both sides feeling cheated. GW2: stealth as a resource measured in seconds, and Revealed — one tunable lockout debuff that every anti-stealth tool in the game speaks. Thief: the founding vocabulary — the light gem, tools that edit the environment instead of the target, the blackjack's unaware-only rule, and a community that ran a 25-year prestige ladder on "finish it unseen."
| Capability | UO | DAoC | WoW | ESO | GW2 | Thief '98 | SotA today | SotA proposed |
|---|---|---|---|---|---|---|---|---|
| Stationary / moving stealth split | ● | ◔ | ◔ | ◔ | ○ | ○ | ● | ● |
| Observer-side detection stat | ● | ● | ● | ◔ | ○ | ○ | ○ | ● S23 |
| Facing / vision-cone detection | ○ | ○ | ● | ● | ○ | ● | ◔ players only | ● S10 |
| Stealth-state feedback UI | ○ | ○ | ○ | ◔ | ◔ | ● | ○ | ● S6 |
| Re-stealth lockout (Revealed) | ◔ delay | ◔ silence | ◔ | ○ | ● | ○ | ○ | ● S11 |
| NPC suspicion / investigate state | ◔ | ○ | ○ | ◔ | ○ | ● | ○ | ● S9 |
| From-stealth openers and payoffs | ● | ● | ● | ● | ● | ● | ◔ | ● S13/S18 |
| Stealth CC with diminishing returns | ○ | ◔ | ● | ○ | ◔ | ● | ◔ no DR | ● S13 |
| Pickpocket economy (NPC victims) | ◔ players | ○ | ● | ● | ○ | ● | ○ dead | ● S21 |
| Lockpicking + content supply | ● | ○ | ● | ● | ○ | ● | ○ stub | ● S19 |
| Trap detect / disarm | ● | ○ | ○ | ○ | ○ | ◔ | ○ | ● S20 |
| Distraction / lure tools | ○ | ○ | ● | ○ | ○ | ● | ◔ skill only | ● S12 |
| Poison / coating loadout split | ● | ● | ● | ○ | ○ | ○ | ◔ damage only | ● S16 |
| Stealth itemization (gear) | ● | ● | ◔ | ● | ◔ | ○ | ○ zero items | ● S14 |
| Ghost-run prestige | ○ | ○ | ○ | ○ | ○ | ● community | ○ | ● S17 |
● native · ◔ partial or third-party · ○ absent. "SotA today" = the unity-6.5 migration branch after the August 2026 Subterfuge wave. OSRS's Thieving and EQ2's trapped chests inform S20/S21 but did not earn columns.
Every Subterfuge trainer in the game sells Pick Lock. It has a work-in-progress icon, a description that reads "Coming soon", and a rune with zero effects. Players have spent gold and banked XP on a skill that trains nothing, and it was never flagged for refund. Until lockpicking actually ships (S19), the trainer should stop taking the money, and the policy on the XP already spent should be stated in public: it is held, and it becomes live the day the skill does.
Seen in: no genre citation needed. This is our own inconsistency, found in the code.
The trainer asset lists all 17 school IDs including 519 even though the skill row is marked unimplemented; the loader constructs it disabled, the tree hides it, and the card UIs refuse it — but the sale goes through. One data edit removes the row. Deliberately do not route 519 through the skill-retirement list: retirement refunds and forgets, and S19 intends to make the banked XP real. If lockpicking is ever formally rejected instead, the retirement entry plus a pooled-XP refund is the fallback. The trainer row returns in the same commit that ships S19.
Poison Weapon is a trainable passive whose level is read by nothing. Its description promises that raising the skill extends your poisons, but the duration formula shipped in August reads the poison's own tier and your specialization, never this skill. It earns XP every time you apply a poison and pays that XP nowhere. Wire it to a real reward so the tooltip stops lying.
Seen in: WoW (poison power tracked a rogue-owned number); DAoC (the Envenom skill is the gate for everything poison).
The clean hook already exists: a poison-effectiveness bonus stat is defined and initialized on both client and server and consumed by nothing. Grant it as the passive's per-level innate reward and add a matching term to the ten poison runes' duration expressions — data edits on existing assets, no enum append, no server change. Tune the grant so skill 100 lands near +25% on top of the shipped spec multiplier, not +100%. S16 later gives the same skill a second job.
The smoke bomb shipped working but rough: training the skill itself does nothing (only specialization extends the smoke), the Smoke Bomb item has an empty description, no merchant stocks the item (only the recipe), and the visual is a recycled vanish flash instead of smoke. Four small fixes finish the newest skill in the tree.
Seen in: UO Ninjitsu's smoke bomb (crafted, vendored, iconic); WoW's Vanish (the effect is the fantasy).
(1) The smoke window gains a skill-level term so training 0 to 100 buys roughly three extra seconds alongside the spec term. (2) The item description gets written; sample, lift-ready: "A paper shell packed with ash and coal dust. Bursts into thick smoke when thrown down." (3) The item joins alchemist merchant stock beside other reagents. (4) The rune's effect reference swaps to a real smoke burst; one already exists in the emote FX set. (5) The strings get localized. All data and loc edits; the rune keeps its distinct effect type, so the NPC stealth-skill list is untouched.
Caltrops promise "an area of effect that slows any enemy passing through" and deliver a one-frame burst. Anyone who buys the item expects a patch of spikes that holds ground. Converting the burst into a 20 to 30 second field turns a novelty into the rogue's kiting and escape tool — and the whole conversion is data, because the lingering-field machinery already runs 41 authored fields in the game.
Seen in: the D&D lineage (area denial with a speed tax); Thief (tools edit the terrain, not the target).
Author a caltrops effect-area (slow plus a small bleed tick, radius 3) and a field prefab cloned from an existing gameplay-object field, and repoint the consumable's rune at it; the initial contact damage becomes the field's first tick. Placement does not break stealth — laying spikes is preparation, not an attack, and that ruling joins the S5 table. Player-cast fields already resolve as victim-sourced, so no authority questions. The Blacksmithing recipe and merchant bundle are untouched. Field-versus-pathing is the real risk: a patch NPCs never walk through is dead weight, so the radius stays chokepoint-scale and the tool pairs with Distract and Trip.
Nobody can say from inside the game exactly what ends Camouflage or Silent Movement. The rules exist and are actually good — damage breaks it, falling never does, the smoke bomb grants a grace window against damage ticks, a lit torch gives you away — but they live in code. DAoC proved a published break table is itself a feature: players who know why they popped blame themselves, not the game.
Seen in: DAoC (the canonical learnable break table); EQ (utility verbs engineered to not break hide); GW2 (being hit does not break stealth, a rule players could learn).
An audit pass produces one table from the effect classes' break handlers, shipped three ways: every combat skill tooltip gains a "Breaks concealment: yes/no" line, the two stealth skills gain a short rules paragraph, and the player guides get the full table. Sample tooltip line, lift-ready: "Taking damage ends this effect. Falling does not." The same pass codifies the non-breaking utility list — Distract, Pick Pocket, caltrop placement, and later the S19/S20 verbs inherit it by policy. Mostly loc and docs; anything inconsistent the audit surfaces becomes its own small fix.
The genre's founding lesson is Thief's light gem: stealth is only playable when the game tells the truth about how hidden you are. SotA computes real answers every frame — your stealth value, every NPC's detection radius, the player visibility bands, the grace windows — and shows you none of it. A small three-state indicator while concealed makes Camouflage versus Silent Movement rank differences legible for the first time. Requested in part by Jack SinAssist, whose ask that stealth stay visible on your own screen the August work already half-answered; this is the other half.
Seen in: Thief (the light gem, born from playtesters unable to judge their own visibility); Skyrim (the opening eye); Splinter Cell (meters).
A client widget mounted while any concealment effect runs. Hidden: no observer's check passes. Noticed: the nearest NPC's detection radius, after the stealth multiplier, puts you inside a warning band (roughly 1.25 times the current detect range, worst-case nearest observer). Revealed: the effect broke. Three words, no percentage meter pretending precision the model does not have — a lying instrument is worse than none, which is the Thief 4 community's verdict on its fake gem and the reason every input here mirrors the actual check. The stealth stat is read clamped, as every consumer does. S9 later upgrades Noticed from a derived band to a real AI state.
A movement-threshold dial for stealth sits in the tweaks file with zero readers — testers can turn it and nothing changes. Either it becomes the movement-cancel threshold it was named for, or it goes.
Seen in: internal hygiene; the tester-tools audit flagged it in August.
The natural consumer is Camouflage's movement-cancel check: wired, a sub-threshold drift (controller wobble, uneven ground, a moving platform) stops cancelling your camouflage — a real quality-of-life win on slopes. If design prefers the hair-trigger, delete the tweak instead. One small code edit either way, then a short tester soak on the feel.
A stealthed player becomes untargetable somewhere between 10 and 5 meters, but becomes invisible at 3 meters inside a 60 degree cone. Two rule sets answer "how close is too close," and the space between them is where confused bug reports live. Pick one model, align the other to it or declare the difference deliberate, and publish the number either way. The stealth design doc itself flags this as a balance decision waiting to be made.
Seen in: DAoC (one published detection formula, no parallel systems); GW2 (one Revealed currency, one rule).
A decision card more than a build: either targeting adopts the visibility bands so one stealth-driven curve answers both questions, or the gap stays and the S5 table says why — "you can be seen before you can be targeted" is a defensible design if it is chosen on purpose. Tweak-level change once decided; the deliverable is the decision plus the published number. PvP feel shifts slightly in either direction, so it rides a chaos soak.
SotA NPCs have two states: oblivious and attacking. Every stealth tradition worth copying inserts a middle state — the guard hears something, walks to where it came from, looks around, gives up. That one AI change converts Camouflage, Silent Movement, and Distract from aggro-radius multipliers into actual stealth gameplay, creates the setup window Sneak Attack and Sap were designed for, and produces the "was I seen" events S17's ghost runs need.
Seen in: MGS (the alert ladder, the most-copied state machine in stealth); Thief and Splinter Cell (investigation as the core loop); ESO (suspicious NPCs after a failed pickpocket).
| State | Tell | Behavior |
|---|---|---|
| Unaware | none | walks the patrol route |
| Suspicious | ? | walks to the noise, looks around, gives up |
| Alerted | ! | attacks, calls nearby allies |
The detection roll gains a middle result: a pass at reduced confidence inside an outer band feeds a suspicion accumulator instead of snapping to aggro; crossing the threshold sends the NPC walking to the stimulus point with an overhead question-mark tell (the bark and overlay plumbing from the August NPC work carries it), lingering a few seconds, decaying on a timer. Full detection at close range still snaps straight to attack — no free passes at knife range. Suspicion is per-NPC, not per-player, so two players working the same guard interact honestly. This is the scope sink of the whole catalog — AI work on a 2014 codebase — so it ships behind tester tweak dials the way the stealth-look work did, and it starts early because S12, S13, and S17 all read its states.
Against players, approaching from behind already matters — the visibility check is distance plus angle. Against NPCs it is a flat circle: sneaking up behind a guard is exactly as dangerous as walking into his face. Weighting NPC detection by facing makes "behind" a real place, and it is the reason Distract exists at all — turn the head, then move through the gap you made.
Seen in: WoW (the 180 degree front arc, the mechanic Distract was built on); ESO (pickpocketing demands the behind arc); Thief (facing is everything).
Scale the detection radius by the observer's facing: full in the front arc, stepped down to roughly 60% in the rear half, tuned by a new tester dial. Hearing stays omnidirectional so rear approaches are safer, never free. The behind-arc geometry already exists — Sap and Sneak Attack read a behind-target term today — and Distract's head-turn event now creates a real opening. A few dozen lines in the aggro class plus tweak data. Too deep a rear discount trivializes patrols; that is what the dial and a chaos soak are for.
SotA has no re-stealth lockout at all: attack from stealth, step back, stealth again. GW2 proved that a single debuff is the cleanest counterplay primitive in the genre — attacking from concealment applies Revealed, a short window in which you cannot re-conceal, and every future counter-tool speaks that same currency. One tunable number future-proofs every stealth skill the school ever adds.
Seen in: GW2 (Revealed, the canonical version); DAoC (Vanish's silence after use — escape must not become engage); UO (the shared hide delay on smoke bombs).
The from-stealth-attack hook already fires when a stealth-breaking rune completes; it now also applies a standard debuff to self (4 second baseline; GW2 runs 3 PvE / 4 PvP). Camouflage, Silent Movement, and Obfuscate refuse to cast while it runs, with a clean fail string, lift-ready: "You cannot hide again yet." The debuff gets an icon so the price is visible. Implemented as an ordinary character effect on its own channel — no new effect type, the serialized enum stays append-only. Future counters (S23's flare) apply the same debuff at range. PvP enforcement rides the same client-trust model all combat already uses; S24 is the structural complement.
Distract is a trained skill; the genre says distraction should also be something you can buy. A crafted noisemaker throwable gives every player a lesser Distract, gives crafters a new sellable, and leaves the trained skill as the superior version. The guard physically leaving his post is the payoff; the gap he leaves is the gameplay.
Seen in: MGS (the thrown magazine); Thief (noisemaker arrows); Styx (the escalating decoy ladder); WoW (Distract as the free tier).
The primitive already exists and has exactly one consumer: Distract's AI-event effect, the only one of its type in the project. The consumable is the standard four-asset chain — item, self-consuming rune, sub-effect carrying the AI event at a reduced radius with no mastery scaling (that is the skill's edge), small FX prefab. One honest caveat: verify the AI-event path behaves when sourced from a consumable rather than a skill cast; if it assumes caster skill data, that is a guard clause, not a system. Recipe lands in tinkering or carpentry to spread the crafting love beyond alchemy. The illusion-decoy third tier stays out of scope for a magic page to claim someday. A distraction nobody visibly reacts to is a dead item, which is why this reads best after S9 — though the head-turn works today, so a v1 can precede it.
Thief's blackjack is the genre's best-loved non-lethal verb because of its condition: it only works on a target that has no idea you are there. Sap already checks the behind arc; adding an unaware gate turns it into a true stealth opener — a longer mez on a target with you in no aggro table, no alarm raised to the victim's friends, and an NPC that comes to with no memory and no grudge. That last rule is the MMO-shaped version of hiding the body.
Seen in: Thief (the unalert-only blackjack); WoW (Sap as the from-stealth opener, and the diminishing-returns lesson learned too late); OSRS (the knockout-then-rob loop with isolation rules).
A new target-unaware context token (an aggro-table lookup, NPC targets only) follows the exact pattern that carried the Opportunity Strike dodge-window token. Sap's data gains an unaware bonus on duration and suppresses the aggro broadcast on that path; when an unaware-sap mez expires naturally, the wake-up skips the aggro add entirely. Two riders ship with it: the strip-your-own-mez bug dies (casting Pick Pocket currently removes Mesmerized from the target — the sap-and-rob combo cancels its own setup), and a diminishing-returns rule lands the same day — repeat mez on one target inside a window applies at half then quarter duration, because WoW retrofitting that rule after "stunlock" became its most hated archetype is not a history worth repeating.
Not one item in the game grants Stealth or Subterfuge Mastery — zero hits across every item asset — and the artifact whose filename literally says "stealth harp" has no effects at all. A small, deliberate gear line gives the school an itemization identity without touching the stat model.
Seen in: UO (armor weight as the stealth-gear axis); DAoC (stealth itemization as class identity); every RPG whose thief has boots worth wanting.
Three data-only moves, sized against the additive unclamped stealth stat. (1) Extend the one good precedent — the Boots of Skulking's conditional design, bonuses active only while stealthed — into a small Skulking set (gloves, cowl) whose stats gate on being concealed, so gear never stacks the raw stat. (2) One capstone artifact granting a small flat Stealth bonus (0.1 to 0.15) while stationary — the only direct Stealth item in the game, sized so it cannot alone cross the Sneak Attack cap or the detection floor; the August cap on the damage term is precisely what makes a small item safe to print. (3) Give Embry's Harp its missing effects — a Silent Movement bonus fits an instrument named for quiet.
There is a fully authored stealth field sitting in the project attached to nothing a player can buy: a ten meter area that grants moving stealth to anyone inside, referenced by exactly two prefabs. Bottle it. A thrown Smoke Pot that lays a lingering cloud — allies inside can slip into concealment, enemies inside strike less true — turns smoke from a personal panic button into a placed tactical object, and gives a party one modest reason to bring a rogue.
Seen in: PoE (Smoke Mine, a zone you fight from); GW2 (smoke-field combos as group stealth done modestly); WoW (Shroud of Concealment's warning: keep the group time-save small or the slot becomes mandatory).
Clone the orphaned stealth field to a tuned variant (shorter, smaller, plus a to-hit debuff on hostiles inside) and hang it on the standard four-asset consumable chain, with the S3 smoke FX. One mandatory verification: the NPC stealth-skill list is built from runes whose effects are stealth-typed, and this rune must stay out of it — the effect-area indirection should keep it clean, but it gets proven before ship, and if the rune would need a stealth-typed effect the design restructures instead. Alchemy recipe priced above the Smoke Bomb. Hard dependency: without S11's Revealed lockout, an in-combat group re-stealth is a free fight reset.
All ten poison coatings are damage. WoW ran that experiment for years: when every poison competes for one slot, only the mathematically best damage option ever gets used; the lethal/non-lethal split is what made utility poisons exist in practice. Give Poison Weapon a real job — governing a second, utility-only coat slot — so "which two coats am I carrying tonight" becomes the rogue's loadout decision. The recipes themselves belong to the alchemy page; this card owns the slot rule and the delivery plumbing.
Seen in: WoW (one lethal plus one non-lethal, the proven architecture); DAoC (the poison loadout as the assassin's spellbook; the heal-cut poison as the most valued type); Skyrim (the per-hit friction counter-example).
Coatings occupy one effect channel today; the second slot is a second channel, unlocked at Poison Weapon 40 — finally a level gate the skill owns, compounding S2. Utility coat effects (snare, attack-slow, heal-cut) arrive as alchemy-page recipes on the existing ten-tier frame; this side ships the channel, the gate, and the tooltip line, lift-ready: "Poison Weapon 40 allows a second coating that deals no damage." Anti-heal is the PvP flashpoint in every game that shipped it; the cure counter must stay visible and purchasable, and the cure potion and its recipe already are. If the alchemy page's oils land first, this slot rule accepts them unchanged.
The Thief community invented Ghosting — finish the mission unseen, touch nothing — and sustained a twenty-five-year prestige ladder on it at zero developer cost. The precondition is legibility: you must be able to know whether you were seen. A per-scene "cleared unseen" stat surfaced as achievements and a title gives stealth players a self-renewing endgame inside content that already exists.
Seen in: the Thief community (Ghost, Strict, and Supreme rulesets); MGS (rank screens made no-alert runs a canonical playstyle).
Version one is countable today: cleared with zero aggro-table entries between scene load and completion, tracked client-side on the string-keyed achievement stats the achievements program already runs (per-scene stats have precedent there). S9's investigate events later tighten the definition to zero detections. Surface as per-dungeon achievements plus a meta-title; sample, lift-ready: "Ghost of the Epitaph". Rewards stay cosmetic — the event stream is client-authoritative, so power rewards would invite spoofing. The rule prints in the achievement text so the definitional arguments (does a pet count?) have an answer.
UO's Death Strike is the most praised opener the ancestor ever shipped because the victim chooses their damage: a delayed payload that lands harder the farther the target moves during the window. It punishes panic-running without touching the stationary fight, and it reads as pure assassin. A Subterfuge finisher in that shape — scaled off skill and specialization, never weapon speed — completes the tree's combat identity.
Seen in: UO Ninjitsu (Death Strike); DAoC (static spec-scaled openers preserving build diversity); GW2 (the Deadeye's earn-then-spend alternative).
A new active in the Opportunity Strike wing: tag the target from stealth; four seconds later the payload lands, base scaling off skill and mastery, multiplied by distance moved during the window, capped. The new code is one per-target moved-distance accumulator token, following the same context-token pattern the dodge-window token established; everything else is rune data. Any stealth read in the formula clamps by ternary, exactly as the capped Sneak Attack term does. Tagging is an attack, so it breaks stealth and picks up S11's Revealed naturally — the lockout exists before the kit gains another opener, which is also why this card ranks last in its tier.
The strongest new-code card in the school. The skill stub exists, a full lock-and-key object system exists, and the two have never met — the entire codebase references Pick Lock exactly twice, both boilerplate. The build is three-sided: wire a picking path into the existing lock object, craft breakable picks, and — above all — the content supply: tiered locked chests in dungeon loot rooms, on treasure-map digs, and placeable in player dungeons. WoW's lesson is that lockpicking died of supply drought, not mechanics: "looking for a rogue, tips paid" only exists while boxes keep dropping.
Seen in: UO (tinker practice boxes up to treasure-map chests, the profession ladder); WoW Classic (rogue-as-service in trade chat); ESO (instant force-lock pacing); Asheron's Call (quality-tiered picks, the crafter's stake); EQ (lock-gated dungeon doors, the party key).
The lock object already models states, compatible keys, worst-key-first consumption, and data-driven break chances. A picking branch slots beside the key branch: no compatible key, but a carried lockpick plus Pick Lock at or above the lock's tier attempts an instant skill-check open — ten seconds is the genre's settled pacing ceiling, so no minigame — and failure consumes the pick through the existing break plumbing. Lockpicks model on the key archetype with a fits-any-lock-at-or-below-tier flag, crafted by tinkering or blacksmithing as a new product line. The skill levels by use, which is native to SotA, and the XP banked under S1 goes live. The supply side is the real work and the real promise: locked-chest entries as a standing loot-table rule, not a one-time content pass; lock tiers on treasure-map chests; a placeable locked chest for player dungeons. If a placed chest's lock tier persists as new decoration state, that is a database shape change and carries its migrations-ledger entry. Never a skeleton key — see Rejected.
The trap system shipped its first wave this month — dozens of trap prefabs across a hundred scenes and a full decision core — and no skill interacts with any of it. The roadmap's own traps entry names the unused counterplay pieces. This card is the Subterfuge half of that sentence: higher-tier locked chests can be trapped, a passive reveals traps at short range, an active disarm is a skill check, and failure fires the trap. It is the per-loot-drop party moment every group sees — the reason to invite a rogue that is not damage.
Seen in: UO (Remove Trap; failure fires the trap and can summon a lootless guardian, directly portable); EQ2 (chest rarity scales the trap; the scout disarms before anyone opens); the D&D lineage (traps punish, never wall).
Two new tree entries filling dead slots: a detect passive (trap highlight within a few meters — a passive reveal, not a minigame) and a disarm active (skill check against the trap's tier through the existing trap-chance core; failure triggers through the existing trigger path, the worst failures optionally spawning a lootless guardian). Trap tiers ride S19's chest tiers; both verbs join the S5 non-breaking list, because disarming from concealment is the class fantasy. UO's prereq-stacking lesson applies — detect is not a prerequisite for disarm; they sit parallel in the tree. A chest a party cannot open at all without a rogue is the failure state; traps price the loot, they never wall it. The traps epic owns the wiring program; this card plugs the skill grammar into it and lands coordinated with that plan.
Pick Pocket is a shipped skill that cannot fire in any scene in the game — its target model is players, and the ransom system that made that meaningful is disabled. Every MMO theft economy that survived is NPC-victim: OSRS's gold faucet with an attention tax, ESO's justice pipeline, WoW's junkboxes. Point the skill at NPCs: coin and flavored loot off guards and merchants, locked junkboxes that feed lockpicking, stolen-flagged goods only a fence buys, and failure meaning a stun, a fine, and a guard response. The skill revives without touching another player's property. Requested by adambomb1200 — the most-viewed unanswered Subterfuge ask on the forum.
Seen in: OSRS (stun on failure, mitigation charms, per-target lockouts); ESO Justice (bounty, fence, launder — the full fantasy shipped with NPC victims only); WoW (junkboxes feeding lockpicking and a cross-class market); UO (witness-count catch chances, quoted as history).
The steal effect is the surgical site: today it docks Truth virtue and calls the ransom manager, player targets only. The NPC branch rolls server-resolved loot from NPC-class tables (guards carry keys and small valuables, merchants trade goods, commoners coin and junkboxes), shows a live success percentage on the cast — ESO proved the readout is load-bearing and must never lie — enforces a per-NPC lockout timer, and wires the existing caught-in-the-act path to a stun plus guard aggro plus a gold fine. The yield must be server-granted, not client-asserted: a theft operation is a new request group, which means the manual receive-dispatch wiring into the op router and registration in both server build files — named here because skipping either ships a silent failure. Stolen-flagged items sell only at an outlaw fence with a daily limit and a laundering cut as the inflation valve; the flag and the counter are database shape changes with their migrations-ledger entries. Junkboxes are locked containers only S19 opens — the two economies feed each other. The behind-arc-plus-hidden gate reuses the exact distance-and-angle math the stealth work shipped, and the misleading PvP-flag failure message dies in passing.
When item insurance killed UO's player-thief in 2003, the same expansion shipped the recovery: rare artifacts liftable only with the Stealing skill, spawning on rarity timers. That pivot kept the skill alive for twenty years after the social gameplay died. SotA's version writes itself: rare decorative objects seeded through dungeons, liftable only at high Subterfuge skill while concealed, respawning on rarity classes — landing in the one economy SotA does better than every ancestor, housing. A stolen rarity on your mantle is a trophy with a story.
Seen in: UO (Doom stealables and monster stealables, the post-insurance recovery, never reversed).
A stealable-spawn scene component referencing an item archetype, a Subterfuge skill floor, and a respawn class; lifting requires concealment plus the check and is server-granted like S21's yields. An initial set of a dozen stealables across existing dungeons, placement rotating among spawn points to defeat camping — UO's rare-camp lesson. A successful lift does not break stealth (it joins the S5 list); a failed one does, loudly. The real budget line is content authoring: each stealable needs an item, an icon, and a spot worth sneaking to.
Flagged plainly: no observer-side perception stat exists anywhere in the codebase, and the perception class carries a comment forbidding one from being bolted in. This card proposes the honest version — a genuinely new system. Every ancestor converged on the same rule: stealth must balance against an opposing investment, not against everyone at once. A trainable Perception passive feeding a new detection layer, plus a crafted Watchman's Flare that applies S11's Revealed in a zone, gives non-thieves a build answer to stealth and hands the crafting economy the counter-item. Asheron's Call's hard lesson ships with it: the counter-stat and a stealth-side sweetener land in the same release, or one side feels robbed.
Seen in: UO (Detect Hidden as a template choice); DAoC (the published spec-differential radius formula, the cleanest model); WoW (stealth level versus detection level, plus Flare as an opt-in cost); AC (Deception versus Assess, both sides shipped together).
Built beside the perception class, not inside it: a new detection model that the visibility check consults after its early-outs, widening an observer's effective bands by a factor of Perception minus clamped Stealth. The new stat appends at the end of the character-stat enum on both sides of the shared mirror — append-only, propagated with the same discipline as the mastery stat's registration set. The flare is a standard four-asset consumable whose effect area applies Revealed; its rune carries no stealth-typed effect, so the NPC stealth list is untouched. Reveals stay graduated — they reduce effective stealth or apply the lockout, never a binary pop, which is the decade-long ESO cloak-war lesson. Resolution runs on the observer's client, the same trust model as the rest of combat; S24 is the structural mitigation. Start the multiplier small and tune on the test shard with the existing stealth dials.
Today the server broadcasts stealthed characters to every client, and hiding is a client-side courtesy — a modified client can simply render what honest clients politely fade. The stealth design doc lists this as the known leak. The fix is structural: the server stops sending what a given observer should not see. A modified client cannot draw a character it never receives. This is the anti-cheat half of the stealth program, it changes no gameplay at all, and the seams are already mapped.
Seen in: every server-authoritative MMO's interest management — cited as the standard, not a mechanic to copy.
The per-observer filter point in the view-update publish already exists; the stealthed test is a single key check on the character-state channel, because a zeroed stat's key is removed from the wire format. Observer positions on the server are roughly two seconds stale, which is exactly why the design specifies wide hysteresis — suppress beyond about 60 meters, resume inside about 45 — so staleness can never hide someone standing next to you: this suppresses at range and never adjudicates knife-range detection. Re-entering the band triggers a full-state resync down the existing publish path; the known risk is a late pop-in reading as lag, and the generous bands plus resync are the design answer. Any new backend file registers in both server build files. Honest clients see nothing different, which is the point.
The danger with twenty-four proposals is a game with twenty-four widgets. The composition rule for this page: one instrument (the stealth eye, S6, which also carries Revealed and the suspicion states), one toolbelt (the consumables: caltrops, smoke bomb, Smoke Pot, noisemaker, coatings, lockpicks — all items, no new UI), and one tree (the same seventeen slots, with the dead ones alive). Everything else is a rule the S5 table publishes. Here is the whole loop in a single run — approach, entry, prize, exit — with the proposal that carries each beat:
| Beat | What happens | Carried by |
|---|---|---|
| Approach | Silent Movement up; the eye reads Hidden | S6 |
| Patrol | Guard faces away; the rear arc is the road | S10 |
| Slip | A thrown noisemaker pulls him off post; ? | S12, S9 |
| Entry | Sap the door guard from behind, unaware: long mez, no alarm | S13 |
| Prize | Detect the trap, disarm it, pick the sturdy lock | S20, S19 |
| Lift | A dusty idol only a thief can take; it will look right on the mantle | S22 |
| Trouble | A second guard; the eye flips Noticed, caltrops buy the corridor | S6, S4 |
| Exit | Smoke Pot down, slip out through the cloud, Revealed priced the trick | S15, S11 |
| After | Fence the take in town; the run counts toward Ghost of the Keep | S21, S17 |
| Phase | Ships | Server | Depends on | Why this order |
|---|---|---|---|---|
| 1 | S1–S8 | none | — | All client and data; fixes every lie the tree currently tells and gives players the instrument every later system is judged through. Feedback before content is the genre's settled order. |
| 2 | S11, S10, S9, S13 | none | phase 1 (S6 displays S9's states) | Revealed and the suspicion ladder are the primitives everything else keys off; counterplay ships before power. S9 is the scope sink, so it starts early. |
| 3 | S12, S14, S15, S16, S17, S18 | none | S9 (S12, S17); S11 (S15, S18); S2 (S16) | The toolbelt and payoffs only read as gameplay once NPCs visibly react and re-stealth has a price. |
| 4 | S19, S20 | loot seeding + scene content | S1 (trainer restore); traps epic (S20) | The flagship and its sibling; supply lands as a standing loot rule so the WoW decay never starts. |
| 5 | S21, S22 | theft op, fence, spawn tables; DB ledger rows | S19 (junkboxes), S13 (sap-and-rob), S9 (failure texture) | The theft economy lands after the locks it feeds and the AI that gives failure its texture; the fence is the biggest server bite, so it goes last among gameplay phases. |
| 6 | S23, S24 | enum + mirror; view filtering | S11 (the flare's payload) | The counter-stat ships against a mature stealth kit, paired with a stealth-side sweetener; broadcast suppression hardens everything already built and can float earlier if a cheat incident forces it. |
flowchart TD S5["S5 break rules"] --> S6["S6 stealth eye"] S9["S9 suspicion ladder"] --> S12["S12 noisemaker"] S9 --> S13["S13 unaware Sap"] S9 --> S17["S17 ghost runs"] S11["S11 Revealed"] --> S15["S15 Smoke Pot"] S11 --> S18["S18 quarry mark"] S11 --> S23["S23 Perception + flare"] S2["S2 Poison Weapon"] --> S16["S16 second coat"] S1["S1 trainer honesty"] --> S19["S19 lockpicking"] S19 --> S20["S20 trapped chests"] S19 --> S21["S21 pickpocket NPCs"] S13 --> S21 S21 --> S22["S22 stealables"] TE["Traps epic"] -.-> S20 PVP["PvP page S22: ransoms"] -.-> RJ["Rejected: PvP deck-glyph theft"] AL["Alchemy page S5/S18"] -.-> S16
| Group | Cards | What it rides on |
|---|---|---|
| Data and loc edits only | S1, S2, S3, S4, S5, S14, S15 (mostly), S16 (mostly) | Existing rune assets, item archetypes, the 41-field effect-area library, the four-asset consumable chain, loc files. No new C# beyond guard clauses. |
| Client C#, no server | S6, S7, S8, S9, S10, S11, S12, S13, S17, S18 | The aggro and perception classes, the context-token pattern, the effect channels, string-keyed achievement stats. NPC AI runs client-side in this architecture, which is what makes the whole counterplay spine serverless. |
| Server-backed | S19, S20, S21, S22, S23, S24 | Loot tables and scene content (S19/S20/S22), one new theft request group + fence vendor + two DB ledger rows (S21), one enum append through the shared mirror (S23), view-publish filtering in both server builds (S24). |
The pure-logic pieces — S6's state thresholds, S9's suspicion machine, S10's arc multipliers, S11's lockout rules, S13's unaware token and diminishing returns, S18's distance scaling, S19's pick-versus-tier odds, S21's loot rolls and lockouts, S23's band widening — are all EditMode-testable with no scene objects, extending the SubterfugeBalanceTests and StealthPerceptionTests suites the August wave established. The S5 audit doubles as a source-scan test pinning the break rules so they cannot drift silently.
UO: UOGuide (Hiding, Stealth, Detect Hidden, Snooping, Stealing, Lockpicking, Remove Trap, Poisoning, Ninjitsu, Smoke Bomb, Item Insurance, Doom stealables), uo.com wiki, UO Outlands thieves-overhaul notes. DAoC: disorder.dk stealth mechanics, Crows of Winter detection guide, apothecary poison reference, 1.109/1.121 patch notes. WoW: Warcraft Wiki (Poisons, Pick Lock, Sap, Vanish, Distract, Stealth mechanic), Wowhead junkbox and lockpicking guides. ESO: UESP (Justice, Legerdemain, Pickpocket, Lockpicking), ESO-Hub, the cloak-counterplay forum record. GW2: official wiki (Stealth, Revealed, Initiative, Deadeye). Thief: Game Developer's postmortems and light-gem histories, TTLG ghosting rulesets. OSRS: the wiki's Thieving, Blackjack and Stall pages. Also: Skyrim/Oblivion lockpicking pages, MGS enemy-status references, PoE Smoke Mine, Albion invisibility potions, Sea of Thieves and EVE Crimewatch consequence design. Full URL list in the research notes accompanying this proposal.
Prepared 2026-08-13 against the unity-6.5 migration branch, three days after the August Subterfuge balance wave it builds on. Companion markdown: docs/plans/2026-08-13-subterfuge-improvements-proposal.md. Twenty-four proposals: eighteen client or data only, six server-backed, each grounded in the classes and assets that would carry it.
No account needed. Every proposal above also has its own Discussion box for talking about that one alone; this thread is for the plan as a whole. Comments are plain text, held to basic decency, and may be trimmed.