The 9-row table that defines what makes each class mechanically different at character creation and through level-up. Every "how much life does my Barb get per vit?" or "what does the Sorceress start with?" question terminates here.
8 playable classes (Amazon, Sorceress, Necromancer, Paladin, Barbarian, Druid, Assassin, Warlock) plus a sentinel Expansion row that visually separates Classic from Expansion classes in the .txt source. The sentinel has all data columns blank.
83 columns total — the schema spans starting attributes, per-level growth rates, per-attribute scaling, baseline movement and recovery, class-specific potion scaling, default skills, the 10-slot starting-inventory loadout, and the string-table keys that drive tooltip text on class-restricted items.
The "in fourths" convention — read this first
Six columns store quarter-values, not literal numbers. Divide by 4 to get the displayed value:
LifePerLevel,StaminaPerLevel,ManaPerLevelLifePerVitality,StaminaPerVitality,ManaPerMagic
The *Comment column carries the literal text The following are in fourths to mark this for editors. Per locbones: "Calculated in fourths and is divided by 256" — the /4 is the file convention, the /256 is engine internal precision (stats track to 1/256 ticks of life/mana/stamina, so a 12 in LifePerVitality is engine-stored as 768 sixteenth-of-a-life ticks per vit point, displayed as +3 life per vit).
If you see surprising-looking numbers like 12 or 16 in those six columns, they're quartered. The Barbarian's LifePerVitality=16 reads as +4 life per vit, which is the canonical buildcraft answer.
Per-class scaling at a glance
| Class | Life per Vit (÷4) | Mana per Energy (÷4) | Stamina per Vit (÷4) | Block Factor |
|---|---|---|---|---|
| Amazon | 12 → 3 | 6 → 1.5 | 4 → 1 | 25 |
| Sorceress | 8 → 2 | 8 → 2 | 4 → 1 | 20 |
| Necromancer | 8 → 2 | 8 → 2 | 4 → 1 | 20 |
| Paladin | 12 → 3 | 6 → 1.5 | 4 → 1 | 30 |
| Barbarian | 16 → 4 | 4 → 1 | 4 → 1 | 25 |
| Druid | 8 → 2 | 8 → 2 | 4 → 1 | 20 |
| Assassin | 12 → 3 | 7 → 1.75 | 5 → 1.25 | 25 |
| Warlock | 12 → 3 | 8 → 2 | 4 → 1 | 25 |
The Barbarian's +4 life per vit is the highest in the game; he also has the lowest mana per energy (+1, half a Sorceress's). The Assassin is the only class with non-1 stamina per vit (+1.25), reflecting her kick-build identity. Block factor differs by 5–10% across classes — Paladin has the highest baseline at +30, casters at +20.
Starting attributes
Every class spends differently on its 60-point starting attribute budget plus per-class life/mana/stamina baselines:
| Column | What it is |
|---|---|
str, dex, int, vit | Starting Strength / Dexterity / Energy / Vitality. The total str+dex+int+vit is uniform 60 across all classes; each class shifts the budget. Sorceress is 10/25/35/10 (energy-heavy); Barbarian is 30/20/10/25 (str-heavy); Warlock is 15/20/20/25 (vit-heavy). |
stamina | Starting stamina pool. Highest on Assassin (95), lowest on Sorceress (74). |
hpadd | Bonus starting Life — added to the vit-derived life baseline. Uniform 30 across all classes. |
ToHitFactor | Starting AR bonus. Negative for casters (Sorc −15, Necro −10), positive for melee (Pal/Barb +20). The Warlock and Druid sit at +5; Amazon is +5; Assassin +15. |
Note on
int: the column is namedintbut represents the player-facing Energy attribute. Classic D2 design called it Intelligence; the in-game UI relabeled.
Per-level growth (in fourths)
| Column | What it is |
|---|---|
LifePerLevel | Life gained per level-up. Amazon/Pal/Barb/Sin/Warlock: 8 → +2/level. Sorc: 4 → +1/level. Necro/Druid: 6 → +1.5/level. |
ManaPerLevel | Mana gained per level-up. Sorc: 8 → +2/level. Necro/Druid/Warlock: 8 → +2/level. Amazon/Pal: 6 → +1.5/level. Sin: 6 → +1.5/level. Barb: 4 → +1/level. |
StaminaPerLevel | Stamina gained per level-up. Sin: 5 → +1.25/level. Everyone else: 4 → +1/level. |
Per-attribute scaling (in fourths)
The column most users actually want is LifePerVitality — see the canonical table at the top of this page. The full set:
| Column | What it is |
|---|---|
LifePerVitality | Life per Vitality point. Buildcraft canonical. |
ManaPerMagic | Mana per Energy point. (Magic is the legacy name for Energy.) Critical for ES Sorc builds. |
StaminaPerVitality | Stamina per Vitality point. |
Stat / skill awards
| Column | What it is |
|---|---|
StatPerLevel | Attribute points per level-up. Uniform 5 across all classes. |
SkillsPerLevel | Skill points per level-up. Uniform 1. |
Movement and recovery
Uniform across all classes except RunDrain and a small Assassin variation:
| Column | Value | Meaning |
|---|---|---|
WalkVelocity | 6 | Base walk speed. |
RunVelocity | 9 | Base run speed. |
RunDrain | 20 (Sin: 15) | Stamina drained per tick while running. Assassin's lower drain is the structural argument for her kick-and-run identity. |
ManaRegen | 120 | Seconds to regen full mana from empty. |
LightRadius | 13 | Baseline light radius. |
MinimumCastingDelay | 12 | Global cast-delay floor in frames after a casting-delay skill fires. |
Class-specific potion scaling
| Column | Meaning |
|---|---|
HealthPotionPercent | % of base healing-potion life restored. Barbarian 200% (potions heal twice as much), Sorc/Necro/Druid/Warlock 100%, others 150%. |
ManaPotionPercent | % of base mana-potion mana restored. Sorc/Necro/Druid/Warlock 200%, Barb 100%, others 150%. |
The asymmetric scaling means a single Super Healing potion goes much further on a Barb than a Sorc, and a Super Mana Potion gives the Sorc twice the mana it gives the Barb. Practical consequence: hot-bar potion budgeting is class-specific.
Default skills and starting inventory
| Column | Meaning |
|---|---|
StartSkill | Skill auto-cast at character creation (Sorceress: fire bolt; Necromancer: raise skeleton; Warlock: Miasma Bolt; others blank — they start with no offensive skill bound). |
Skill 1 … Skill 10 | Skills the class knows by default and always has access to (Throw, Kick, Scroll/Book of Identify/Town Portal, Unsummon, plus class-specific extras like Barbarian's Left Hand Throw / Left Hand Swing). |
baseWClass | Default unarmed weapon class (uniform hth — drives unarmed attack animations). Not the starting weapon — that's item1. |
The 10 starting-inventory slots (item1–item10) are 4-tuples each:
itemN— item code (e.g.jav=Javelin,buc=Buckler,hp1=Minor Healing Potion,tsc=Town Portal Scroll,isc=Identify Scroll).itemNloc— equip slot.rarm= right arm/main-hand,larm= left arm/off-hand, blank = goes in inventory.itemNcount— quantity (relevant for stackables: 4 Healing Potions).itemNquality— quality flag (always 2 = normal).
Most classes fill 5–6 slots; trailing slots carry the placeholder 0/(blank)/0/2 no-op pattern.
String-table keys for tooltip text
These columns hold the keys the engine looks up in the string tables to render class-specific tooltip lines. They never display directly.
| Column | What it keys |
|---|---|
StrAllSkills | The +N to All Skills line on items (ModStr3a for Amazon). |
StrSkillTab1, StrSkillTab2, StrSkillTab3 | The three +N to <Tree> Skills skill-tab keys (different per class). |
StrClassOnly | The (X Only) red-text line on class-restricted items (AmaOnly, SorOnly, NecOnly, PalOnly, BarOnly, DruOnly, AssOnly, WarOnly). |
Cross-references
- playerclass — class → 3-letter-code lookup (
Amazon→ama). Other tables (skills, weapons class-restriction, etc.) key on the short code, not the display name. - skills —
charclasscolumn references the 3-letter codes; combine with charstats' per-attribute scaling to compute build-specific math (max life from N vit, etc.). - plrmode — animation-mode token vocabulary referenced when the engine plays per-class animations.