The 20-row table that defines the player animation vocabulary — which animation modes exist, what they're called, and what 2-character code identifies each one. Every skill in skills.txt references one of these codes via its anim column; the engine's .COF (Component Object File) animation system uses the same codes to look up per-class per-mode frame data.
3 columns: Name (human-readable), Token (.COF reference), Code (the join key).
What this table is not
Per-class base frame counts are not here. The frame data that drives IAS / FHR / FBR / FCR breakpoint calculations lives in the engine's .cof files (one .cof per class per animation mode per weapon class). plrmode is the vocabulary — the names of the modes — not the frame data itself. The .cof files are not in the canonical .txt corpus and are consumed engine-side.
So plrmode answers "what animation modes are there?" but not "how many frames is the Sorceress's Cast animation with a Wand?" — that question terminates in the .cof system.
Locbones coverage
plrmode is not documented in locbones D2R Data Guide. The mode-to-code mapping is well-established from Phrozen Keep COF documentation and is internally consistent (verified by data inspection: 18 of 20 rows have Token == Code, the two exceptions reuse the Get Hit animation for Sequence and Knock back).
Columns
| Column | Meaning |
|---|---|
Name | Display name of the animation mode. |
Token | The .COF system token. Equal to Code on most rows; differs for Sequence and Knock back (both reuse GH). |
Code | The unique 2-character identifier. The join key for cross-table references (e.g. skills.txt anim). |
Full mode reference
| Code | Mode | What plays | Buildcraft relevance |
|---|---|---|---|
DT | Death | The dying transition. | — |
NU | Neutral | Idle stance. | — |
WL | Walk | Walking. | — |
RN | Run | Running. | The FRW breakpoint engine references RN frames. |
GH | Get Hit | Hit recoil. | The FHR breakpoint engine references GH frames per class per weapon. |
TN | Town Neutral | Town idle (no weapon drawn). | — |
TW | Town Walk | Town walking. | — |
A1 | Attack1 | Primary attack swing. | The IAS breakpoint engine references A1 frames for most weapon classes. |
A2 | Attack2 | Secondary attack frame. | Some weapons cycle A1/A2; rare reference. |
BL | Block | Shield block reaction. | The FBR breakpoint engine references BL frames. |
SC | Cast | Spell-casting. | The FCR breakpoint engine references SC frames per class. |
TH | Throw | Throwing animation. | Used by javelins, throwing knives, throwing potions. |
KK | Kick | Kick animation. | Assassin Dragon Talon and the universal Kick action in charstats.Skill 2. |
S1–S4 | Skill1–Skill4 | Custom skill animations. | Skills like Frozen Orb that have unique animations beyond standard cast use these slots; the .cof file per skill picks which Sn slot. |
DD | Dead | The settled-dead pose. | — |
SQ | Sequence | Sequence event. | Synthetic — reuses GH animation. |
KB | Knock back | Knock-back event. | Synthetic — reuses GH animation. |
How skills reference it
When a skill row in skills.txt has anim=SC, the engine resolves SC through plrmode to "Cast," then looks up the class's .cof file for that mode and the equipped weapon class to get the per-frame animation data. This same path is what the IAS engine traces for weapon-swing breakpoints (anim=A1) — it goes from skills.anim → plrmode.Code → .cof → frame count. The first two stages are queryable; the .cof stage is engine-side.
The breakpoint families (FCR, FHR, FBR, IAS) each correspond to one plrmode row:
| Breakpoint | plrmode Code | What it measures |
|---|---|---|
| FCR (Faster Cast Rate) | SC | Cast animation speed-up. |
| FHR (Faster Hit Recovery) | GH | Get Hit animation speed-up. |
| FBR (Faster Block Rate) | BL | Block animation speed-up. |
| IAS / WIAS / EIAS / OIAS | A1 (mostly) | Attack animation speed-up. Some skills reference A2 or S1–S4. |