Reference library

Emotes and animations.

Search the configured world’s emotes table by name, row ID, visual state ID or message. Each row maps a name to an animation for a client version range.

  • 31,574 mappings
  • 25,249 unique names
  • 220 mappings with chat text
  • 31,354 animation-only mappings

Snapshot: October 14, 2026. These are database mappings; a client’s models and assets determine what can actually render. A listed name does not automatically register a player slash command.

Table fields and usage ↓

Build filtering uses the stored inclusive range: minimum ≤ build ≤ maximum. A maximum of 0 means no upper limit. Leave the build blank to compare all mappings for a name.

31,574 matching mappings.

Available mappings from the world database snapshot. Empty message fields are shown as —.
Row IDNameVisual state IDClient build rangeMessageTargeted messageStored self message
4722kill_anvil34592 1–843 ———
18812kill_anvil43525 60085–60114 ———
5086kill_anvil_small35013 1–843 ———
18813kill_anvil_small43526 60085–60114 ———
22963kill_aoe_ice_blast50853 60085–60114 ———
22964kill_aoe_rock_blast50854 60085–60114 ———
3470kill_appear32831 1–843 ———
18814kill_appear43527 60085–60114 ———
25002kill_applaud55321 60085–60114 ———
3471kill_applaude32832 1–843 ———
18815kill_applaude43528 60085–60114 ———
26985kill_arasai_evil_skull_swirls60260 60085–60114 ———
5192kill_arm04_fail35182 1–843 ———
18816kill_arm04_fail43529 60085–60114 ———
5176kill_arm04_success35146 1–843 ———
18817kill_arm04_success43530 60085–60114 ———
5121kill_armpour0135069 1–843 ———
18818kill_armpour0143531 60085–60114 ———
30270kill_arrow_barrage_snd8454800 60085–60114 ———
5835kill_artifact36158 1–843 ———
18819kill_artifact43532 60085–60114 ———
5122kill_artificing_failure35070 1–843 ———
18820kill_artificing_failure43533 60085–60114 ———
5123kill_artificing_idle35071 1–843 ———
18821kill_artificing_idle43534 60085–60114 ———
5124kill_artificing_success35072 1–843 ———
18822kill_artificing_success43535 60085–60114 ———
5470kill_artsn_chem_sound35608 1–843 ———
18823kill_artsn_chem_sound43536 60085–60114 ———
5471kill_artsn_chimepad_sound35609 1–843 ———
18824kill_artsn_chimepad_sound43537 60085–60114 ———
5472kill_artsn_forge_helmet_sound35610 1–843 ———
18825kill_artsn_forge_helmet_sound43538 60085–60114 ———
5473kill_artsn_forge_sound35611 1–843 ———
18826kill_artsn_forge_sound43539 60085–60114 ———
5474kill_artsn_glow_sound35612 1–843 ———
18827kill_artsn_glow_sound43540 60085–60114 ———
5475kill_artsn_knives_sound35613 1–843 ———
18828kill_artsn_knives_sound43541 60085–60114 ———
5476kill_artsn_knot_sound35614 1–843 ———
18829kill_artsn_knot_sound43542 60085–60114 ———
5477kill_artsn_logcut_sound35615 1–843 ———
18830kill_artsn_logcut_sound43543 60085–60114 ———
5323kill_artsn_metal_bar_end_snd35418 1–843 ———
18831kill_artsn_metal_bar_end_snd43544 60085–60114 ———
5324kill_artsn_metal_bar_snd35419 1–843 ———
18832kill_artsn_metal_bar_snd43545 60085–60114 ———
5478kill_artsn_molecule_sound35616 1–843 ———
18833kill_artsn_molecule_sound43546 60085–60114 ———
5479kill_artsn_planer_sound35617 1–843 ———
18834kill_artsn_planer_sound43547 60085–60114 ———
5480kill_artsn_saw_sound35618 1–843 ———
18835kill_artsn_saw_sound43548 60085–60114 ———
5481kill_artsn_stove_sound35619 1–843 ———
18836kill_artsn_stove_sound43549 60085–60114 ———
6442kill_asg_stonegaze_snd38412 1–843 ———
18837kill_asg_stonegaze_snd43550 60085–60114 ———
27187kill_asleep61133 60085–60114 ———
26461kill_attachment58391 60085–60114 ———
3472kill_attack32833 1–843 ———
18838kill_attack43551 60085–60114 ———
3473kill_attack0132834 1–843 ———
18839kill_attack0143552 60085–60114 ———
3474kill_attack0232835 1–843 ———
18840kill_attack0243553 60085–60114 ———
5493kill_attack0335637 1–843 ———
18841kill_attack0343554 60085–60114 ———
30648kill_attack03_headshake8460190 60085–60114 ———
6333kill_attack0438052 1–843 ———
18842kill_attack0443555 60085–60114 ———
6643kill_attack0539543 1–843 ———
26572kill_attack0558850 60085–60114 ———
26959kill_attack0660159 60085–60114 ———
6564kill_attack139233 1–843 ———
6630kill_attack239495 1–843 ———
6631kill_attack339496 1–843 ———
3480kill_attacktiming32844 1–843 ———
18868kill_attacktiming43581 60085–60114 ———
3481kill_attacktiming_a32845 1–843 ———
18869kill_attacktiming_a43582 60085–60114 ———
21833kill_attack_0248297 60085–60114 ———
30483kill_attack_038455870 60085–60114 ———
26579kill_attack_arm58878 60085–60114 ———
27035kill_attack_arms60482 60085–60114 ———
4573kill_attack_backhand_trigger34395 1–843 ———
18843kill_attack_backhand_trigger43556 60085–60114 ———
6625kill_attack_bite39462 1–843 ———
18844kill_attack_bite43557 60085–60114 ———
25790kill_attack_bites57459 60085–60114 ———
22553kill_attack_bolts49840 60085–60114 ———
21362kill_attack_boss0146226 60085–60114 ———
21363kill_attack_boss0246227 60085–60114 ———
4686kill_attack_breath34540 1–843 ———
18845kill_attack_breath43558 60085–60114 ———
18846kill_attack_breath0143559 60085–60114 ———
6116kill_attack_breath0237236 1–843 ———
18847kill_attack_breath0243560 60085–60114 ———
6565kill_attack_breath_area39234 1–843 ———
23965kill_attack_breath_crush52885 60085–60114 ———
22836kill_attack_breath_inhale50591 60085–60114 ———
Table fields and server behavior
Schema from the same database snapshot.
ColumnSQL typeMeaning
idint(10) unsigned Auto-increment primary key for the database row. This is not the animation ID.
namevarchar(128)
Nullable
Exact name used by the server’s animation lookup. The same name can have separate rows for different client builds.
visual_state_idint(10) unsigned Numeric animation ID sent in WS_CannedEmote for the selected mapping. IDs can change between version ranges.
messagevarchar(255)
Nullable
Default chat text, used without a different target or when targeted_message is empty. The server prefixes the originator’s name for player emotes.
targeted_messagevarchar(255)
Nullable
Chat text used when a different target exists. The %t placeholder is replaced with the target’s name.
self_messagevarchar(255)
Nullable
Stored database field. The current WorldDatabase loader does not select it and HandleEmote does not use it.
min_version_rangeint(10) unsigned Inclusive lowest client build for this mapping; 0 allows builds from zero upward.
max_version_rangeint(10) unsigned Inclusive highest client build; 0 means no upper limit.

