Mechanics

plrmode

Player animation-mode token vocabulary — the 20-row lookup that maps human-readable modes (Walk, Run, Cast, Attack1) to the 2-character codes that skills.txt and the .COF animation system reference.

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

ColumnMeaning
NameDisplay name of the animation mode.
TokenThe .COF system token. Equal to Code on most rows; differs for Sequence and Knock back (both reuse GH).
CodeThe unique 2-character identifier. The join key for cross-table references (e.g. skills.txt anim).

Full mode reference

CodeModeWhat playsBuildcraft relevance
DTDeathThe dying transition.
NUNeutralIdle stance.
WLWalkWalking.
RNRunRunning.The FRW breakpoint engine references RN frames.
GHGet HitHit recoil.The FHR breakpoint engine references GH frames per class per weapon.
TNTown NeutralTown idle (no weapon drawn).
TWTown WalkTown walking.
A1Attack1Primary attack swing.The IAS breakpoint engine references A1 frames for most weapon classes.
A2Attack2Secondary attack frame.Some weapons cycle A1/A2; rare reference.
BLBlockShield block reaction.The FBR breakpoint engine references BL frames.
SCCastSpell-casting.The FCR breakpoint engine references SC frames per class.
THThrowThrowing animation.Used by javelins, throwing knives, throwing potions.
KKKickKick animation.Assassin Dragon Talon and the universal Kick action in charstats.Skill 2.
S1S4Skill1–Skill4Custom 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.
DDDeadThe settled-dead pose.
SQSequenceSequence event.Synthetic — reuses GH animation.
KBKnock backKnock-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.animplrmode.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:

Breakpointplrmode CodeWhat it measures
FCR (Faster Cast Rate)SCCast animation speed-up.
FHR (Faster Hit Recovery)GHGet Hit animation speed-up.
FBR (Faster Block Rate)BLBlock animation speed-up.
IAS / WIAS / EIAS / OIASA1 (mostly)Attack animation speed-up. Some skills reference A2 or S1–S4.

Cross-references

  • skillsanim column carries plrmode.Code. Most player skills set anim to A1, SC, TH, or one of S1S4.
  • charstats — per-class data. The full breakpoint chain joins charstats × plrmode × .cof per class.
  • hitclass — separate weapon-attack-category lookup. Not the same vocabulary as plrmode.