Character Creation Arithmetic
Character creation in this project happens two ways, and both run on the same arithmetic. Get it wrong in either and the sheet will tell you.
The pool
Only one XP number is stored on a character.
xp.granted— what they were handed: 100 per Tier of play at creation, plus 100 for each Milestone Ascension. At Tier 1 that is 100.
Everything else comes from xpAwards, an append-only log. Each row is an
amount, the Tier the character was at when it was awarded, and what earned it.
A new character has an empty log, whatever their Tier — the corebook is explicit
that "You start the game at Rank 1 if you Ascend at character creation"
(p.149), so a Tier 3 character built with 300 XP is still an Initiate.
XP Pool adds xp.granted to the sum of the log; that is what may be spent.
Nothing records what was spent. The sheet derives it.
What things cost
Both tables are cumulative totals, not per-step increments. Reaching Attribute rating 4 costs 20 XP in total, not 20 on top of what rating 3 cost.
| Rating | Attribute | Skill |
|---|---|---|
| 0 | — | 0 |
| 1 | 0 | 2 |
| 2 | 4 | 6 |
| 3 | 10 | 12 |
| 4 | 20 | 20 |
| 5 | 35 | 30 |
| 6 | 55 | 42 |
| 7 | 80 | 56 |
| 8 | 110 | 72 |
Attributes start at 1 and can never be 0. Skills start at 0. A Talent costs the
xpCost on its file, normally 20.
Archetype and Species are charged separately. The corebook prints one
combined figure because it ties each Archetype to a single Species (p.89). This
system does not: the Imperium Archetypes are open to Humans and Felinids alike,
so an Archetype's xpCost covers its grants only, and the chosen Species'
own xpCost is added on top. Human costs 0, so Human characters are unaffected
and every printed Tier 1 figure still holds; a Felinid pays 10 more than a Human
for the same Archetype. Which Species may take an Archetype is the
availableToSpecies list on the Archetype file.
Archetype grants are free
This is the rule that is easiest to get wrong. An Archetype's attributes and
skills objects are a floor the character receives without paying for it.
Charge only the difference above that floor.
Sister Hospitaller grants Willpower 3 and Intellect 3. A Sister with Willpower 3 pays 0 for it, not 10. That is why her suggested array costs 26 XP while naively summing the same seven ratings gives 46. The corebook's printed Suggested Attributes costs are all calculated this way, and they are the check: if your arithmetic does not reproduce them, your arithmetic is wrong.
Never set an Attribute or Skill below what the Archetype grants.
The invariant
Archetype + Attributes + Skills + Talents + Wealth must not exceed XP Pool.
There is no stored spend field to get wrong. XP Spent is computed from what is actually on the sheet, so the recorded spend and the character cannot disagree.
The sheet checks you
The character type computes the whole breakdown and shows it on the Advancement tab: XP — Archetype, XP — Attributes, XP — Skills, XP — Talents, XP — Wealth, and XP Spent. Beside them sits XP Remaining — pool minus spend. Below 0 the build is illegal and the sheet raises an error.
These are computed from the linked Archetype and Talent files, so they stay correct when those files change.
Rank and Ascension
Both are derived. Neither is stored, and neither can be corrupted by an edit.
| Lifetime XP Earned | Rank | Standing |
|---|---|---|
| 0–39 | 1 | Initiate |
| 40–79 | 2 | Veteran |
| 80+ | 3 | Champion |
Rank sums the whole log, which only ever grows, so Rank can never drop — it carries across Ascension exactly as p.146 requires, with no "highest Rank reached" field needed to hold the ratchet.
Ascension is measured differently: p.149 asks for 100 XP earned in the current Tier, which is the sum of log rows stamped with the current Tier. Granted XP never counts, so the 100 XP from a Milestone Ascension does not immediately unlock the next one.
To Ascend, raise advancement.tier by 1. That is the entire operation. New
awards get stamped with the new Tier, so XP Earned this Tier restarts at 0
on its own while lifetime earned — and therefore Rank — is untouched. This is
the reason the log exists: an earlier design stored a per-Tier counter that had
to be hand-migrated at Ascension, and a GM that zeroed it without carrying the
total forward silently destroyed the character's Rank.
Awarding XP
Add a row. Never edit or remove one, and never raise xp.granted to represent
earned XP — that inflates the pool while freezing Rank, and the sheet looks
correct while being wrong. The rule is also stated as a triggered GM
instruction, Awarding XP And Ascension, so the in-play GM gets it at the
moment it edits a sheet.
Generated characters
The character type's creation wizard collects answers and hands them to an AI
that writes the file — the flow engine itself does no arithmetic. Everything on
this page is therefore also stated in the wizard's
settings.generationInstructions, which is the only channel that reaches the
generator at creation time. If you change a cost rule here, change it there too,
or generated characters will drift from hand-built ones.