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
23392kill_cast_poison_column_blast51906 60085–60114 ———
23400kill_cast_poison_daggers51925 60085–60114 ———
4484kill_cast_poison_dragon_breath34292 1–843 ———
17703kill_cast_poison_dragon_breath34292 60085–60114 ———
6651kill_cast_poison_dragon_breath_test39556 1–843 ———
21845kill_cast_poison_dragon_breath_test48385 60085–60114 ———
25213kill_cast_poison_sands55839 60085–60114 ———
27640kill_cast_poison_spray_back62955 60085–60114 ———
27641kill_cast_poison_spray_cone62956 60085–60114 ———
25909kill_cast_pollen_spew57794 60085–60114 ———
28225kill_cast_portal_energy_release65173 60085–60114 ———
24403kill_cast_potion_hand_pattern_heal53865 60085–60114 ———
24404kill_cast_potion_hand_sparks53866 60085–60114 ———
24405kill_cast_potion_ring_cure53867 60085–60114 ———
26704kill_cast_prestige_fx59126 60085–60114 ———
21846kill_cast_pricecheck48386 60085–60114 ———
3544kill_cast_priest32942 1–843 ———
17490kill_cast_priest32942 60085–60114 ———
28084kill_cast_priest_aa_reassignment_fx64452 60085–60114 ———
3941kill_cast_priest_aggro_0133671 1–843 ———
19123kill_cast_priest_aggro_0143842 60085–60114 ———
3942kill_cast_priest_aggro_0233672 1–843 ———
19124kill_cast_priest_aggro_0243843 60085–60114 ———
3943kill_cast_priest_buff_0133673 1–843 ———
19125kill_cast_priest_buff_0143844 60085–60114 ———
3944kill_cast_priest_buff_0233674 1–843 ———
19126kill_cast_priest_buff_0243845 60085–60114 ———
3945kill_cast_priest_ddam_0133675 1–843 ———
19127kill_cast_priest_ddam_0143846 60085–60114 ———
3946kill_cast_priest_ddam_0233676 1–843 ———
19128kill_cast_priest_ddam_0243847 60085–60114 ———
4441kill_cast_priest_floating34248 1–843 ———
19129kill_cast_priest_floating43848 60085–60114 ———
5536kill_cast_priest_ws35692 1–843 ———
18021kill_cast_priest_ws35692 60085–60114 ———
28079kill_cast_prism_breath64428 60085–60114 ———
31653kill_cast_putrid_breath8493374 60085–60114 ———
31421kill_cast_pyrebreath_bullwark8485534 60085–60114 ———
31422kill_cast_pyrebreath_bullwark_ring8485535 60085–60114 ———
4093kill_cast_quickhit_snd33851 1–843 ———
19130kill_cast_quickhit_snd43849 60085–60114 ———
22627kill_cast_quick_shield50077 60085–60114 ———
5829kill_cast_rainbow_rays_cloud36144 1–843 ———
18117kill_cast_rainbow_rays_cloud36144 60085–60114 ———
18418kill_cast_rain_of_thistles41304 60085–60114 ———
23143kill_cast_raise_dead_column51280 60085–60114 ———
24965kill_cast_rallos_zek_superbuff55217 60085–60114 ———
28164kill_cast_ranger64909 60085–60114 ———
27954kill_cast_ranger_mythical_fx64011 60085–60114 ———
26468kill_cast_raptor_claws58413 60085–60114 ———
3545kill_cast_rays32943 1–843 ———
17491kill_cast_rays32943 60085–60114 ———
4056kill_cast_rays_cloud33812 1–843 ———
17565kill_cast_rays_cloud33812 60085–60114 ———
3546kill_cast_rays_l32944 1–843 ———
17492kill_cast_rays_l32944 60085–60114 ———
3547kill_cast_rays_mental32945 1–843 ———
17493kill_cast_rays_mental32945 60085–60114 ———
3548kill_cast_rays_r32946 1–843 ———
17494kill_cast_rays_r32946 60085–60114 ———
3549kill_cast_ready32947 1–843 ———
19131kill_cast_ready43850 60085–60114 ———
27128kill_cast_red_buff60877 60085–60114 ———
24406kill_cast_resurrect_swirls53869 60085–60114 ———
3947kill_cast_rhand_sparkle_trail33677 1–843 ———
17558kill_cast_rhand_sparkle_trail33677 60085–60114 ———
21855kill_cast_rhand_sparkle_trail_blend48412 60085–60114 ———
4485kill_cast_rhand_sparkle_trail_t34293 1–843 ———
17704kill_cast_rhand_sparkle_trail_t34293 60085–60114 ———
22633kill_cast_rings_aoe50106 60085–60114 ———
3550kill_cast_rings_crescent32948 1–843 ———
17495kill_cast_rings_crescent32948 60085–60114 ———
6110kill_cast_ring_expanding37217 1–843 ———
18257kill_cast_ring_expanding37217 60085–60114 ———
31373kill_cast_riposte_shield8484092 60085–60114 ———
30495kill_cast_rocks_coins_shock_wave8456053 60085–60114 ———
26490kill_cast_rocky_blast58503 60085–60114 ———
30447kill_cast_rocky_crack_blast8455582 60085–60114 ———
26466kill_cast_rocky_uprising58405 60085–60114 ———
30703kill_cast_rock_blastwave8463350 60085–60114 ———
30494kill_cast_rock_dust_kick8456052 60085–60114 ———
30704kill_cast_rock_gather8463351 60085–60114 ———
30690kill_cast_rock_replace8462442 60085–60114 ———
30691kill_cast_rock_shake8462443 60085–60114 ———
27542kill_cast_rock_strike_targeted62497 60085–60114 ———
31061kill_cast_rock_vanish8480975 60085–60114 ———
30807kill_cast_room_breath8467902 60085–60114 ———
31642kill_cast_rum_barrel_summon8492740 60085–60114 ———
31643kill_cast_rum_splash_forward8492741 60085–60114 ———
3552kill_cast_runedraw32950 1–843 ———
17497kill_cast_runedraw32950 60085–60114 ———
4268kill_cast_runedraw_blue34075 1–843 ———
17617kill_cast_runedraw_blue34075 60085–60114 ———
3553kill_cast_runes_randomorbits32951 1–843 ———
17498kill_cast_runes_randomorbits32951 60085–60114 ———
22641kill_cast_rune_buff50129 60085–60114 ———
3551kill_cast_rune_ring32949 1–843 ———
17496kill_cast_rune_ring32949 60085–60114 ———
4767kill_cast_rune_ring_good34640 1–843 ———
17803kill_cast_rune_ring_good34640 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.