How the game prices a fight: budgets, not bounties

From logic/root-progression.json (crToXp, xpToCr) and logic/core-mechanics.json#experienceCR (Experience.cs, ExperienceHelper.cs) — build 20212986, patch 2.7.0x.

Leveling showed who pays XP. This is the other half: how an encounter's payout is computed — and why grinding mobs barely moves the needle.

The pipeline

Every unit carries an XP contribution from its challenge rating (crToXp: CR 1 = 25, CR 5 = 53, CR 10 = 140, CR 20 = 3,456). When a fight resolves, ExperienceHelper sums the contributions of every participant, then maps the total back through the inverse table (xpToCr, 46 thresholds starting at 200) to get one effective encounter CR. The payout is that CR's base value times the encounter type multiplier (main quest ×10, mob ×0.75).

The mapping is brutally sublinear

Worked straight from the shipped tables:

| Fight | Budget | Effective CR | |---|---:|---:| | 1× CR-1 mook | 25 | 0 | | 8× CR-1 mooks | 200 | 1 | | 16× CR-1 mooks | 400 | 2 | | 4× CR-10 demons | 560 | 2 |

Sixteen mooks price as one CR-2 encounter. Four CR-10 demons — a deadly fight by any tabletop standard — land at CR 2, paying a base of 30 before multipliers. The inverse table's first thresholds (200, 400, 600, 800, 1200…) climb faster than unit contributions accumulate, so quantity of enemies almost never raises the payout. Grinding is structurally worthless; the game wants you to do quests.

Bosses aren't exempt

A lone CR-20 demon lord contributes 3,456 points — which lands around the eighth threshold. Even the biggest single enemies map to modest effective CRs; their real reward comes through the Boss ×3 and QuestMain ×10 type multipliers attached to the moment, not through their raw stat block.

(One documented exception: the roguelike dungeon mode swaps in its own CrToExperience table — BlueprintDungeonRoot — so that mode prices differently by design.)

Why this matters

Combined with the leveling thresholds (level 10 at 105,000 XP), the design intent is legible: combat XP is flavor, quest XP is the economy. Build guides that recommend "farming good XP fights" are describing another game.

Sources

  • logic/root-progression.json#tables.xpToCr — the 46-threshold inverse mapping.
  • logic/root-progression.json#tables.crToXp — per-CR unit contributions.
  • logic/core-mechanics.json#experienceCR.encounterCR — the additive- budget formula, source-attributed.
  • Build: 20212986 (patch 2.7.0x).

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