What each difficulty setting actually changes
Every value below is read from the game's own DifficultyPresetsList asset
(extracted/logic/difficulty-presets.json, schema difficulty-presets-v1),
build 20212986, patch 2.7.0x. The verdict on where difficulty lives:
the formula is code, every parameter is data — which is why this table
can be exact.
Nine presets ship in the client: Story, Casual, Normal, Daring, Core, Hard,
Unfair — plus two you never see in the new-game dialog: AdaptedEasyRules
and Custom (the custom-difficulty target state).
The two numbers that matter most
DamageToParty — a straight multiplier on enemy damage dealt to your
party:
| Preset | Multiplier | |---|---| | AdaptedEasyRules / Custom | 0.0 | | Story | 0.2 | | Casual | 0.4 | | Normal | 0.8 | | Daring / Core / Hard | 1.0 | | Unfair | 2.0 |
Note the asymmetry: going from Normal down to Casual removes only a fifth of the incoming damage, while Unfair doubles it. Hard does not increase enemy damage at all over Core — its difficulty comes entirely from enemy stat tiers (below).
StatsAdjustments — an integer stat tier for enemies: Story and the two
hidden presets sit at tier 0; Casual 1 → Normal 2 → Daring 3 → Core 4 →
Hard 5 → Unfair 6. The per-tier coefficients live in
statsAdjustmentPresets — tier 0 cuts enemy HP to ×0.4 and ability DCs
by 4; Core (tier 4) is the zero-adjustment baseline. Full breakdown in
Core is zero.
The full rule grid
Verbatim shipped values (enum numbers, not prose — EnemyCriticalHits,
AutoLevelUp, and WeatherEffects are tiers; the others are flags):
| Preset | Crit tier | Extra AI | Death's Door | Dead rise | Clean-rest debuffs | Auto-level | Respec | |---|---|---|---|---|---|---|---| | Story | 0 | 0 | 0 | 1 | 1 | 2 | 1 | | Casual | 0 | 0 | 1 | 0 | 1 | 2 | 1 | | Normal | 1 | 0 | 1 | 0 | 0 | 1 | 1 | | Daring | 1 | 0 | 1 | 0 | 0 | 1 | 0 | | Core | 2 | 0 | 0 | 0 | 0 | 0 | 0 | | Hard | 2 | 1 | 0 | 0 | 0 | 0 | 0 | | Unfair | 2 | 1 | 0 | 0 | 0 | 0 | 0 |
(Not in the grid: RemoveAnnoyingBuffsAfterCombat is 1 on every shipped
preset without exception.)
Four callouts, each directly readable from a column:
- Respec disappears at Daring: Story, Casual, and Normal allow it; Daring, Core, Hard, and Unfair do not.
- Clean-rest debuff removal turns off at Normal — only Story and Casual scrub negative effects on rest; Normal is the first preset where resting leaves them on.
- Death's Door belongs to Casual through Daring: gone by Core, and absent on Story (which instead revives dead companions after combat).
- Unfair's real teeth are
AdditionalAIBehaviors: 1— extra enemy AI actions — stacked on ×2 damage and the highest stat tier. Hard shares the AI upgrade with half the damage multiplier.
What is NOT here
Encounter design, enemy composition, and loot are identical across presets — none of those fields appear in the dataset. Difficulty in WotR is purely a math-and-rules overlay on the same fights.
Sources
extracted/logic/difficulty-presets.json(verbatim preset dump).- Formula location verdict:
logic/damage-model.json#difficulty,logic/core-mechanics.json. - Build: 20212986 (patch 2.7.0x). Regenerated by rerunning the extraction entrypoint after any game patch.