TheSyndicate
Run contracts for the Syndicate as a career hitman. Kill almost any citizen with guns, poison, or a staged accident; beat the investigation - witnesses, cameras, prints, forensics, warrants, the manhunt - and climb the underworld. Beta.
By kropath
| Date uploaded | a week ago |
| Version | 0.9.4 |
| Download link | kropath-TheSyndicate-0.9.4.zip |
| Downloads | 95 |
| Dependency string | kropath-TheSyndicate-0.9.4 |
This mod requires the following mods to function
BepInEx-BepInExPack_IL2CPP
BepInEx pack for IL2CPP x64 Unity games. Preconfigured and ready to use.
Preferred version: 6.0.755README
The Syndicate
Become a career hitman in Shadows of Doubt. A fixer moved you into the city clean, and now you owe them. Take contracts, put targets in the ground — with a gun, a syringe, a staged "accident" — and get away with it while the investigation you just created closes in: witnesses, security cameras, fingerprints, forensics, a warrant, and a city full of enforcers who'd love to find you. Climb from a nobody Recruit to a made Lieutenant of the underworld.
This is a full career sandbox layered on top of Shadows of Doubt's murder mystery — except this time you're the murderer, and the game is the one trying to solve it.
⚠️ This is a BETA (v0.9.4)
The Syndicate is a large mod that hooks deep into the game's crime, evidence, enforcer, and economy systems. It has been played through end-to-end many times, but it is still a beta:
- PLAY ON A NEW SANDBOX SAVE with PROCEDURAL MURDERS OFF and a starting apartment. You can begin homeless, but every Syndicate app (contracts, both shops) only ever appears on your home cruncher — no home means no way in until you rent or buy one.
- Expect bugs. Edge cases in a game this systemic are endless. If something breaks, see Reporting a bug at the bottom.
- Expect the balance to move. Payouts, prices, timers, and difficulty are not final. Almost everything is a config knob — if a number annoys you, change it (see Configuration).
- Back up your saves. As with any mod that writes save data, keep a copy of a save you care about.
Feedback is genuinely wanted — that's what a beta is for.
Requirements & install
- Shadows of Doubt (current build).
- BepInEx-BepInExPack_IL2CPP — the IL2CPP BepInEx pack.
- SODCommon (Venomaus) — the shared modding library.
- A cruncher (in-game computer) of your own. The Syndicate has no interface outside the game — your contracts, the Level-3 job board, and all three shop apps (Syndicate / Supplies / Groceries) are cruncher apps that install only on your home cruncher. Start your sandbox with a starting apartment; with no home there's no cruncher, and no way to read a lead or buy gear.
With a mod manager (recommended): install through Thunderstore Mod Manager or r2modman and the two dependencies come with it. Launch modded.
Manual: install the BepInEx IL2CPP pack, run the game once, drop SODCommon into BepInEx/plugins, then drop TheSyndicate.dll into BepInEx/plugins. A config file (BepInEx/config/Kropath.TheSyndicate.cfg) is generated on first launch.
Getting started
You start as a Level 0 Recruit. The moment you load in, the fixer sends you a v-mail ("The Offer"). Read it on any home cruncher.
- Read the intro v-mail. It explains the arrangement and gives you the Dispatcher's phone number (it's saved in your phonebook as The Dispatcher from the start).
- Call the Dispatcher and pick "I'm ready — check me in." Nothing happens until you do this — it's the hard gate that stops a brand-new save from ever deadlocking.
- Your first contract lands a couple of in-game hours later, biased toward a gentle "proving hit" — someone who lives alone with no locks or cameras, so you can learn the ropes.
- Buy your basics. Open the Supplies app on your home cruncher and grab a Fingerprint Remover (cheap, available from the start). The vanilla Print Scanner shows what you've touched.
- Do the job, scan the scene, wipe your prints, leave no living witness. Then go back to your board (or wait for the fixer to call) for the next one.
Tutorial tips fire once each, at the moment they're relevant (buying supplies, entering the target's building, your first kill, first time you wear the mask).
The core loop: contracts & progression
How you get work
- Levels 0–2 — you're told, not asked. The fixer auto-assigns one contract at a time, delivered as a v-mail. Finish it, and after a cooldown (~12h) the next one arrives. You can also call the Dispatcher → "Any work for me?" to pull one early.
- Level 3+ — the job board. A contract board unlocks in the Syndicate cruncher app. Browse up to 8 offers, read the lead, and ACCEPT the ones you want — up to 3 active at once. Refresh the board for a fresh set (on a cooldown).
Reputation, levels & tiers
Every collected contract earns Underworld Reputation. Rep is your career:
| Level | Rank | Rep needed | Reward on promotion |
|---|---|---|---|
| 0 | Recruit | 0 | — |
| 1 | Associate | 20 | 500cr + the False Face mask disk |
| 2 | Operative | 50 | 1,500cr + the Second Skin gloves disk |
| 3 | Lieutenant | 100 | 4,000cr + the contract board unlocks |
Your level also sets your Tier (1–3) — the difficulty ceiling of the jobs you'll be offered. Harder targets pay more.
Hit Tokens
Every contract you collect on also pays 1 Hit Token — even if you got caught. Spend tokens (plus a little cash) at the Syndicate app's BUY SOCIAL STANDING row to buy the game's real social credit stat, the native path to perks like echelon-floor access.
Getting paid
Killing the target doesn't pay you on the spot. Payment clears once the heat settles:
- Kill → the contract is marked complete, but pay is held in escrow ("awaiting forensics").
- The case resolves (goes cold, or you get identified) → the pay becomes collectable.
- Close the case on your pinboard to collect. You'll see an itemized breakdown (base + bonuses).
You always get the base fee. But if the law identifies you for the kill, you forfeit the reputation for that job (you still get the money and the token — "the job got done"). Clean work is what builds a career.
Left something on the board too long? The fixer auto-wires an uncollected payout after ~24h. You never lose money you earned.
How targets are chosen
The fixer scores every citizen on Wealth, Security, and Exposure and matches a target to your tier. Wealthier marks, locked-down homes (cameras, alarms, passwords, echelon floors), and well-connected victims (partners, big households, lots of coworkers) are harder — and pay more. Night-shift loners are easier. Homeless targets have no fixed address and are always the hardest jobs.
Some contracts hand you the target's name and address outright (Full). Others give you a partial or cold lead — a clue trail (a surname to search, an employer, a physical description, a blood type) that's guaranteed to point to exactly one person in the city. You do the detective work; those jobs pay a premium. Kill the wrong person and the contract pays nothing — the heat is all yours.
Contract objectives
Most contracts are just "put this person down." Some carry optional objectives for bonus pay (roughly 55% of jobs carry at least one). Missing an objective never fails the job — you only lose that bonus.
| Objective | What you do | Bonus |
|---|---|---|
| Clean Kill | Don't get identified — the case must go cold. | +25% |
| Deadline | Kill within the time window (min 24h). | +20% |
| Photo of the Body | Photograph the corpse with a camera before you collect. | +30% |
| Poison Kill | Kill with the issued syringe, nothing else. | +35% |
| Forge an Accident | Stage it as an overdose (force-feed the issued vial) or a fall (drag a knocked-out target off a height, use G to throw the body in the direction you are looking) — and don't get identified. | +50% |
| No Violence | On an overdose job: put them down cleanly (sedative), never a mark on them. | +30% |
| Dispose at Sea | Kill with the issued weapon, then throw it in the sea. Keep the weapon instead and you take a penalty. | −45% penalty if you keep it |
A single job can layer a couple of these. Read the "Terms" on the contract before you commit.
Ways to kill
Almost any citizen in the city can be killed. (Two exceptions are protected as a finite, non-replenishing pool — enforcers and landlords only ever get knocked out, never killed, so you can't wreck your own save. You can turn that protection off in config if you insist.)
Firearms
Six working guns — pistol, silenced pistol, revolver, shotgun, battle rifle, sniper rifle — with real ammo, magazines, and reloading (R). Left-click fires. Highlights:
- Magazines & reload. Each gun has a mag size and a reload time; keep a reload key bound or you can dry-fire yourself into a corner.
- Shotgun fires a spread of buckshot (lethal up close, wounding at range) or a single deer-slug (switch with
B). - Lethality. Shotgun and sniper kill in one hit; a headshot with any gun kills; otherwise it's the two-hit rule (first shot drops, second finishes).
- Noise. Gunshots alarm anyone who hears them and are remembered as evidence — except the silenced pistol. Drawing a gun at all makes nearby civilians nervous.
- Casings carry your fingerprint if you're not gloved (the revolver ejects none — the careful killer's choice).
Poison — the syringe
A reusable syringe (3 doses). Jab a target within reach:
- On a knocked-out target: instant, silent kill.
- On a conscious target: not instant — they stagger like they're drunk and drop dead about 5 in-game minutes later. Walk away clean before they fall; they can still be seen wandering in the meantime.
Poison — the vial (forged overdose)
A single-use vial. Force-feed it to an already knocked-out target and their death is staged as a self-inflicted overdose ~10 minutes later. Leave the empty bottle as the "evidence." If the coroner sees a beaten-up body, though, it reads as murder, not an overdose — so put them down cleanly first.
Sedative (silent KO)
A sedative (repurposed sleeping pills, 3 uses). Sneak up behind a target (or catch them asleep) with nobody watching and put them out cold — no violence, no marks. This is how you set up a clean forged accident, and how you satisfy the "No Violence" objective. Knocked-out bodies stay down long enough to drag.
Forge a fall
No item needed. Drag a knocked-out body to a stairwell, rooftop, or window, then walk it off the edge or press G to heave it over. A fall of at least 6 metres kills on impact, and the death is re-staged at the landing spot — ruled an accident if you're never identified.
Melee & cripple
Any blunt or bladed weapon works the usual way (blunt knocks out faster, blades slower). Any non-lethal hit also cripples the target — they limp at a fraction of speed for a while, so a runner can't get away.
Getting away with it: the investigation
Every kill you make opens a crime scene — and the game investigates it exactly like one of its own murders. Beating that investigation is the real game.
Witnesses
Anyone who sees the kill, or sees you inside the victim's home afterward, becomes a witness. They don't report instantly — they take a couple of hours to reach the authorities (a bystander who didn't know a crime happened only comes forward once the body is found). Kill or knock them out before their report lands and their testimony dies with them. An unmasked witness who reports names you outright — a guaranteed warrant.
Security cameras
Cameras are witnesses you can't knock out. A camera that sees the kill, or catches you inside the scene, identifies you outright. A camera that only catches you in the hallway near the scene just raises suspicion (and only within a couple of hours of the kill). Two things to know:
- Darkness defeats cameras. Standing in the dark shrinks how far a camera can see you, using the game's own stealth model — but only down to point-blank (~0.75m always catches you), and turning on your flashlight or running gives you away completely.
- Your own home's cameras never count against you.
Fingerprints
Touch something and you leave a print — on doors, switches, furniture, the murder weapon. At a cold-case review, the game tallies the prints still at the scene: enough of them (or a printed murder weapon left behind) makes a positive ID.
- Public places don't count. Streets, lobbies, landings, and open shop floors have too much foot traffic — your prints there are meaningless. But a home is always private (even with a guest pass), and secured back rooms always matter.
- Second Skin (gloves). The Level-2 reward disk. Once bonded at a sync clinic, you leave no prints at all — including on weapons. There's no toggle; installed means active.
- The Fingerprint Remover. A cheap spray (available from the start). Hold it, look at something you've touched, and use it to wipe your prints clean (50 wipes per can). The Print Scanner and an on-screen cue show you exactly what you've tainted in a room.
The verdict, the mole, and residual heat
If nobody names you and the forensics fall short, the case goes cold and your prints there are wiped. If you left almost enough to get caught, a mole may v-mail you a tip about what nearly burned you. Too many messy-but-cold kills pile up on a hidden Residual Heat meter; at 80% the Syndicate offers you a "Loose Ends" heist to steal the evidence folder from an enforcer office and clear it — ignore it and at 100% the old cases land on the right desk (fines, and a fresh warrant).
Consequences: the warrant & the manhunt
Get identified and the city comes for you.
- The warrant. A murder charge issues a warrant (default 48h). A persistent WANTED banner shows the countdown and any fines you owe.
- The hunt. By default only enforcers who actually see you give chase — no city-wide psychic manhunt. Break line of sight and they lose you.
- The home raid. Enforcers hit your home once per warrant. If a murder weapon is there, it's seized and fined. If your cruncher is on and logged in, they pull your files — extra fine and a rep hit. Log out and power down before you run.
- Caught carrying. Get downed while wanted with a murder weapon on you and it's confiscated and surcharged.
- "Arrest" = getting knocked out while wanted. There's no arrest animation — you wake in hospital, your fines are collected (leaving you a few credits), and the warrant clears. Unpaid fines persist forever; call the Dispatcher to settle them early for 60% anytime before capture.
- Safehouse breach. Flee into your own locked home while being chased and enforcers will breach it once — your apartment isn't a magic safe zone.
The mask — "False Face"
Your Level-1 reward is the False Face sync disk. Bond it at a sync clinic, then toggle it with N.
- While worn, no witness, enforcer, or camera can name you — they can only describe "a masked figure." Scenes stay Suspicious, never escalate straight to a warrant.
- It's not magic. The mask fools eyes, not forensics — prints and weapons still point to you. And a covered face makes people nervous.
- Don't unmask in front of a live witness/camera of an open case — it retroactively puts your name on the account.
- Notoriety. Every masked crime that's seen builds your masked persona's infamy (it fades while you lie low). One slip — getting busted masked, or unmasked on camera mid-case — pins the accumulated masked spree onto your real identity. A Persona Wipe service (Supplies app) resets it.
Tools, apps & phone lines
All Syndicate apps live on your home cruncher only.
- Syndicate app — the store (buy social standing, read your status) and, at Level 3, the contract board.
- Supplies app — the underworld arsenal: guns, ammo, blades, poison, tools, and the mask/gloves sync disks, delivered by courier to your door (~1h). Discounted below street price and gated by your level.
- Groceries app — food, drink, and all medical items, delivered for a small markup.
- Anonymous Tip Line (in your phonebook from the start) — call in a body you've hidden to get it found sooner. It only speeds up discovery; it doesn't clean anything. Handy for pulling a forged-accident payout forward.
- The Dispatcher — your line to the fixer: check in (onboarding), pull a job early, or go off the books to pause new contracts while you deal with life.
The newspaper
The city paper runs the fallout: bodies found, manhunts, "death ruled an overdose/accident," crime waves, records stolen, suspect in custody. Your work makes headlines with the real names and places.
HUD
A cluster along the top of the screen shows your Syndicate level and a table of your open crime scenes (top-left — undiscovered / under investigation / going cold), your mask status (top-right — the badge doubles in size when worn), and the heat meter (top-center). The WANTED banner and fines line appear when relevant. All of it can be turned off in config.
Compatibility
The Syndicate patches the game's murder, evidence/fingerprint, crime-scene, enforcer, newspaper, and pricing systems deeply. Use that to judge what it will and won't play nicely with.
Generally safe alongside:
- Standalone cruncher apps (e.g. RealEstateCruncherApp), map/UI/QoL tweaks, cosmetic mods — anything that doesn't touch murders, evidence, or enforcers.
- Most content that adds items or places, as long as it doesn't rewrite the crime system.
Likely to conflict — avoid running together:
- Other kill / weapon mods, or anything that changes how the player deals lethal damage — they fight The Syndicate's shared kill pipeline.
- Murder, evidence, forensics, or case/investigation mods — The Syndicate runs its own crime-scene, fingerprint, and warrant logic and will overlap or double up with them.
- Mods that change the fingerprint/print system specifically.
Heads-up (works, but be aware):
- The Syndicate applies a global price multiplier to guns, ammo, and gear at load — it affects every vendor, not just its own shop. If you run another economy/pricing mod, the two multipliers stack. Tune
[Supplies]multipliers to taste.
When in doubt on a beta: test a new combination on a throwaway save first.
Configuration
Everything is tunable in BepInEx/config/Kropath.TheSyndicate.cfg (editable by hand, or in-game with the BepInExConfigManager plugin). A few knobs people reach for first:
[Supplies] GunPriceMultiplier / AmmoPriceMultiplier / GearPriceMultiplier— global prices too high/low? Set them here.[ContractEconomy] ContractBasePayout— scale all contract pay.[Manhunt] WarrantDurationHours,[Enforcers] MurderFineAmount— how punishing getting caught is.[Enforcers] HuntMode—EnforcerPursuit(only enforcers who see you) orGlobalIllegal(vanilla city-wide wanted).[Debug] Enabled— leave off for normal play (see below).
[Debug] Enabled(default: false). Developer mode. Off, the mod runs normally and keeps citizen names/addresses out of the log file. On, it enables an in-game debug/test overlay and verbose logging. Normal players should leave this off.
Full configuration reference (every key)
[Manhunt]
| Key | Default | Meaning |
|---|---|---|
| WitnessReportMinHours | 2 | Min in-game hours a witness takes to report a murder |
| WitnessReportMaxHours | 2 | Max in-game hours a witness takes to report |
| WelfareMinHours | 24 | Min hours before an unseen body is found by a welfare check |
| WelfareMaxHours | 48 | Max hours before a welfare check finds an unseen body |
| SceneColdHours | 8 | Hours a discovered-but-unsolved scene stays open before going cold |
| WitnessInterviewHours | 2 | Hours after the official report before pending witnesses are interviewed |
| WarrantResolveHours | 2 | Grace hours after a positive ID before the hunt actually begins |
| WarrantDurationHours | 48 | How long an issued warrant stays active |
| RequirePlayerInsideScene | true | Only count scene witnesses when you're physically inside the scene apartment |
| BodyDiscoveryRequireLineOfSight | true | Require a line-of-sight ray for an NPC in another room to spot a body |
| WelfareRaidEnabled | true | Dispatch an enforcer welfare check when the welfare window lapses |
| WelfareRaidDelayHours | 0.25 | In-game hours between the welfare call and enforcers setting out |
| WelfareRaidForceCrimeScene | false | Pre-flag the welfare response as a crime scene |
[Evidence]
| Key | Default | Meaning |
|---|---|---|
| FingerprintIdHeatThreshold | 25 | Total fingerprint heat at a scene that alone forces a positive ID |
| FingerprintIdCountThreshold | 4 | Distinct fingerprinted objects that alone force a positive ID |
| FingerprintMinHeat | 3 | Minimum random heat weight per fingerprint left |
| FingerprintMaxHeat | 12 | Maximum random heat weight per fingerprint left |
| SuppressNativePlayerPrints | true | Hide the game's always-on native player fingerprint on owned/carried items |
[Heat]
| Key | Default | Meaning |
|---|---|---|
| ResidualHeatEnabled | true | Master switch for the cumulative residual-evidence heat meter |
| ResidualHeatPerMurderMax | 0.20 | Max fraction a single cold-but-messy murder can add to the meter |
| HeistOfferThreshold | 0.80 | Meter level at which the heist offer fires (clamped 0.10–0.95) |
| ResidualFinePerMurder | 1000 | Fine per murder that fed the meter once it hits 100% |
| ResidualWarrantAt100 | true | Also issue a warrant at 100% meter, alongside fines |
| MoleEmailEnabled | true | Send a mole v-mail itemizing what fed the residual heat when a case goes cold |
[Heist]
| Key | Default | Meaning |
|---|---|---|
| Enabled | true | Enable the "Loose Ends" evidence-folder heist at ~80% meter |
| BackroomPercent | 80 | Chance (%) the folder spawns in the secure backroom vs a desk (0–100) |
| FolderPreset | "SealedEnvelope" | Item preset spawned as the stealable evidence folder (blank = auto) |
[News]
| Key | Default | Meaning |
|---|---|---|
| Enabled | true | Enable custom front-page newspaper stories + ticker headlines |
| FreshHours | 48 | Hours a Syndicate news beat stays eligible for the front page |
| RoundupWindowDays | 3 | Day window the "crime wave" round-up story counts kills over |
| RoundupMinKills | 3 | Min distinct victims in the window before the round-up story runs |
| SecondaryStory | true | Allow a second Syndicate beat in the article-2 slot |
[MaskNotoriety]
| Key | Default | Meaning |
|---|---|---|
| Enabled | true | Master switch for the masked-persona notoriety system |
| DecayPerDay | 0.15 | Notoriety lost per in-game day of lying low |
| IncidentBase | 0.10 | Base notoriety added per masked crime that's seen |
| IncidentMax | 0.30 | Cap on notoriety from a single masked incident |
| WitnessWeight | 0.15 | Added fraction per witness beyond the first (capped at 4 extra) |
| PublicPlaceMult | 1.5 | Multiplier when the masked crime is in a public place |
| DaytimeMult | 1.25 | Multiplier when the masked crime is in daytime |
| NerveDrainMult | 4 | Extra nerve-drain multiplier at full notoriety for civilians who see the mask |
| RedisguiseCost | 2500 | Cost of a "Persona Wipe" from the Supplies app |
| RedisguiseDrop | 1.0 | Notoriety removed per Persona Wipe (1.0 = full reset) |
| RedisguiseClearsHistory | false | Whether a Persona Wipe also erases masked-incident case files |
| MergeMinColdShare | 0.25 | Share of the cold masked spree merged onto you on a slip at zero notoriety |
| MergeFineBasePercent | 50 | Per-merged-incident fine as % of the murder fine at zero notoriety |
| MergeFineNotorietyPercent | 50 | Additional per-incident fine %, scaled by notoriety |
| BustedDestroysMask | true | Getting busted while masked confiscates the mask disk |
| EnforcerSoftStopEnabled | false | Enforcers give a soft "stop and look" at high notoriety |
| EnforcerSoftStopThreshold | 0.5 | Minimum notoriety before enforcers start eyeing the mask |
| EnforcerSoftStopRange | 12 | Metres within which a seeing enforcer reacts to the notorious mask |
| EnforcerSoftStopCooldownSeconds | 90 | Per-enforcer cooldown between soft-stop looks |
[Echelons]
| Key | Default | Meaning |
|---|---|---|
| RepairEchelonFloors | true | Repair high-security "echelon" floors' stale trespass flag on load (vanilla bug fix) |
[Cripple]
| Key | Default | Meaning |
|---|---|---|
| Enabled | true | Non-lethal hits make an NPC limp for a while |
| SpeedMultiplier | 0.3 | Speed fraction while crippled (clamped 0.05–1) |
| DurationSeconds | 90 | Real seconds a cripple lasts |
| BloodTrailEnabled | true | Crippled NPC leaves a light blood-drip trail (visual only) |
[Cameras]
| Key | Default | Meaning |
|---|---|---|
| Identify | true | Cameras that see the murder or you inside the scene identify you outright |
| NearSceneHeat | 15 | Heat added when a common-area camera catches you unmasked near a scene |
| NearSceneFreshWindowHours | 2 | Hours post-kill a common-area camera sighting still adds suspicion (0 = always) |
| SweepEnabled | true | Dispatch a brief enforcer sweep to where a wanted/masked player was camera-spotted |
| RespectDarkness | true | Cameras honor the game's own light/stealth model (darkness can defeat detection) |
| ForgeViolenceHeat | 10 | Investigation heat added when a forged death is staged over a beaten body |
[Hud]
| Key | Default | Meaning |
|---|---|---|
| ClusterEnabled | true | Show the Syndicate HUD cluster (mask, level, heat) |
| SceneTableEnabled | true | Show a table of open crime scenes under the level badge |
[Enforcers]
| Key | Default | Meaning |
|---|---|---|
| HuntMode | EnforcerPursuit | How enforcers turn hostile while wanted (EnforcerPursuit / GlobalIllegal) |
| PursuitResponseRange | 5 | Response range for recruiting additional enforcers on acquisition |
| PursuitMaxDistanceMeters | 50 | Max distance to consider an enforcer for the per-tick sight check |
| PursuitRequireLineOfSight | true | Require a physical line-of-sight ray before an enforcer/witness sees you |
| MurderFineAmount | 2000 | Credits added to the fine ledger per identified murder |
| IllegalRefreshSeconds | 30 | Seconds the "illegal" hunt flag lasts per refresh while warranted |
| StakeoutEnabled | true | Send enforcers to your home on a warrant |
| HomeRaidDelayHours | 0.05 | In-game hours before enforcers set out for your home |
| StakeoutGuardHours | 24 | Game-hours per guard-duty shift at your home |
| StakeoutForceCrimeScene | false | Dispatch the home raid as a crime scene (tape + guard) |
| RepPenaltyOnIdentifiedContract | 25 | Rep docked for being identified killing a Syndicate contract target |
| RepPenaltyOnIdentifiedRandom | 10 | Rep docked for being identified on a non-contract kill |
| HitmanLevelPenaltyOnIdentified | 0 | Reserved hitman-level knock on being identified (0 = off) |
| RepMessageDelaySeconds | 20 | Delay before the "standing took a hit" toast |
| SafehouseBreachEnabled | true | Dispatch one breach+sweep when hunters see you flee home during a warrant |
[Fines]
| Key | Default | Meaning |
|---|---|---|
| FineMinimumBalance | 5 | Credits always left in pocket when fines are collected |
| FineEarlyPayoffPercent | 60 | Percent of total owed to settle fines early, before capture |
| RaidWeaponSeizureEnabled | true | Home raid seizes a found murder weapon and surcharges its fine |
| RaidWeaponSurchargePercent | 50 | Surcharge % of the murder fine per seized weapon |
| CarryWeaponSeizureEnabled | true | Confiscate a carried murder weapon and surcharge its fine if busted |
| CarryWeaponSurchargePercent | 50 | Surcharge % per confiscated carried weapon |
| CruncherRaidPenaltyEnabled | true | A raid finding your cruncher on & logged in surcharges the fine and docks rep |
| CruncherRaidSurchargePercent | 25 | Cruncher-exposure fine surcharge % |
| CruncherRaidRepLoss | 5 | Rep docked for cruncher exposure during a raid |
[Contracts]
| Key | Default | Meaning |
|---|---|---|
| RepPenaltyOnContractCancel | 5 | Rep docked for cancelling an active contract |
| CaseBoardEnabled | true | Give each accepted contract a pinboard case |
| AutoCollectHours | 24 | Hours after payment becomes collectable before the fixer auto-wires it |
| AutoAssignMaxLevel | 2 | Highest Syndicate level at which the fixer auto-assigns contracts |
| MaxConcurrentContractsL3 | 3 | Max active contracts once the L3 board unlocks |
| OfferBoardSize | 8 | Number of offers the L3 board holds (1–8) |
| RefreshBoardCooldownHours | 6 | Hours between manual board refreshes |
| OfferLifetimeHours | 48 | Hours an un-accepted listing stays before being replaced |
| ContractCooldownHours | 12 | Hours after a contract closes before the next auto-assigned job |
| FirstContractDelayHours | 1 | Hours after becoming eligible before the first auto-assigned contract |
| DeadlineHours | 48 | Hours the optional deadline objective allows (min 24) |
| CloseToastEnabled | true | Show a toast after a contract closes telling when the next job lands |
| EnableNoViolenceObjective | true | Allow forge jobs to carry the optional "no signs of violence" bonus |
| NoViolenceChancePercent | 35 | Percent chance a forge job carries the no-violence bonus |
[TipLine]
| Key | Default | Meaning |
|---|---|---|
| Enabled | true | Enable the anonymous tip line to call in a hidden body sooner |
| Number | 9008477 | The tip line's phone number ("900-TIPS") |
[PauseLine]
| Key | Default | Meaning |
|---|---|---|
| Enabled | true | Enable the Dispatcher line |
| Number | 9007378 | The Dispatcher's phone number ("900-REST") |
[Onboarding]
| Key | Default | Meaning |
|---|---|---|
| Enabled | true | Master switch for the onboarding flow (intro v-mail, gated contracts, check-in) |
| FirstJobAfterActivationHours | 2 | Hours after check-in before the first contract lands (0 = immediate) |
| CheckInReminder1Minutes | 30 | Minutes after the intro v-mail before the first check-in reminder |
| CheckInReminder2Minutes | 60 | Minutes before the second/final check-in reminder |
[ContractEconomy]
| Key | Default | Meaning |
|---|---|---|
| ContractBasePayout | 900 | Base of the payout formula (payout = base × difficulty × info × bonuses) |
| DiffMultT2 | 1.7 | Difficulty multiplier for Tier 2 contracts |
| DiffMultT3 | 2.8 | Difficulty multiplier for Tier 3 contracts |
| InfoMultPartial | 1.5 | Payout multiplier for a partial-lead offer |
| InfoMultCold | 2.2 | Payout multiplier for a cold-lead offer |
| InfoFullPctT1 | 60 | Tier-1: percent of offers with a full dossier |
| InfoPartialPctT1 | 40 | Tier-1: percent with a partial lead |
| InfoFullPctT2 | 40 | Tier-2: percent full |
| InfoPartialPctT2 | 45 | Tier-2: percent partial |
| InfoFullPctT3 | 15 | Tier-3: percent full |
| InfoPartialPctT3 | 50 | Tier-3: percent partial |
| InvestigationBias | 0 | Global shifter toward Full vs Partial/Cold offers (−50..50) |
| ObjChanceZero | 45 | Percent of contracts with zero optional objectives |
| ObjChanceOne | 40 | Percent with exactly one optional objective |
| BonusClean | 0.25 | Payout fraction for the clean/no-ID objective |
| BonusDeadline | 0.2 | Payout fraction for meeting the deadline |
| BonusPhoto | 0.3 | Payout fraction for the photo-of-body objective |
| BonusSuicide | 0.5 | Payout fraction for the forge-accident objective |
| BonusPoison | 0.35 | Payout fraction for the poison-kill objective |
| EnablePhotoObjective | true | Allow the photo-of-body objective to roll |
| EnablePoisonObjective | true | Allow the poison-kill objective to roll |
| EnableSuicideObjective | true | Allow the forge-accident objective to roll |
| EnableDisposalObjective | true | Allow the weapon-disposal-at-sea term to attach |
| DisposalContractPercent | 25 | Percent of eligible contracts carrying the sea-disposal term |
| DisposalPenalty | 0.45 | Fraction of the base fee lost for keeping the weapon instead of dumping it |
| DisposalMinLevel | 0 | Lowest Syndicate level at which the sea-disposal term attaches |
| DisposalWeaponList | Syringe,KitchenKnifeLarge,CombatKnife,Truncheon,BasBouleBat,VintageSword,Katana | Presets that may be issued for a sea-disposal job |
| EnableFallForge | true | Allow the forge-accident objective to roll its "forge a fall" variant |
| FallVariantPercent | 40 | Percent of forge-accident jobs using the fall variant |
| BonusNoViolence | 0.3 | Payout fraction for a forge kill with no signs of violence |
[Fall]
| Key | Default | Meaning |
|---|---|---|
| FallKillsEnabled | true | Enable fall-damage kills from dragging a KO'd citizen off a height |
| LethalFallHeight | 6 | Metres a dragged body must fall to die |
| HeaveKey | G | Key to heave a dragged KO'd body in the look direction (None = disabled) |
| HeaveSpeed | 6 | Launch speed (m/s) of a heaved body |
| DragLiftAssist | 0.8 | Lift assist (0–1) while dragging a KO'd body |
| FallSceneAtLanding | true | Re-anchor the crime scene to where the corpse comes to rest |
| FallAntiSnagEnabled | true | Give a mid-air-snagged falling body a downward shove |
| FallAntiSnagForce | 6 | Downward shove speed (m/s) to dislodge a snagged body |
[Cleanup]
| Key | Default | Meaning |
|---|---|---|
| HomeVacateEnabled | true | Quietly vacate an away-killed victim's home after a delay |
| HomeVacateDelayHours | 24 | Hours after case resolution before the empty home is vacated |
[Combat]
| Key | Default | Meaning |
|---|---|---|
| KODurationMultiplier | 3 | Multiplies rolled-KO duration (vanilla base ≈1 in-game hour) |
| BluntKOMultiplier | 1.6 | Scales blunt-weapon per-hit damage (fewer hits to KO) |
| BladeKOMultiplier | 0.6 | Scales bladed-weapon per-hit damage (more hits for a non-lethal KO) |
[Progression]
| Key | Default | Meaning |
|---|---|---|
| Level1Rep | 20 | Rep needed to reach Level 1 |
| Level2Rep | 50 | Rep needed to reach Level 2 (also the Tier-2 boundary) |
| Level3Rep | 100 | Rep needed to reach Level 3 (also the Tier-3 boundary) |
| Level1Reward | 500 | Credits paid on first reaching Level 1 |
| Level2Reward | 1500 | Credits paid on first reaching Level 2 |
| Level3Reward | 4000 | Credits paid on first reaching Level 3 |
[SocialCredit]
| Key | Default | Meaning |
|---|---|---|
| SocialCreditPerToken | 350 | Native social credit gained per standing purchase |
| SocialCreditPurchaseMoneyCost | 500 | Credits charged alongside the hit token per purchase |
[Supplies]
| Key | Default | Meaning |
|---|---|---|
| Enabled | true | Enable the Syndicate Supply app |
| DiscountPercent | 20 | Discount % off an item's street value (0–90) |
| DeliveryHours | 1 | Hours from checkout to courier delivery |
| GroceriesEnabled | true | Enable the bonus Groceries delivery app |
| GroceriesMarkupPercent | 10 | Delivery markup % on grocery items (0–500) |
| GearPriceMultiplier | 3.0 | Global price multiplier on the non-gun/non-ammo gear bucket |
| AmmoPriceMultiplier | 3.0 | Global price multiplier on ammunition |
| GunPriceMultiplier | 7.0 | Global price multiplier on firearms |
[Firearms]
| Key | Default | Meaning |
|---|---|---|
| Enabled | true | Enable player weapon-firing |
| HeadshotLethal | true | A headshot with any gun kills outright |
| HeadshotRadius | 0.35 | Metres a bullet must land near the head anchor to count as a headshot |
| HeadshotDebug | false | Diagnostic per-pellet headshot logging |
| OneShotWeapons | Shotgun,SniperRifle | Gun presets whose body shot kills outright |
| Accuracy | 1.0 | Aim precision (0–1) |
| MinFireCooldownSeconds | 0.4 | Floor under the native per-weapon fire cadence |
| ConsumeAmmo | true | Require and consume one matching ammo item per shot |
| SpawnCasings | true | Leave a spent casing (carries your print if ungloved) per shot |
| FireKey | None | Optional alternate fire key (left-click already fires) |
| MeleeKey | None | Optional key to pistol-whip with a held firearm |
| Recoil | 15 | Camera recoil kick per shot |
| PoseLab | false | Debug-only first-person pose tool |
| ReloadKey | R | Key to reload the held gun |
| ReloadSeconds | 2.5 | Seconds a reload takes |
| MagazineSizes | (per-gun list) | Per-gun magazine capacity (unlisted gun → 8) |
| AmmoBoxSizes | (per-box list) | Rounds per ammo box (unlisted box → 12) |
| AmmoHud | true | Show a magazine/reserve readout while a gun is drawn |
| AutoFireWeapons | BattleRifle | Guns that fire full-auto while holding fire |
| AutoFireIntervalSeconds | 0.12 | Seconds between shots for an auto weapon |
| AutoRecoilScale | 0.4 | Recoil multiplier for auto weapons |
| ShotgunPellets | 6 | Pellets per shotgun shell |
| ShotgunSpread | 0.06 | Shotgun pellet spread (0 = none) |
| ShotgunLethalPellets | 3 | Pellets that must strike one citizen for a lethal shotgun hit |
| ShotgunAmmoSwitchKey | B | Key to switch shotgun shell type (buckshot/slug) |
| DrawnGunDread | true | Nearby citizens lose nerve near a drawn gun |
| DrawnGunNerve | -0.05 | Nerve drained per tick from nearby citizens while a gun is drawn |
| DrawnGunRange | 8 | Range (m) citizens feel drawn-gun dread |
| GunshotsAlarm | true | Gunshots alarm citizens who hear them |
| AlarmExemptGuns | SemiAutomaticPistolSilenced | Guns whose shots don't alarm hearers |
| GunshotSpook | 0.2 | Min nerve drop for hearing a gunshot |
| RoomTurnOnHit | true | A non-lethal gunshot rouses the victim's whole room to pursue you |
| RoomTurnRange | 10 | Range (m) whose occupants turn on you |
| InteractYieldDistance | 2 | Distance an interactable under the crosshair yields the trigger-pull to interaction |
[Mask]
| Key | Default | Meaning |
|---|---|---|
| ToggleKey | N | Key to toggle the False Face mask |
| ScareCivilians | true | Nearby civilians lose nerve while the mask is worn |
| ScareNerve | -0.02 | Nerve drained per tick from nearby civilians while masked |
| ScareRange | 8 | Range (m) civilians feel masked-figure dread |
| ScareEnforcers | false | Whether the mask scare also unnerves enforcers |
| MaskedDescriptionHeat | 12 | Heat added once per scene when a masked witness reports |
| UnmaskInViewIdentifies | true | Unmasking while a witness/camera of an open case watches converts them to a positive ID |
[Poison]
| Key | Default | Meaning |
|---|---|---|
| Enabled | true | Enable the poison items (syringe + vial) |
| SyringeDoses | 3 | Kills per syringe before it's spent |
| VialDoses | 1 | Forced overdoses per vial |
| UseRangeMeters | 2.0 | Reach (m) for aiming the syringe/vial |
| PromptOverride | true | Swap the interaction prompt to "Inject"/"Force-feed" |
| UseCooldownSeconds | 1.2 | Min real seconds between poison uses |
| SyringeKillDelayGameMinutes | 5 | In-game minutes a conscious syringe target stays alive (0 = instant) |
| SyringeStaggerDrunk | 0.6 | Stagger amount applied at the jab (0–1) |
| ForgeDelayMinutes | 10 | In-game minutes between vial force-feed and overdose death |
[Fingerprints]
| Key | Default | Meaning |
|---|---|---|
| RemoverCharges | 50 | Charges in one Fingerprint Remover (spent only on a wipe) |
| RemoverPreset | "CleaningSpray" | Vanilla item preset the remover reuses |
| WipeRangeMeters | 2.0 | Reach (m) to wipe prints off an object |
| NoPrintPresets | "DoorUnderneathPeek" | Interactable presets that never leave a print (peek/observe actions) |
[Sedative]
| Key | Default | Meaning |
|---|---|---|
| Enabled | true | Enable the sedative stealth-KO item |
| Preset | "Sleeping Pills" | Vanilla item preset the sedative reuses |
| UseRangeMeters | 2.0 | Reach (m) to apply the sedative |
| BehindDot | -0.25 | How far behind the target you must be (lower = stricter) |
| Doses | 3 | Stealth takedowns per sedative pack |
| PromptOverride | true | Prompt reads "Sedate" when a clean takedown is available |
[Protection]
| Key | Default | Meaning |
|---|---|---|
| ProtectFiniteNPCs | true | Enforcers/landlords are never killable — only knocked out |
| ProtectLastCompanyWorker | true | A company's last living employee is never offered as a contract target |
[General]
| Key | Default | Meaning |
|---|---|---|
| SightCheckIntervalSeconds | 1.5 | Seconds between crime-scene perception/report checks |
| VerboseLogging | false | Emit detailed diagnostic logging (turn on for a bug report) |
| MessageGapSeconds | 4 | Min seconds between consecutive on-screen toasts |
[Debug]
| Key | Default | Meaning |
|---|---|---|
| Enabled | false | Developer mode: enables an in-game debug overlay and full logging. Leave off for normal play. |
Reporting a bug
- Set
[General] VerboseLogging = truein the config (and, if you can reproduce it,[Debug] Enabled = truefor extra detail). - Reproduce the issue.
- Grab
BepInEx/LogOutput.logand a description of what happened and what you expected. - Post it on the mod's Thunderstore page or the Shadows of Doubt modding Discord.
Tell me your build, your other installed mods, and whether it happens on a fresh save.
Credits
The Syndicate is built on BepInEx and SOD.Common (Venomaus). Shadows of Doubt is by ColePowered Games. Thanks to the Shadows of Doubt modding community.
Thanks to suggestions on the Reddit threads, specially /u/Marcipan424!
License
The Syndicate is source-available, not open-source. You're welcome to download and play it, read and learn from the source, and tinker with it locally — but please don't re-upload, repackage, or republish it (or a modified version) anywhere without permission. Install it only through the official Thunderstore listing or a mod manager. Full terms in LICENSE.md.
Enjoy the work. Tidy up after yourself — cold is fine, a trail is not.
CHANGELOG
Changelog
All notable changes to The Syndicate are recorded here. Newest version on top.
0.9.72 (2026-08-17): Clock reliability fix
Fixed
- Crime scenes and warrants no longer get stuck on a timer that never counts down. A game clock the mod read time from could report the wrong day of the month, so any deadline measured against it could drift by whole in-game weeks and never elapse. In practice that showed up as a crime scene frozen on a huge investigation time (for example "INV 171h") that never finished, which in turn held back the contract objective and payout tied to that kill, and as a warrant that never expired. The mod now reads the reliable in-game clock everywhere it tracks time, so investigations run down and close on schedule, held-back contract payouts are released, and warrants lapse when they should.
- Saves that are already stuck heal themselves on load. If a scene or warrant was frozen under an older version, loading the save on this version lets the stuck scene resolve on its own, ticks over and pays the contract attached to it, and expires any stale warrant. No new save is required.
0.9.71 (2026-08-17): Cloud-synced saves
Fixed
- Your Syndicate progress now travels with your save and through Steam Cloud. Until now the mod kept its state (rank, gear, contracts, heat, calling-card history) in a companion folder that Steam Cloud did not sync, so moving a save to another PC, or letting Steam Cloud restore one, reset you to Level 0. The mod now stores its state inside the save file itself, so it rides the game's own cloud sync and copies between machines automatically, with no manual folder-copying. Saves made before this update are migrated automatically on their next load: the old companion file is read once, folded into the save, and retired (renamed to
…syndicate.json.migrated.bak), so nothing is lost.
0.9.7 (2026-08-17): The Calling Card
Added
- The Calling Card: sign your work. Buy blank calling cards from the Supplies app (from Level 1), ink a moniker of your own once at the cruncher's Syndicate app, and leave a card on a body. The city paper then names the killer by your mark instead of inventing a serial-killer nickname, and runs a "who is this?" story about the persona you are building. Grab the card back before the body is found and the claim vanishes cleanly. But if a signed murder is ever pinned to you, that moniker is burned for good: the press prints "[name] HAS A NAME", and you can never sign with it again. Unmasking a second persona links both names to you publicly ("TWO MASKS, ONE HAND") and adds heat. Your first mark is free; changing it later costs 1,000cr and never burns the old name (only getting caught does). A card left on a body also carries your fingerprint unless you wear the Second Skin gloves, and it converts a forged "accident" back into an open murder if it is still on the body when it is found.
- A home raid can unmask you. During a warrant home raid, if enforcers find your calling cards at the home they raid, every persona whose card is there is pinned to you at once: fines, an extended warrant, and the moniker burned. Only the personas on the cards they actually find fall; kills signed under a different mark, whose cards are elsewhere, stay anonymous. Do not stockpile signed cards where they can search.
- The residual-evidence file can name you. When the hidden Residual Heat meter fills to 100% and the cold cases it reopens include a signed one, that persona is now unmasked and its moniker burned along with the fines and warrant, not merely re-charged.
Changed
- A living city newspaper. The paper now reports the full arc of your work: obituaries that name who found the body, how, and the apparent cause of death; coroner rulings ("ruled an overdose", "ruled an accidental fall"); cold-case write-ups when a trail stalls; a "masked figure sought" when you are seen but not identified; a serial-killer profile once a pattern forms; your signed claims and the moment a name is burned; the manhunt (WANTED, an arrest, or a lapsed warrant); and city-wide crime-wave and repeat-address stories. You can now scroll the mouse wheel while reading to page back through older editions, and the front page stays consistent so nothing important is silently dropped.
- Throw a corpse, not just a knockout. The G heave now works on an already-dead body too, so you can pitch a corpse out a window or off a ledge to get it out of sight (no faked accident, just a physics throw).
- Every notification runs through one queue. All of the mod's pop-up messages are now spaced and grouped so they never overlap or pile up.
Fixed
- Guns work again after using a cruncher mid-rename. Opening the moniker editor, hitting a rejection, and walking away without closing the app could leave the typing guard stuck, which silently killed all firearm actions (fire, reload, ammo and slug switching) until a reload. The guard now clears itself the instant you leave the cruncher.
- Hiding through a home raid keeps the weapon you are carrying. A raid was wrongly seizing a murder weapon out of your inventory while you hid at home. Carried weapons are only taken on an actual bust now; only a weapon left lying at home is seized in the raid.
- A fast witnessed kill now prints its obituary. When a witness identified you almost immediately, the "body found" story was being suppressed in favour of the WANTED story and never printed. A fresh obituary now runs alongside the manhunt.
- Paying a murder's bounty fully settles it. Settling or fully paying a murder's fine now stops that murder's weapon and cards from incriminating you later, so you can no longer be re-fined for a bounty you already cleared.
- The newspaper no longer double-prints a story after a reload. A specific save-and-reload timing could show the same story on both the front page and the scroll-back pages.
0.9.6 (2026-08-13): Restraint tools & a riskier disguise
Added
- Duct Tape: a reusable silent restraint. Buy it from the Supplies app. Aim at someone within reach and use it to bind and gag them for a few hours: it silences their screams and barks. It works on anyone already helpless (asleep, knocked out, or already restrained) from any angle, or on a conscious mark from behind. Hold to apply (a progress bar, like handcuffs); re-tape to refresh the hold. About 10 uses per roll.
- Drag a restrained person to another room. Hold
Gwhile aiming at a handcuffed or taped (conscious, not knocked-out) citizen to walk them along with you; release to drop them. You move slowly while dragging. (Knocked-out bodies still use the existing corpse-drag /G-heave.) - Handcuffs hold much longer: a cuffed citizen now stays restrained about 5 in-game hours (was ~1), long enough to actually move or work around them.
- People react to a bound victim left in public. Restraining someone in a public space where a witness can see them now has consequences: a passer-by panics and phones it in (enforcers sweep in shortly after), an on-duty enforcer who spots them investigates and dispatches faster, and an enforcer who catches you in the act comes after you (plus a little heat). Private rooms (apartments, back rooms) stay completely silent, so a captive stashed out of sight draws nothing. Nobody ever unties the victim; the consequence is the law arriving, not a jailbreak. New
[Restraint] PublicReaction*knobs, including an enforcers-only switch if you'd rather bystanders stayed oblivious. - Petty crime under the mask builds notoriety too. Committing a seen non-lethal crime while masked (a punch, a break-in, a theft, a trespass) now raises your masked persona's infamy, scaled by how serious it is (an assault counts for far more than a trespass). Unseen crimes and unmasked crimes don't count, a whole witnessed looting run reads as one incident, and it's capped well below what an actual killing adds.
Changed
- The mask is riskier to lean on. Masked notoriety now fades more slowly (roughly half the old rate), each sighting stings more, simply wearing the mask in a public place with people around slowly builds infamy on its own, and at high notoriety enforcers give you a "stop and look" by default. The mask is still powerful: it just isn't a free pass any more.
- Richer newspaper crime coverage. The city paper now reports more of the fallout (who found the body and how, the apparent cause of death) and, once a string of similar killings piles up, it runs a serial-killer profile that fixes on a consistent description and a nickname for the culprit. Your pattern becomes a story.
- Sync-disk shop prices & gating tweaked. The False Face mask is cheaper in the Supplies app now (3,500cr, still available from Level 1) while the Second Skin gloves are gated a little later, at Level 3 (still 5,000cr). New
[Supplies] MaskDiskAppPriceknob for the mask's price. - Landlords can now be killed. They're still never handed to you as contract targets (killing a landlord leaves a district without one), but the finite-pool protection no longer forces a lethal hit on a landlord down to a knockout: that immunity is now enforcers-only. Kill one if you must; the consequences are yours.
Fixed
- Wiping a murder weapon's fingerprints now actually works. Cleaning a weapon (especially a poison bottle) with the Fingerprint Remover before the case goes cold now prevents the print off it from identifying you: the forensic review had been reading a stale snapshot and naming you anyway.
- A restrained victim no longer works against you. A cuffed or taped citizen can't become a witness to your crime, can't red-hand you as an enforcer at your own scene, and can't file a report while they're still tied up.
- Fixed a hard crash that could occur while binding with the duct tape.
- Holding the duct tape or sedative no longer opens the "Talk to" dialog: you can't accidentally strike up a conversation with the target you're trying to subdue.
- The Dispatcher's phone-menu options no longer leak into ordinary NPC conversations.
Compatibility
- Works with DialogUIRework (PiePieOnline). The Dispatcher phone menu (including the change-base submenu) is now selectable when that mod's tabbed dialog UI is installed.
0.9.5 (2026-08-12): Firearms overhaul & reward rework
Added
- Multiple operations bases (multi-home). If you own more than one home, the Syndicate now treats one of them as your operations base: where your level-reward sync disks are couriered, where an enforcer home raid comes looking, and where auto-assigned (and Dispatcher-pulled) contract kit is delivered. Move it any time from the Dispatcher → "Move my operations base." Contract kit from the Level-3 job board instead goes to the specific home whose board you accepted the job at, and Supplies / Groceries orders arrive at whichever home's cruncher you placed the order from, so each home can run its own errands. The option only appears when you actually own more than one home, and is held back during an active warrant or an open crime scene so a move can't desync a raid in progress. Single-home players see no change.
Changed
- Guns now aim. Hold right-mouse to raise the weapon; left-click while aiming fires. Left-click without aiming is a melee strike, and the strike now plays its full swing animation (it was landing damage invisibly before). Near a surface, right-click still puts the item down / back as usual: aim only takes over where the game would otherwise let you throw.
- Snipers get a variable scope. While aiming a sniper rifle, scroll to zoom (a small
4.0xreadout shows by the crosshair). Sniper shots also reach much farther: the base game caps bullet range short because guns are melee items, which had been limiting the sniper. There's a newBulletRangeFloorconfig (default 500m). - Level rewards are now random sync disks. Reaching Level 1 and Level 2 each mails you a random useful vanilla sync disk from a curated, configurable pool, so an early kit differs run to run. The False Face mask and Second Skin gloves are no longer level rewards: buy them from the Supplies app (5,000cr each; mask from Level 1, gloves from Level 2), with a short "how it works" v-mail on your first order of each. Disks you already earned on an older save are kept.
- The Syndicate's own two disks no longer appear in vanilla shops: the Supplies app is the only place to buy them.
Fixed
- Enforcers no longer panic at a drawn gun. Off-duty enforcers were taking the base game's "someone's holding a weapon" fear and cowering or fleeing; trained officers now shrug it off (config
EnforcersUnfazedByDrawnGuns). Civilians still react. - Moving your operations base is blocked while a crime scene is open, so an active scene can't be orphaned.
- Save-transfer safety net. If a save is moved or Steam-Cloud-restored without the mod's companion file (which Steam doesn't sync, see the README), the cruncher inbox no longer bricks; affected Syndicate v-mails degrade to a placeholder instead of crashing.
- Sync disks bought from the app before this update that reloaded as unusable duds are now refunded automatically on load (their identity can't be recovered), and new app purchases reload correctly.
0.9.4 (2026-08-10): Bug fixes & polish
Fixed
- Reward sync disks could break after a save/reload. The mask (False Face) and gloves (Second Skin) disks are delivered to your mailbox, but on some setups, reloading a save with one still lying around left it unusable: it couldn't be installed at a clinic, and in the worst case just looking at it stuttered the game. Both disks are now repaired automatically on load, wherever you've stored them, so a disk left over from an earlier session works again.
- Sedating an enforcer (Dorma-Dix). Using the sedative on an enforcer wrongly showed the "that one's off-limits" refusal and didn't use up a dose, even though it knocked them out. Enforcers are protected from being killed, not from a clean knockout, so sedating one now works like sedating anyone else (a dose is spent, no bogus refusal). Staging a fatal "accident" on one is still blocked.
Added
- A one-time reminder on how to get paid. The first time one of your kills resolves for payout, you get a short prompt spelling out the steps (go to your case board, open the case, hit Close the contract, then Collect) so the payday doesn't slip by. It only ever shows once.
Changed
- Removed a Windows-console tweak. A small startup tweak that disabled the console window's QuickEdit mode was dropped. If you relied on it to avoid the "game freezes until I click the console" pause, you can turn QuickEdit off yourself in the console window's Properties.
Docs
- The README and wiki now state up front that you need a cruncher to play (your contracts and every shop app live only on your home cruncher) and recommend starting your sandbox save with a starting apartment.
0.9.3 (2026-08-08): Memory-leak hotfix
Fixes two memory leaks that could balloon the game's RAM over a long session. They were worst on large cities, where the game already starts near its memory ceiling: there it could climb past 8 GB and stutter badly (even while paused), and sometimes hang on exit. Smaller cities rarely showed it because they start with far more headroom. Both are fixed; a long session now holds steady.
Fixed
- HUD icon memory leak (the main one). The Syndicate HUD redraws the game's own icon sprites (the rank stars and the heat-bar eye) every frame, and the way they were being drawn leaked a little memory on every frame. Over a session that added up to gigabytes. The icons are now pre-rendered once and drawn cheaply, so the drip is gone, with no change to how the HUD looks.
- Permanent-corpse memory leak. Because the Syndicate deliberately keeps your quiet kills from being "discovered," the game never cleaned up the body, and a lingering corpse keeps every passer-by tracking blood, which the game turns into an ever-growing pile of footprint decals. Now, a few hours after a kill's case resolves, the body is quietly handed to the game's own crime-scene cleanup (only once you're not around to see it), so it and its blood trails clear out. Existing saves with a stuck body are repaired on load.
Changed
- Bodies are found sooner. An undiscovered body is now found by a welfare check in about 8-12 in-game hours (was 24-48), so a kill doesn't sit around as long before its scene resolves and cleans up.
- Away-from-home victims' apartments clear a little later: about two days after the case resolves, matching how long the crime-scene tape lingers.
0.9.2 (2026-08-07)
Added
- Clear your bounty early through the Dispatcher. If you owe murder fines, call the Dispatcher and pick Clear my bounty to settle them for a discount (default 60% of what's owed) before a capture collects the full amount. The option shows the live price and only appears when you actually owe something.
Changed
- Clearer Supplies pricing. Gear now shows its true street price and exactly how much you save buying through the Syndicate. (The old line understated it: it compared against the pre-markup base value instead of what other vendors actually charge.)
- Removed the Print Scanner from the Supplies shop. Every citizen (you included) starts the game carrying one, so buying a second identical scanner was pointless.
Fixed
- Post-load stutter on a save made near a body. Reloading a save that held an open crime scene whose murder weapon no longer exists (for example, a syringe you'd already dumped at sea) made the game hitch about once a second: the scene was scanning the entire city every tick trying to re-find the vanished weapon. It now uses the game's direct lookup, so a gone weapon costs nothing. (Same class of fix as 0.9.1; this path only triggered after loading such a save.)
0.9.1 (2026-08-06): Performance hotfix
Purely performance: no gameplay or balance changes.
Fixed
- Large-city stutter from supply/grocery deliveries. While a courier case sat in the world, the game hitched (~1-second frames) for as long as the case existed, and it got worse the bigger the city. Cause: the case was being located by a full linear scan of every interactable in the city each tick; on a large map that single scan took ~1 second. It now uses the game's O(1) id lookup. (Small cities never showed it, which is why it slipped through internal testing on a compact map.)
- The same O(city)-scan pattern, removed from three other hot paths that could hitch on large cities: the crime-scene occupant check while you're standing inside a scene, address lookups during the evidence-heist and home-vacate windows, and the fixer lookup that runs repeatedly on load / during onboarding. All now use the game's scoped or O(1) lookups.
0.9.0 (2026-08-05): First public beta
The first public release. The Syndicate turns Shadows of Doubt into a career-hitman sandbox: a fixer moves you into the city, you take contracts, put targets down, and try to walk away from the exact investigation your own kills create.
Contracts & progression
- Underworld reputation career across four ranks (Recruit, Associate, Operative, Lieutenant) with one-time promotion rewards (the False Face mask at Level 1, the Second Skin gloves at Level 2, the contract board at Level 3).
- Auto-assigned contracts by v-mail at Levels 0-2; a browsable job board (up to 3 concurrent) at Level 3.
- Target selection scored on Wealth / Security / Exposure, with Full / Partial / Cold info leads: Partial/Cold hand you a clue trail guaranteed to resolve to one citizen.
- Escrow payout: money and standing clear only after a kill's heat settles; you collect on the pinboard. No reputation for a job you get identified on.
- Optional contract objectives: Clean Kill, Deadline, Photo of the Body, Poison Kill, Forge an Accident (overdose or fall), No Violence, Dispose at Sea.
- Hit Tokens, spent on the game's native social-credit stat.
- Onboarding flow with a Dispatcher check-in gate and one-shot tutorial toasts.
Killing
- Six working firearms with ammo, magazines, reloading, shotgun spread, headshots, and gunshot alarm.
- Reusable poison syringe (silent or delayed kill), single-use overdose vial (staged overdose), sedative for a clean no-marks KO, and forge-a-fall by dragging/heaving a downed body off a height.
- Melee with a cripple-on-hit slow. Enforcers and landlords are protected (KO only) to keep the city's finite pools intact.
The investigation & consequences
- Live crime scenes fed by witnesses, security cameras (with a darkness/stealth gate), and a fingerprint/forensics system with a public-place gate.
- Warrant + enforcer manhunt, home raid with murder-weapon seizure and cruncher-exposure penalties, caught-carrying confiscation, and a fine ledger.
- The False Face mask blocks identification (never forensics) and carries its own masked-persona notoriety with a "slip" that merges your masked spree onto your real identity.
- Residual-heat meter with a "Loose Ends" evidence-heist offer, and a mole email that reports what nearly caught you.
Tools, apps & UI
- Syndicate, Supplies, and Groceries cruncher apps (courier delivery, level-gated gear, global price multipliers).
- Anonymous Tip Line and the Dispatcher phone line (pause/resume, pull work early).
- Custom newspaper front pages for your kills, manhunts, and staged accidents.
- A top-of-screen HUD cluster (level, open crime scenes, mask, heat) plus a WANTED banner.
- The Fingerprint Remover tool and an in-room "your prints here" cue overlay.
Notes
- The public build ships with debug tooling disabled and keeps citizen names and home addresses out of the log (
[Debug] Enabled= false). - Nearly every number is a config knob in
Kropath.TheSyndicate.cfg. - Beta: expect bugs and balance changes. Best played on a new sandbox save with procedural murders off, and back up any save you care about.