Diceplots → Games → Diablo 4
Diablo 4 damage math — crit chance + Critical Strike Damage as exact rationals
D4 has no to-hit roll — every attack lands. The variance comes from the crit chance / Critical Strike Damage interaction, plus a stack of multiplicative damage buckets. The engine models the crit-vs-CSD path exactly; multi-bucket damage stacking and Lucky Hit / armor / EHP are tracked as upcoming work.
The damage formula
D4 attacks always hit. Full per-attack expected damage with multiple multiplicative buckets:
damage = base × (1 + crit_chance × (csd_mult − 1)) × (1 + mult_a) × (1 + mult_b) × …
Where:
-
csd_multis the total crit multiplier — 1.5 baseline (no CSD stat), 2.5 with +100% Critical Strike Damage, 3.5 with +200%, etc. -
Each
mult_Xis a separate multiplicative bucket — Vulnerable, Overpower, Berserk, conditional damage, weapon / skill multipliers. They compound multiplicatively, NOT additively. See the additive vs multiplicative pillar for the math literacy.
Engine grammar:
<base> @ hit 100 crit <N>% csd <M>% boost <X>% boost <Y>% …
Always-hit (hit 100), N% crit chance,
crit deals M% of base damage, then each
boost X% adds another multiplicative bucket
(× (1 + X/100)). Multiple boost instances compose
multiplicatively. Example: 100 @ hit 100% crit 30% csd 350% boost 25% boost 30% models a build with two separate multiplicative buckets stacking on top of the crit math.
Worked examples
| Build context | Expression | Strike URL |
|---|---|---|
| Baseline (no CSD stat) | 100 @ hit 100 crit 30 csd 150 |
/strike/100~hit100crit30csd150 |
| +100% CSD endgame | 100 @ hit 100 crit 30 csd 250 |
/strike/100~hit100crit30csd250 |
| +200% CSD high-end | 100 @ hit 100 crit 30 csd 350 |
/strike/100~hit100crit30csd350 |
| +400% CSD mythic-uniques | 100 @ hit 100 crit 50 csd 550 |
/strike/100~hit100crit50csd550 |
Each strike URL renders the full distribution and the expected per-attack damage. Drag the HP slider to compare against monster HP totals (e.g., NM Dungeon trash ~1k HP, Torment IV elites ~50k+).
The crit-vs-additive breakeven
The most-asked D4 build question: should I stack +1% crit chance or +1% additive damage on this affix slot? The answer depends on your current CSD. Closed-form derivation and breakeven table:
What damage profile clears each Torment Tier?
Strike-threshold framework for "you need X damage for T4" build-guide claims. Closed form for low-variance builds plus the variance correction for crit-heavy profiles:
What the engine doesn't model yet
D4 builds typically combine many multipliers and gating effects. Engine coverage today is the crit-vs-CSD path. The following are tracked for upcoming ARPG increments:
- Lucky Hit chance: gates secondary-effect procs (chill, poison, freeze). Independent roll on each hit, separate from crit. Engine has no proc-gate primitive.
-
Armor mitigation curve:
DR = armor / (armor + 5 × monster_level + 850). Current engine has flatdr<n>only. - Effective HP (EHP): full defensive pipeline (resistance × armor × block × dodge). Pairs with armor mitigation as a defensive-math pillar.
- Damage Over Time (bleed / poison / burn): separate damage stack with its own tick rate. Out of scope for the per-hit attack model.
- Tooltip DPS vs effective DPS: tooltip shows per-hit damage; real DPS = damage × attack_speed × uptime. Worth its own pillar.
Inbound questions in these categories are routed to manual triage pending engine support. Submit feedback through the comparison tool or strike pages and the math gaps get tracked.