Core is zero: what difficulty actually does to enemy stats

Read from logic/difficulty-presets.json (statsAdjustmentPresets, verbatim shipped coefficients) and logic/damage-model.json#difficulty (DifficultyStatAdvancement) — build 20212986, patch 2.7.0x.

The difficulty grid covered rule switches. This is the other half: the seven shipped stat-adjustment tiers that scale every enemy blueprint. The punchline is what's missing from the middle of the ladder.

The seven tiers, verbatim

| Tier | Used by | HP mult | AC | Ability DC | Stat curve | |---|---|---:|---:|---:|---| | 0 | Story, hidden presets | ×0.40 | −4 | −4 (cap 14) | ×(−1), 0.5→2.0 @ CR13 | | 1 | Casual | ×0.60 | +0 | −4 (cap 18) | ×(−1), 0.5→2.0 @ CR13 | | 2 | Normal | ×0.80 | −1 | −2 (cap 22) | ×(+1), flat | | 3 | Daring | ×1.00 | +0 | −2 | ×(+1), flat | | 4 | Core | ×1.00 | +0 | +0 | none | | 5 | Hard | ×1.00 | +0 | +2 | ×(+1), 0.5→2.0 @ CR13 | | 6 | Unfair | ×1.00 | +0 | +4 | ×(+2), 0.5→2.0 @ CR13 |

(The preset-to-tier join is in the shipped data itself: each DifficultyPreset.StatsAdjustments indexes this list — Casual 1 … Unfair 6, Story/Custom 0.)

Core is the baseline

Tier 4 — Core — contains no adjustments at all. Every enemy's printed stats are what you fight on Core; the other tiers are offsets away from it. Casual through Daring are progressive nerfs (HP down to ×0.6, ability DCs capped as low as 18); Hard and Unfair are the only tiers that buff anything.

How the buffs scale

Hard and Unfair multiply each enemy's DifficultyStatAdvancement bonuses by +1/+2 steps, then interpolate along challenge rating:

value × (start + (end−start) × min(1, CR / 13))

Low-CR mobs get roughly half the bonus; CR 13+ enemies get the full multiplier. On Unfair that means trash fights stay manageable while boss-tier stat blocks pull away — plus the flat +4 ability DC on every enemy caster, which is why save-or-die feels different there. (The DC anatomy covers where that term enters the spell formula.)

Reading it together with the rule grid

Combine with the damage side and the design intent is crisp:

  • Casual/Normal/Daring nerf HP and saves but leave AI alone.
  • Hard keeps enemy HP at baseline, adds the stat curve, extra AI behaviors, and +2 DCs.
  • Unfair doubles incoming damage (damage-to-party ×2), maxes the stat curve, and adds +4 DCs — three separate multipliers, not one big one.

Full preset dumps live in our Classes-adjacent difficulty data (logic/difficulty-presets.json).

Sources

  • logic/difficulty-presets.json#statsAdjustmentPresets — all seven tiers, coefficient-exact.
  • logic/damage-model.json#difficulty.statScaling — the interpolation formula and its source component.
  • Build: 20212986 (patch 2.7.0x).

Related database section: Classes — e.g. Dragon.