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
26523kill_snd_dual_wield_attack0158587 60085–60114 ———
26524kill_snd_dual_wield_attack0258588 60085–60114 ———
26525kill_snd_dual_wield_attack0358589 60085–60114 ———
31738kill_snd_duck_call8496273 60085–60114 ———
31739kill_snd_duck_call_028496274 60085–60114 ———
31736kill_snd_duck_vox_long8496024 60085–60114 ———
31737kill_snd_duck_vox_short8496025 60085–60114 ———
25320kill_snd_evil_komodo_mount_idle_0156198 60085–60114 ———
25321kill_snd_evil_komodo_mount_idle_0256199 60085–60114 ———
25858kill_snd_fae_wing_flaps57629 60085–60114 ———
25439kill_snd_falcon_god_attack02_vox56518 60085–60114 ———
25440kill_snd_falcon_god_attack03_vox56519 60085–60114 ———
25441kill_snd_falcon_god_attack_vox56520 60085–60114 ———
25460kill_snd_falcon_god_bodyfall56580 60085–60114 ———
25442kill_snd_falcon_god_cast_vox56521 60085–60114 ———
25443kill_snd_falcon_god_combat_enter_vox56522 60085–60114 ———
25429kill_snd_falcon_god_fs56474 60085–60114 ———
25444kill_snd_falcon_god_idle0156523 60085–60114 ———
25445kill_snd_falcon_god_idle02_vox56524 60085–60114 ———
25446kill_snd_falcon_god_offensive_buff56525 60085–60114 ———
25430kill_snd_falcon_god_wing_flap_0156475 60085–60114 ———
4084kill_snd_fall_damage33842 1–843 ———
20337kill_snd_fall_damage45068 60085–60114 ———
6527kill_snd_fireworks_boom39054 1–843 ———
20339kill_snd_fireworks_boom45070 60085–60114 ———
21711kill_snd_fire_large_loop47862 60085–60114 ———
6595kill_snd_fire_whoosh39331 1–843 ———
20338kill_snd_fire_whoosh45069 60085–60114 ———
27815kill_snd_fish_angler_attack63687 60085–60114 ———
27816kill_snd_fish_angler_attack_0163688 60085–60114 ———
27817kill_snd_fish_angler_attack_0263689 60085–60114 ———
27818kill_snd_fish_angler_attack_0363690 60085–60114 ———
27819kill_snd_fish_angler_cast63691 60085–60114 ———
27820kill_snd_fish_angler_charge_up_and_combat_enter63692 60085–60114 ———
27821kill_snd_fish_angler_death_enter63693 60085–60114 ———
27822kill_snd_fish_angler_dodge_and_dodge_thrust63694 60085–60114 ———
27823kill_snd_fish_angler_dodge_backhand63695 60085–60114 ———
27824kill_snd_fish_angler_dodge_down63696 60085–60114 ———
27825kill_snd_fish_angler_dodge_forehand163697 60085–60114 ———
27826kill_snd_fish_angler_ouch_backhand63698 60085–60114 ———
27827kill_snd_fish_angler_ouch_down63699 60085–60114 ———
27828kill_snd_fish_angler_ouch_forehand63700 60085–60114 ———
27829kill_snd_fish_angler_ouch_thrust63701 60085–60114 ———
27830kill_snd_fish_angler_run63702 60085–60114 ———
27831kill_snd_fish_angler_walk63703 60085–60114 ———
27832kill_snd_fish_angler_whirl_attack63704 60085–60114 ———
27833kill_snd_fish_angler_wild_swing63705 60085–60114 ———
31287kill_snd_foley8483256 60085–60114 ———
25789kill_snd_footstep57456 60085–60114 ———
31385kill_snd_footstep_creature_xl8484572 60085–60114 ———
25669kill_snd_freeport_knight_1h_sword_attack57067 60085–60114 ———
25670kill_snd_freeport_knight_1h_sword_attack0157068 60085–60114 ———
25671kill_snd_freeport_knight_1h_sword_attack0257069 60085–60114 ———
25672kill_snd_freeport_knight_1h_sword_attack0357070 60085–60114 ———
25725kill_snd_freeport_knight_attack57285 60085–60114 ———
25726kill_snd_freeport_knight_attack0157286 60085–60114 ———
25727kill_snd_freeport_knight_attack0257287 60085–60114 ———
25728kill_snd_freeport_knight_attack0357288 60085–60114 ———
25696kill_snd_freeport_knight_cast_death57166 60085–60114 ———
25697kill_snd_freeport_knight_cast_end57167 60085–60114 ———
25698kill_snd_freeport_knight_cast_start57168 60085–60114 ———
25674kill_snd_freeport_knight_charge_up57072 60085–60114 ———
25718kill_snd_freeport_knight_death57267 60085–60114 ———
25673kill_snd_freeport_knight_fs57071 60085–60114 ———
25719kill_snd_freeport_knight_knockeddowntoknees57268 60085–60114 ———
25720kill_snd_freeport_knight_rx_attack_long57269 60085–60114 ———
25721kill_snd_freeport_knight_rx_attack_short57270 60085–60114 ———
25722kill_snd_freeport_knight_rx_buff57271 60085–60114 ———
25729kill_snd_freeport_knight_rx_cast_end57289 60085–60114 ———
25723kill_snd_freeport_knight_rx_death57272 60085–60114 ———
25724kill_snd_freeport_knight_rx_ouch57273 60085–60114 ———
25675kill_snd_freeport_knight_whirling_attack57073 60085–60114 ———
25676kill_snd_freeport_knight_wild_swing57074 60085–60114 ———
27701kill_snd_frogboss_attack63345 60085–60114 ———
27702kill_snd_frogboss_attack0163346 60085–60114 ———
27703kill_snd_frogboss_cast_enter63347 60085–60114 ———
27704kill_snd_frogboss_dead_enter63348 60085–60114 ———
27705kill_snd_frogboss_ouch63349 60085–60114 ———
20340kill_snd_frontload_acid45071 60085–60114 ———
26487kill_snd_fs58496 60085–60114 ———
26502kill_snd_fs_l58536 60085–60114 ———
26774kill_snd_fs_mud59422 60085–60114 ———
26595kill_snd_fs_mud_0158905 60085–60114 ———
26596kill_snd_fs_mud_0258906 60085–60114 ———
26503kill_snd_fs_r58537 60085–60114 ———
27429kill_snd_gargoyle_attack62127 60085–60114 ———
27430kill_snd_gargoyle_attack0362128 60085–60114 ———
27431kill_snd_gargoyle_cast_162129 60085–60114 ———
27432kill_snd_gargoyle_charge_up62130 60085–60114 ———
27433kill_snd_gargoyle_combat_enter62131 60085–60114 ———
27434kill_snd_gargoyle_dead_enter62132 60085–60114 ———
27435kill_snd_gargoyle_kick62133 60085–60114 ———
27436kill_snd_gargoyle_knocktoback_getup62134 60085–60114 ———
27437kill_snd_gargoyle_ouch_forehand62135 60085–60114 ———
27438kill_snd_gargoyle_shield_shove62136 60085–60114 ———
31288kill_snd_get_arrow8483292 60085–60114 ———
25082kill_snd_gnm_racemnt_idle_0155479 60085–60114 ———
25083kill_snd_gnm_racemnt_run_0155480 60085–60114 ———
25084kill_snd_gnm_racemnt_walk_0155481 60085–60114 ———
25094kill_snd_gnomerace_ringwhoosh55531 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.