Build a character the way the game resolves one. A specialization opens at level 5; every row opens at its own level; one option is picked per row. Every number the page shows is what the client's own resolver computes for that build.
These tables are the game's authored source, not the public client catalog — the catalog ships no talent collection at all, so unlike every other page here, no public refresh can describe a build. Read from revision 5007db978 by scripts/export-talents.mjs.
A specialization unlocks at level 5 and contributes three things: its signature ability, its mastery effect scaled by the player's level (70 of 70 shown above), and the spec's own baseline effect. Each picked row then folds in that option's effect in row order — statistics and global modifiers add up, abilities gain their own changes, and granted abilities and procs collect. Unpicked rows contribute nothing. Points arrive one per unlocked row, at level 5, 8, 11, 14, 17, 20, 30, 45, 60, 70, so a level 70 character can spend 10.
A build the level cannot reach is repaired rather than refused: the game drops a pick above the player's level when a build is imported, and so does this page. Lowering the level hides a pick instead of forgetting it, and the share string keeps the build you actually picked.
Where the numbers come from
The tables are the game's own authored files — src/sim/content/talents.ts, src/sim/content/talent_rows.ts, src/sim/content/spec_baselines.ts, src/sim/types.ts, src/ui/talent_icons.ts — read from the game checkout at revision 5007db978. Nothing here is estimated, sampled or advised: a modifier is a value the client's resolver returns.
The export also records what the client's own computeTalentModifiers(), repairAllocation() and build-string code returned for 81 fixed builds — an empty build, every row's first, second and third option, the class default, an early and a mid level build, a build below the specialization level, and junk input. The page's engine reproduces all 81 exactly, so the calculator cannot drift from the game; that is what scripts/talents.test.mjs checks.
The game's guide page ships no per-option numbers on purpose. This page is not advice: it is the resolver, with the strings attached.
Artwork and the build string
265 of 270 row options draw the client's own painting, mirrored into this site, and each of the 27 specializations carries its painted emblem. The remaining five rows are composed by the client from a crest recipe, which cannot travel as a file, so this site draws a glyph for them behind a dashed frame — the same convention it uses for quest sigils, so site-drawn art is never mistaken for client art.
The share string is the game's own: base64 of v, c, s, r, exported and imported by the client itself. A build copied here loads in the client, and a build copied there loads here. The address bar carries the same string, so a link reopens the exact build. Every ability an effect can name has a page in this database: browse abilities.