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
30314kill_hit_impact_whoosh_suck03_snd8454849 60085–60114 ———
19730kill_hit_leather_snd44457 60085–60114 ———
4648kill_hit_metal_chainmail_snd34475 1–843 ———
19731kill_hit_metal_chainmail_snd44458 60085–60114 ———
19732kill_hit_metal_cloth_snd44459 60085–60114 ———
4058kill_hit_metal_leather_snd33815 1–843 ———
19733kill_hit_metal_leather_snd44460 60085–60114 ———
4059kill_hit_metal_metal_snd33816 1–843 ———
19734kill_hit_metal_metal_snd44461 60085–60114 ———
4060kill_hit_metal_skin_snd33817 1–843 ———
19735kill_hit_metal_skin_snd44462 60085–60114 ———
19736kill_hit_metal_snd44463 60085–60114 ———
6607kill_hit_shake39419 1–843 ———
19737kill_hit_shake44464 60085–60114 ———
4649kill_hit_skin_chainmail_snd34476 1–843 ———
19738kill_hit_skin_chainmail_snd44465 60085–60114 ———
19739kill_hit_skin_cloth_snd44466 60085–60114 ———
4061kill_hit_skin_leather_snd33818 1–843 ———
19740kill_hit_skin_leather_snd44467 60085–60114 ———
4062kill_hit_skin_metal_snd33819 1–843 ———
19741kill_hit_skin_metal_snd44468 60085–60114 ———
4063kill_hit_skin_skin_snd33820 1–843 ———
19742kill_hit_skin_skin_snd44469 60085–60114 ———
19743kill_hit_skin_snd44470 60085–60114 ———
5722kill_hit_snd35893 1–843 ———
19744kill_hit_snd44471 60085–60114 ———
6105kill_hit_target_tigger37171 1–843 ———
19745kill_hit_target_tigger44472 60085–60114 ———
3647kill_hit_target_trigger33089 1–843 ———
19746kill_hit_target_trigger44473 60085–60114 ———
4650kill_hit_wood_chainmail_snd34477 1–843 ———
19747kill_hit_wood_chainmail_snd44474 60085–60114 ———
19748kill_hit_wood_cloth_snd44475 60085–60114 ———
4651kill_hit_wood_leather_snd34478 1–843 ———
19749kill_hit_wood_leather_snd44476 60085–60114 ———
4652kill_hit_wood_metal_snd34479 1–843 ———
19750kill_hit_wood_metal_snd44477 60085–60114 ———
4653kill_hit_wood_skin_snd34480 1–843 ———
19751kill_hit_wood_skin_snd44478 60085–60114 ———
31820kill_hold_ground_enter8497062 60085–60114 ———
31821kill_hold_ground_idle8497063 60085–60114 ———
30559kill_horde_dragon_attack8456596 60085–60114 ———
30560kill_horde_dragon_attack018456597 60085–60114 ———
30561kill_horde_dragon_attack028456598 60085–60114 ———
30562kill_horde_dragon_attack038456599 60085–60114 ———
30563kill_horde_dragon_attack_breathe_fire8456600 60085–60114 ———
30564kill_horde_dragon_attack_tail8456601 60085–60114 ———
30565kill_horde_dragon_combat_enter8456602 60085–60114 ———
30566kill_horde_dragon_death_enter8456603 60085–60114 ———
30567kill_horde_dragon_idle018456604 60085–60114 ———
30568kill_horde_dragon_idle028456605 60085–60114 ———
30557kill_horde_dragon_knock_back8456594 60085–60114 ———
30558kill_horde_dragon_offensive_buff8456595 60085–60114 ———
30569kill_horde_dragon_super_buff8456606 60085–60114 ———
22451kill_horn_blow49561 60085–60114 ———
25620kill_horse_attack56993 60085–60114 ———
25621kill_horse_attack0156994 60085–60114 ———
25622kill_horse_attack0256995 60085–60114 ———
25623kill_horse_attack0356996 60085–60114 ———
6409kill_horse_backup38333 1–843 ———
18326kill_horse_backup38333 60085–60114 ———
25624kill_horse_cast56997 60085–60114 ———
25731kill_horse_combat_attack57297 60085–60114 ———
25732kill_horse_combat_attack0157298 60085–60114 ———
25733kill_horse_combat_attack0257299 60085–60114 ———
25734kill_horse_combat_attack0357300 60085–60114 ———
25625kill_horse_combat_cast56998 60085–60114 ———
25626kill_horse_combat_enter56999 60085–60114 ———
25627kill_horse_combat_exit57000 60085–60114 ———
22151kill_horse_combat_idle49102 60085–60114 ———
25649kill_horse_dead57036 60085–60114 ———
25650kill_horse_dead_enter57037 60085–60114 ———
25651kill_horse_dead_enter0157038 60085–60114 ———
25628kill_horse_death57001 60085–60114 ———
25629kill_horse_death0157002 60085–60114 ———
4668kill_horse_enter34495 1–843 ———
17760kill_horse_enter34495 60085–60114 ———
19753kill_horse_fall44480 60085–60114 ———
25113kill_horse_fly_backup55632 60085–60114 ———
25114kill_horse_fly_climb55633 60085–60114 ———
25115kill_horse_fly_dive55634 60085–60114 ———
25116kill_horse_fly_glide55635 60085–60114 ———
25117kill_horse_fly_glide_left55636 60085–60114 ———
25118kill_horse_fly_glide_right55637 60085–60114 ———
25119kill_horse_fly_idle55638 60085–60114 ———
25120kill_horse_fly_run55639 60085–60114 ———
25121kill_horse_fly_strafe_left55640 60085–60114 ———
25122kill_horse_fly_strafe_right55641 60085–60114 ———
25123kill_horse_fly_turn_left55642 60085–60114 ———
25124kill_horse_fly_turn_right55643 60085–60114 ———
25125kill_horse_fly_up55644 60085–60114 ———
25126kill_horse_fly_walk55645 60085–60114 ———
4031kill_horse_idle33772 1–843 ———
17560kill_horse_idle33772 60085–60114 ———
19754kill_horse_jump44481 60085–60114 ———
18699kill_horse_jump_substitute43280 60085–60114 ———
19755kill_horse_land44482 60085–60114 ———
21480kill_horse_long_fall46500 60085–60114 ———
25630kill_horse_ouch57003 60085–60114 ———
25631kill_horse_ouch0157004 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.