How leveling actually works: XP is quest-shaped
From logic/root-progression.json (the extracted BlueprintRoot
progression tables) and logic/core-mechanics.json#experienceCR
(Kingmaker.Blueprints.Classes.Experience/{Experience, ExperienceHelper}.cs) — build 20212986, patch 2.7.0x.
Kill every mob in act 1 and you'll still lag behind the player who mainlined quests. That's not feel — it's arithmetic. The XP formula is
XP = CRTable[CR] × encounterTypeModifier × modifier × count
and the type multipliers are wildly unequal.
The seven encounter types
| Type | Multiplier | |---|---:| | Skill check | ×0.375 | | Mob | ×0.75 | | Challenge (minor) | ×1.5 | | Boss | ×3 | | Challenge (major) | ×4 | | Normal quest | ×5 | | Main quest | ×10 |
A main quest pays thirteen times what a mob of the same challenge rating does. Combat is the slow lane; the story is the highway.
The raw numbers
Base CR values (CRTable): CR 1 = 25 XP, CR 5 = 53, CR 10 = 140,
CR 20 = 3,456, CR 30 = 92,160. Cumulative level thresholds:
| Level | Total XP | |---|---:| | 5 | 15,000 | | 10 | 105,000 | | 15 | 635,000 | | 20 | 3,600,000 |
Dialog rewards have their own quality tiers in the shipped
DialogXPTable: low ×0.4, normal ×1.0, high ×2.5. The same
conversation can pay six times more depending on how well you played
it.
The second XP table nobody mentions
BlueprintRoot ships two experience tables: m_XPTable and
m_LegendXPTable. The Legend one is dramatically cheaper — reaching
level 20 costs 3,600,000 XP on the standard curve but just 200,000
on the Legend curve, which then runs out to level 40 at 4,700,000.
The Legend path's "twenty extra mortal levels" ride this compressed
track; that's how the game makes a level-40 character reachable inside
one campaign.
BAB and saves are spreadsheets, not code
Class attack and save progressions are BlueprintStatProgression
assets — plain integer arrays indexed by level, referenced per class.
There is no progression formula to reverse; every class's full
BAB/Fort/Ref/Will track is printed on its page in our
Classes section, straight from the data.
Sources
logic/root-progression.json— xpTable, legendXpTable, crToXp, xpToCr, dcToCr, dialogXpModifiers (guid + path pinned).logic/core-mechanics.json#experienceCR— formula and encounter-type multipliers, source-attributed to Experience.cs.- Build: 20212986 (patch 2.7.0x).