Using a named animation

For example, wave maps to visual state 883 for builds 1–843 and 13287 for builds 60085–60114 in this snapshot. Search a name with the build left blank to see its variants.

In Lua, PlayAnimationString resolves the name through the emote catalog. This example plays the named animation without using the spawn’s current target:

PlayAnimationString(Spawn, "wave", nil, true)

Player canned emotes use /cannedemote wave. The separate /emote command sends custom chat text. For NPCs, HandleEmote sends the animation with an empty emote message.

Message placeholders: %t is the target’s name; %g1 becomes his/her, %g2 becomes him/her, and %g3 becomes he/she, using the originator’s gender. The current handler replaces the first occurrence of each placeholder.

The “With chat text” filter includes rows with a nonempty message or targeted_message. “Animation only” means both fields are empty. Stored self_message does not affect either filter.

Build filtering shows literal database ranges. FindAnimation also has a narrow verified fallback for bow_knockedtoback in builds 562–935 when no direct mapping exists; it does not make all modern mappings available to those builds.

Source: configured local world emotes table, exported read-only on October 14, 2026. Runtime behavior checked against WorldServer/WorldDatabase.cpp, WorldServer/Spawn/VisualStates.h, WorldServer/Zone/zoneserver.cpp, WorldServer/Commands/Commands.cpp and WorldServer/Lua/LuaFunctions.cpp. Other worlds can have different mappings.