Difficulty in Drug Dealer Simulator 1
DDS1 has four difficulty modes: Easy, Normal, Hard, and Hardcore. Each mode changes a fixed set of hidden parameters that affect police heat, DEA behavior, reputation, dealer promotions, fugitive escapes, and more. This page documents every change with verified numbers from the game's decompiled code.
Important: Hard and Hardcore share almost all the same numbers. The few Hardcore-only changes are called out in each section.
The Big Misconception: Difficulty & Customer Overdoses
A common community question is whether higher difficulty makes customers overdose more easily. The answer is no.
Customer OD chance is determined entirely by the toxicity of the drug mix you sell — nothing else. The formula is identical on Easy, Normal, Hard, and Hardcore.
| Mix Toxicity | OD Chance Per Sale | What This Means |
|---|---|---|
| ≤ 3.9 | 0% | Customer cannot OD — safe regardless of difficulty |
| 3.9 – 12.0 | Scaled 0.1% – 8% | Curve maxes out at 8% just below toxicity 12 |
| > 12.0 | Flat 25% | One in four sales kills the customer |
The exact low-toxicity formula:
chance = clamp(((toxicity - 3.9) / 3.9) / 20, 0.001, 0.08)
What difficulty does change is the aftermath of an OD. An OD fires a CLIENT-OD event worth +600 exposition (police heat), and how that heat behaves afterwards depends entirely on difficulty — see the police heat and DEA sections below.
Note: An older value lowToxOdPercent = 0.1 exists in the bytecode but is dead code — never wired to the actual OD check. The real low-tox curve maxes at 8%, not 10%.
Police Heat (Exposition) by Difficulty
Exposition is the game's running average of how "hot" you are with the police. It builds from sales, busts, and OD events, and decays over time. Difficulty changes both the ceiling and the decay rate:
| Parameter | Easy | Normal | Hard | Hardcore |
|---|---|---|---|---|
Heat ceiling multiplier (ExpoFactorMultiplier) | 0.70× | 1.00× | 1.20× | 1.20× |
Minimum heat floor (expoFactorMin) | 35 | 50 | 80 | 80 |
Heat decay rate per second (expoFactorDropRatePS) | 0.18 | 0.13 | 0.10 | 0.10 |
Risk factor floor (riskFactorMin) | 35 | 50 | 80 | 80 |
Risk factor decay rate (riskFactorDropRatePS) | 0.20 | 0.15 | 0.12 | 0.12 |
What this means in practice: on Hardcore, heat from a single OD event sticks around about 50% longer than on Easy, the ceiling is 20% higher, and you cannot drop below an exposition level of 80 even when totally idle. On Easy you can fully cool off to 35.
DEA & Apartment Observation
The DEA is the second-tier law enforcement that observes your apartments and can raid them after extended observation. Difficulty changes both when they show up and how aggressive they are.
| Parameter | Easy | Normal | Hard | Hardcore |
|---|---|---|---|---|
Heat level required for DEA to start (expoLevelDEA_start) | 600 | 500 | 400 | 400 |
DEA observation interval (deaObservationInterval) | 3200s | 1600s | 1300s | 1300s |
DEA observation chance multiplier (deaChanceMultiplier) | 0.55 | 0.65 | 0.80 | 0.80 |
| How many apartments are observed at once | 1 (most-visited) | 1 (most-visited) | 1 (most-visited) | ALL eligible |
The Hardcore-specific change: on every other difficulty, the DEA observes only your most-visited apartment at any given time. On Hardcore they observe all eligible apartments simultaneously, which means rotating between hideouts no longer protects you — every save station you rent is a target.
Eligibility for DEA observation: the apartment must be rented, must not be marked as areaForever (story-permanent), must have a save station, and must not already be under observation.
Police Patrols & Blockades
Patrols and blockades scale with both your exposition level and a difficulty-specific multiplier:
| Parameter | Easy | Normal | Hard / Hardcore |
|---|---|---|---|
Patrol count multiplier (policeMultiplier) | 1.3× | 1.6× | 2.1× |
| Day patrol minimum (5am–8pm) | 5 | 6 | 7 |
| Night patrol minimum (8pm–5am) | 7 | 8 | 10 |
The full patrol-count formula is:
patrols = Clamp(Round(maxTotal × (expo / expoMax) × policeMultiplier), minPatrol, maxTotal)
Police dogs (K9 patrols) require exposition > 500 AND player level > 7. When eligible, each spawned patrol has a 30% chance of being a dog patrol — this rate does not change with difficulty.
Early-game patrol clamps:
- Player level ≤ 5: patrols clamped to 2–4 regardless of heat
- Before zone 2 unlock: patrols halved, clamped 3–6
Blockade Spawn Chance (Player Level 8+)
Below player level 8, blockades cannot spawn at all. Above level 8, the chance scales with exposition on a difficulty-specific curve:
| Difficulty | Heat range that triggers blockades | Spawn chance range |
|---|---|---|
| Easy | 250 – 1000 | 50% → 80% |
| Normal | 150 – 800 | 60% → 90% |
| Hard / Hardcore | 0 – 500 | 75% → 100% |
Blockade lifetime: Easy 1200s, Normal 900s, Hard/Hardcore 600s. Blockades expire faster on harder modes (since new ones spawn more aggressively to replace them).
Reputation by Difficulty
Reputation is your standing with each district. Difficulty changes how reputation gains are processed:
| Difficulty | Reputation Gain Formula |
|---|---|
| Easy | rep += Amount × 1.12 (+12% bonus, NO CLAMP — can exceed normal range) |
| Normal | rep = Clamp(rep + Amount, −range, +range) |
| Hard | Same as Normal |
| Hardcore | Same as Normal |
Easy is the only difficulty where reputation can exceed the normal cap. This compounds with the +12% bonus to make reputation grinding noticeably faster.
Reputation decays toward zero at reputationZeroingPS per second on every difficulty (no difficulty change to decay rate). Both positive and negative rep decay at the same rate.
Dealer Promotions by Difficulty
Dealers are clients you promote into your sales network. The dealerOfferChance formula determines how often a satisfied client gets promoted:
| Difficulty | Promotion Chance Formula | Effective Range |
|---|---|---|
| Easy | Clamp((sat − minSat) / 2.0, 0.02, 0.22) | 2% – 22% |
| Normal | Clamp((sat − minSat) / 2.0, 0.01, 0.18) + extra if sat > 0.2 AND orderCount ≥ 6 | 1% – 18% (with bonuses) |
| Hard | Clamp((sat − minSat) / 2.0, 0.01, 0.18) | 1% – 18% |
| Hardcore | Clamp((sat − minSat) / 3.0, 0.01, 0.18) | 1% – 18% (but base chance HALVED — divides by 3 instead of 2) |
All difficulties also require: dealer cap not full, dealer storyline quest complete, satisfaction ≥ dealerMinSatisfaction, and order count > dealerMinOrderCount.
Hardcore takeaway: the chance ceiling looks the same as Normal/Hard (18%), but the base curve divides satisfaction by 3 instead of 2 — you need much higher satisfaction to even reach the cap.
Fugitive Timer (Police Chase Escape)
When you flee a police chase, you have a fixed window to escape before becoming a fugitive (which forces a custody check). The timer is harshly difficulty-scaled:
| Difficulty | Fugitive Timer |
|---|---|
| Easy | 900 seconds (15 minutes) |
| Normal | 750 seconds (12.5 minutes) |
| Hard | 600 seconds (10 minutes) |
| Hardcore | 450 seconds (7.5 minutes) |
Hardcore halves the Easy escape window. Combined with faster-spawning blockades and 2.1× patrol multiplier, escapes are dramatically harder on the top two difficulties.
The Hardcore Heat Storm: CODE-HARDCORE Event
Hardcore mode includes one extra exposition event that does not exist on any other difficulty: CODE-HARDCORE.
| Property | Value |
|---|---|
| Event ID | CODE-HARDCORE |
| Exposition value | 1100 (highest of any event in the game) |
| Weighting in heat average | 10.0 (10× heavier than a normal event) |
| Effect | Dominates the rolling exposition average for ~200 timecodes after firing |
For comparison, here are the heaviest non-Hardcore events:
| Event | Value | Weight |
|---|---|---|
POLICE-CHASE | 800 | 2.0 |
DEALER-ARRESTED | 600 | 1.0 |
CLIENT-OD | 600 | 1.0 |
CLIENT-SAMPLE | 500 | 1.0 |
The CODE-HARDCORE event makes recovery from heat spikes punishing on the top difficulty — even after the original cause has decayed, this event keeps the average elevated.
Player Movement & Stamina
The playerCharacterBP_C.adaptDifficulty function adjusts movement speed, stamina drain, and police detection thresholds. The exact numbers vary per parameter, but the direction is consistent: harder difficulty drains stamina faster, slows recovery, and lowers police detection thresholds (police notice you sooner).
What Difficulty Does NOT Change
For completeness, here is what stays the same across all four difficulties:
- Customer OD chance (purely toxicity-based, see top section)
- Customer addiction chance (purely addictiveness-based:
Clamp(((addict − 0.5) / 13) / 3, 0.01, 0.12)— 1–12% per sale) - Police dog spawn chance once eligible (30% per patrol)
- Drug penalties when caught: ≤10g $100 / ≤50g $300 / ≤300g $800 / >300g $2000
- Money confiscation cap on arrest ($300 max)
- Bail formula:
daysRemaining × $300(max $1200) - Custody durations by drug quantity
- Reputation decay rate toward zero
- Drug pricing & demand multipliers (weekend ×2.0, addiction ×1.25)
- Order quantity formula:
Min(playerLevel × 2 + 2, 30) - Sample client mechanics (7am–6pm spawn window, +500 expo per sample sale)
- Gang order validation thresholds (toxicity <1.8×, quality match)
- XP & leveling formulas (Quick Learner skill bonus)
Practical Takeaways
- Easy is the only mode with reputation bonuses (+12%, no cap). Recommended for first playthroughs to learn systems without compounding penalties.
- Normal is the baseline. All numbers stated in unmarked community guides assume Normal.
- Hard doubles down on heat — police presence ~30% denser, DEA arrives 100 heat sooner, blockades start spawning at zero heat.
- Hardcore adds the
CODE-HARDCOREheat storm, halves the dealer promotion base curve, halves the fugitive escape window, and observes every apartment via DEA simultaneously. The numbers are mostly identical to Hard, but the qualitative differences are punishing. - OD prevention is the same on every difficulty: keep mix toxicity below 3.9 to be completely safe, and never sell anything above 12.0 unless you accept a 25% kill rate. The consequences scale with difficulty, not the cause.
All numbers verified from the decompiled bytecode of statisticsManager_C.adaptDifficulty, policeManager_C.adaptDifficulty, difficultyManager_C.applyDifficultyRuntime, baseNPC_C.processReceivedDrugs, playerCharacterBP_C.adaptDifficulty, BlueprintHelpers_C.dealerOfferChance, and the ExpoEventDatabase DataTable. Last verified against build 0.7.0.x.
💬 Discussion