Complete datamine — every toxicity value and the exact overdose math, extracted from baseNPC_C.processReceivedDrugs Kismet bytecode (134 instructions) and the DrugDatabase DataTable.
This page was rewritten in May 2026 to correct OTC toxicity values that were off by 40×, to remove fabricated tolerance / per-drug cooldown / per-drug OD threshold claims, and to publish the real overdose formula.
💀 How Overdoses Work
DDS1 has a much simpler overdose system than most community guides suggest. There is no tolerance system, no per-drug threshold table, and no per-drug cooldown table — just a single global toxicity check on each completed sale.
The actual flow
- A sale completes in
processReceivedDrugs(). The game looks at the final mix toxicity (sum of all substance toxicities weighted by their proportions in the mix).
- Below toxicity 3.9: zero OD chance. No roll happens at all. This is
minODToxicity = 3.9.
- Between 3.9 and 12.0: scaled chance using the formula in the next section. Maximum 8% per sale.
- At or above 12.0: flat 25% OD chance per sale. This is
highToxLevel = 12.0, highToxOdPercent = 0.25.
💡 Key insight: The OD roll happens per sale, not per dose-in-system. Mix toxicity is what matters — not which specific drug it came from. A 50/50 mix of Heroin (6.0) and Sugar (1.3) has a final toxicity of 0.5×6.0 + 0.5×1.3 = 3.65, which is below 3.9 and triggers no OD check at all.
From decompiled baseNPC_C.processReceivedDrugs:
// Constants (global, hardcoded)
minODToxicity = 3.9
highToxLevel = 12.0
highToxOdPercent = 0.25
// Per-sale check on final mix toxicity
if drugReceived.toxicity > 3.9:
if drugReceived.toxicity > 12.0:
// HIGH: flat 25% per sale
clientsOD[id] = RandomBoolWithWeight(0.25)
else:
// LOW-MED: scaled 0.1% to 8%
chance = Clamp(((tox − 3.9) / 3.9) / 20.0, 0.001, 0.08)
clientsOD[id] = RandomBoolWithWeight(chance)
Worked examples
| Final mix toxicity |
OD chance |
Math |
| 3.9 or lower | 0% | Below threshold, no roll |
| 4.0 | 0.13% | ((4.0−3.9)/3.9)/20 = 0.00128 → clamped to 0.001 (0.1% floor) |
| 5.0 | 1.4% | ((5.0−3.9)/3.9)/20 = 0.0141 |
| 6.0 | 2.7% | ((6.0−3.9)/3.9)/20 = 0.0269 |
| 8.0 | 5.3% | ((8.0−3.9)/3.9)/20 = 0.0526 |
| 10.0 | 7.8% | ((10.0−3.9)/3.9)/20 = 0.0782 |
| 11.9 (just under 12) | 8.0% | Clamped to 0.08 cap |
| 12.0 or higher | 25.0% | Hardcoded flat rate |
⚠️ The 12.0 cliff: The jump from "11.9 toxicity = 8% OD" to "12.0 toxicity = 25% OD" is an instant 3× multiplier. Cutting agents like Paracetamol (12.0), Ibuprofen (12.0), and Nebilanex (15.0) push you over this cliff on their own — without any base drug at all.
☠️ Toxicity Rankings (DrugDatabase DataTable)
Every substance has a single toxicity float in the DrugDatabase. The OTC medication values below were off by 40× on the old version of this page — the corrected numbers below are direct from the DataTable.
| Rank |
Substance |
Toxicity |
Strength |
Addictiveness |
Mix Strength |
Danger |
| 1 |
Acetone (cutting agent) |
25.0 |
4.0 |
1.0 |
3.0 |
LETHAL |
| 2 |
Fentanyl (cutting agent) |
18.0 |
6.0 |
9.0 |
3.0 |
LETHAL |
| 3 |
Nebilanex (OTC med) |
15.0 |
2.0 |
1.4 |
2.0 |
LETHAL |
| 4 |
Paracetamol (OTC med) |
12.0 |
3.0 |
4.0 |
1.3 |
LETHAL |
| 5 |
Ibuprofen (OTC med) |
12.0 |
3.0 |
3.0 |
1.3 |
LETHAL |
| 6 |
Washing Powder (cutting agent) |
9.0 |
0.0 |
0.0 |
1.1 |
HIGH |
| 7 |
Heroin |
6.0 |
4.0 |
4.5 |
3.0 |
HIGH |
| 8 |
Crystal Meth |
5.5 |
3.0 |
3.0 |
2.4 |
HIGH |
| 9 |
Cocaine |
5.0 |
4.0 |
3.0 |
2.0 |
HIGH |
| 10 |
Amphetamine |
4.0 |
2.5 |
1.7 |
1.6 |
MODERATE |
| 11 |
MDMA / Ecstasy |
3.5 |
2.0 |
1.3 |
1.3 |
MODERATE |
| 12 |
Viagra (OTC med) |
3.0 |
2.0 |
7.0 |
1.6 |
MODERATE |
| 13 |
Salt (cutting agent) |
2.0 |
0.5 |
0.0 |
1.0 |
MODERATE |
| 14 |
DMT |
1.6 |
2.5 |
3.0 |
1.2 |
LOW |
| 15 |
Sugar (cutting agent) |
1.3 |
0.0 |
0.0 |
1.0 |
LOW |
| 16 |
LSD |
1.2 |
2.0 |
1.0 |
1.0 |
LOW |
| 17 |
Mushrooms |
0.6 |
1.5 |
1.0 |
1.0 |
LOW |
| 18 |
Marijuana / THC |
0.5 |
2.0 |
0.8 |
1.0 |
LOW |
| 19 |
Baking Soda (cutting agent) |
0.0 |
0.0 |
0.0 |
0.9 |
SAFE |
⚠️ OTC corrections:
The previous version of this page listed Paracetamol at 0.3, Ibuprofen at 0.5, Viagra at 0.35, and Nebilanex at 0.55 toxicity — those values were off by roughly 40×. The real values are 12.0, 12.0, 3.0, and 15.0 respectively. Paracetamol and Ibuprofen are actually more toxic than Washing Powder (9.0), and Nebilanex is the third most toxic substance in the entire game.
📸 Cutting Agent Danger Scale (safest to deadliest)
There are only two safe cutting agents: Baking Soda and Sugar. Everything else either pushes mix toxicity above the 3.9 minODToxicity threshold or sits directly above the 12.0 cliff on its own.
SAFEST
Baking Soda
Toxicity: 0.0 • MixStrength: 0.9
Zero toxicity. Cannot contribute to overdoses at any ratio. Slight potency dilution (0.9×). The default safe choice for every drug.
LOW RISK
Sugar
Toxicity: 1.3 • MixStrength: 1.0
Crystal-form filler — the only safe agent compatible with Crystal Meth. MixStrength of 1.0 means it preserves potency cleanly.
MODERATE
Salt
Toxicity: 2.0 • MixStrength: 1.0
Mild toxicity. Safe in low ratios but can push high-tox base drugs over 3.9 if used aggressively.
MODERATE
Viagra
Toxicity: 3.0 • MixStrength: 1.6
The interesting outlier. Massive addictiveness boost (7.0) and high MixStrength (1.6) for repeat-customer farming, with manageable toxicity if kept under ~30% of the mix.
DANGEROUS
Washing Powder
Toxicity: 9.0 • MixStrength: 1.1
Sits in the scaled-OD-chance band on its own and will push almost any mix above 3.9. Cheap but high-risk.
LETHAL
Paracetamol
Toxicity: 12.0 • MixStrength: 1.3
Sits exactly on the 12.0 cliff. Even 100% Paracetamol triggers the flat 25% OD rate. Do not use as a cutting agent.
LETHAL
Ibuprofen
Toxicity: 12.0 • MixStrength: 1.3
Same profile as Paracetamol — right on the 12.0 cliff. Identical behaviour from the OD math's perspective.
LETHAL
Nebilanex
Toxicity: 15.0 • MixStrength: 2.0
Higher than Paracetamol and with a huge MixStrength of 2.0. Even small amounts in any mix push final toxicity above 12.0.
LETHAL
Fentanyl
Toxicity: 18.0 • MixStrength: 3.0
Toxicity alone is well above the 12.0 cliff, and the 3.0 MixStrength tripples potency. Reserved for griefing your clients.
LETHAL
Acetone
Toxicity: 25.0 • MixStrength: 3.0
Highest toxicity in the game. Same 3.0 MixStrength as Fentanyl. Even 5% Acetone in a mix lands you above 12.0.
⏲️ Dose Cooldown (Single Constant)
There is one global cooldown constant: useDoseTimeout = 60.0 seconds. The same value applies to every drug. The "per-drug cooldown table" (90s / 100s / 120s / 200s / 240s) in earlier versions of this page was fabricated.
useDoseTimeout = 60.0 // seconds, all drugs
💡 Note: The actual OD check happens at the moment of sale completion (processReceivedDrugs), not during NPC dosing. The 60-second timeout governs how often an NPC can request another dose, not how toxicity accumulates over time.
❌ Myths Debunked
Myth: "Clients build tolerance over time"
Untrue. There is no tolerance field, no tolerance-tracking component, and no code path that modifies OD chance based on past purchases. The three constants minODToxicity, highToxLevel, and highToxOdPercent are global — not per-NPC. A regular client and a brand-new client get the exact same OD roll on the same mix.
Myth: "Per-drug OD thresholds (Heroin 0.35, Cocaine 0.50, etc.)"
There is no per-drug threshold table in the game data. The only OD check uses the final mix toxicity against a single global value of 3.9 (and the 12.0 cliff). The "Heroin OD threshold 0.35" number that circulates online was a community-derived value, not a datamined one.
Myth: "Different cooldowns per drug (Meth 100s, Heroin 120s, Fentanyl 240s)"
All drugs share useDoseTimeout = 60.0 seconds. The varying numbers in older guides came from confusing dose timeout with sale cooldown, with order generation cooldown, or with absorption rate from the substance blueprints — none of which represent a per-drug cooldown.
Myth: "lowToxOdPercent controls the low-tox OD rate"
The lowToxOdPercent = 0.1 field exists but is never read by any function. It's leftover dead code from an earlier design iteration. The real low-tox formula is the clamped ((tox−3.9)/3.9)/20 expression shown above.
🛡️ Prevention Guide
With the real formula on the table, the safe strategy becomes crisp.
✅ Keep final mix toxicity under 3.9
If you can cut a drug heavily enough with Baking Soda to bring the weighted toxicity under 3.9, the OD check is skipped entirely. Heroin (6.0) at 35% concentration with 65% Baking Soda has final toxicity 0.35×6.0 + 0.65×0.0 = 2.1 — zero OD risk.
✅ Stay well below the 12.0 cliff
Final toxicity 11.9 = 8% OD chance. Final toxicity 12.0 = 25%. A 3× jump for 0.1 of toxicity is the single most punishing threshold in the game. Keep the buffer wide.
✅ Use Baking Soda or Sugar
Baking Soda (0.0 tox) is universally safe. Sugar (1.3 tox) is the safe option for Crystal Meth specifically. Every other cutting agent pushes you toward the 3.9 threshold or above it.
❌ Never use OTC meds as cutting agents
Paracetamol, Ibuprofen, and Nebilanex are all at or above the 12.0 cliff on their own. They are recipe ingredients for custom drugs, not viable bulk cutting agents.
❌ Don't mix high-toxicity bases
Heroin (6.0) + Cocaine (5.0) = final toxicity 5.5, sitting deep inside the scaled OD band. Pair high-tox drugs only with Baking Soda, never with each other.
✅ The "Golden Cut"
For any base drug with toxicity at or above 3.9 (Heroin, Meth, Cocaine, Amphetamine), use roughly 50% Baking Soda. Final mix toxicity halves, dropping below 3.9 for everything except pure Heroin, which still needs a heavier cut.
💡 The Bottom Line: The whole "overdose system" reduces to one math expression on one number (the final mix toxicity). There are no hidden multipliers, no tolerance, no per-drug exceptions. Keep that final tox under 3.9 and your clients literally cannot OD.
🔗 Related Pages: See
All Drugs & Substances for buy/sell prices, and the Mix Calculator for per-mix OD chance previews.
💬 Discussion