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
17908kill_cast_distort_p335304 60085–60114 ———
4243kill_cast_distort_rect34049 1–843 ———
17601kill_cast_distort_rect34049 60085–60114 ———
5286kill_cast_distort_rightfoot_ws35356 1–843 ———
17919kill_cast_distort_rightfoot_ws35356 60085–60114 ———
19053kill_cast_distort_righthand43770 60085–60114 ———
6570kill_cast_distort_right_foot_ws39239 1–843 ———
19052kill_cast_distort_right_foot_ws43769 60085–60114 ———
4503kill_cast_distort_weaponrootleft34314 1–843 ———
17707kill_cast_distort_weaponrootleft34314 60085–60114 ———
4504kill_cast_distort_weaponrootright34315 1–843 ———
17708kill_cast_distort_weaponrootright34315 60085–60114 ———
22623kill_cast_dodge_buff50059 60085–60114 ———
27418kill_cast_dome_barrier_fx62037 60085–60114 ———
30054kill_cast_dome_barrier_green_fx8454111 60085–60114 ———
31416kill_cast_dome_disease_barrier8485243 60085–60114 ———
23849kill_cast_draconian_breath52674 60085–60114 ———
6559kill_cast_dragonbreath39221 1–843 ———
18361kill_cast_dragonbreath39221 60085–60114 ———
30613kill_cast_dragon_aa_rune_fx8458652 60085–60114 ———
22171kill_cast_dragon_breath_cold49133 60085–60114 ———
22172kill_cast_dragon_breath_heat49134 60085–60114 ———
22173kill_cast_dragon_breath_lightning49135 60085–60114 ———
22174kill_cast_dragon_breath_poison49136 60085–60114 ———
5287kill_cast_dragon_pbae_cold35357 1–843 ———
17920kill_cast_dragon_pbae_cold35357 60085–60114 ———
5288kill_cast_dragon_pbae_heat35358 1–843 ———
17921kill_cast_dragon_pbae_heat35358 60085–60114 ———
5313kill_cast_dragon_pbae_lightning35404 1–843 ———
17938kill_cast_dragon_pbae_lightning35404 60085–60114 ———
21980kill_cast_dragon_pbae_lightning_red48743 60085–60114 ———
5289kill_cast_dragon_pbae_mental35359 1–843 ———
17922kill_cast_dragon_pbae_mental35359 60085–60114 ———
5290kill_cast_dragon_pbae_poison35360 1–843 ———
17923kill_cast_dragon_pbae_poison35360 60085–60114 ———
5291kill_cast_dragon_pbae_void35361 1–843 ———
17924kill_cast_dragon_pbae_void35361 60085–60114 ———
5314kill_cast_dragon_tae_lightning35405 1–843 ———
17939kill_cast_dragon_tae_lightning35405 60085–60114 ———
5292kill_cast_dragon_tae_mental35362 1–843 ———
17925kill_cast_dragon_tae_mental35362 60085–60114 ———
22148kill_cast_dragon_tail_trail49096 60085–60114 ———
22149kill_cast_dragon_tail_trail_long49097 60085–60114 ———
22150kill_cast_dragon_wing_buffet49098 60085–60114 ———
4609kill_cast_dragon_wing_dust34435 1–843 ———
17756kill_cast_dragon_wing_dust34435 60085–60114 ———
28224kill_cast_draining_portal_fx65171 60085–60114 ———
22175kill_cast_drake_breath_cold49137 60085–60114 ———
22176kill_cast_drake_breath_lightning49138 60085–60114 ———
22177kill_cast_drake_breath_magic_divine49139 60085–60114 ———
22178kill_cast_drake_breath_poison49140 60085–60114 ———
19054kill_cast_drake_fire_breath43771 60085–60114 ———
4086kill_cast_drone_01_snd33844 1–843 ———
19055kill_cast_drone_01_snd43772 60085–60114 ———
4087kill_cast_drone_02_snd33845 1–843 ———
19056kill_cast_drone_02_snd43773 60085–60114 ———
4267kill_cast_drone_snd34074 1–843 ———
19057kill_cast_drone_snd43774 60085–60114 ———
4344kill_cast_drone_sound34151 1–843 ———
19058kill_cast_drone_sound43775 60085–60114 ———
3520kill_cast_druid32912 1–843 ———
17466kill_cast_druid32912 60085–60114 ———
26580kill_cast_druid_light_beams58879 60085–60114 ———
5495kill_cast_druid_ws35639 1–843 ———
18017kill_cast_druid_ws35639 60085–60114 ———
18416kill_cast_dryad_attack_aoe41270 60085–60114 ———
18414kill_cast_dryad_teleport41250 60085–60114 ———
21981kill_cast_dual_shards48744 60085–60114 ———
3521kill_cast_dustpuff32913 1–843 ———
17467kill_cast_dustpuff32913 60085–60114 ———
19059kill_cast_dustpuff_lefthand43776 60085–60114 ———
4505kill_cast_dustpuff_lfoot34316 1–843 ———
17709kill_cast_dustpuff_lfoot34316 60085–60114 ———
4277kill_cast_dustpuff_rfoot34084 1–843 ———
17619kill_cast_dustpuff_rfoot34084 60085–60114 ———
19060kill_cast_dustpuff_righthand43777 60085–60114 ———
4506kill_cast_dustpuff_weaponrootleft34317 1–843 ———
17710kill_cast_dustpuff_weaponrootleft34317 60085–60114 ———
4507kill_cast_dustpuff_weaponrootright34318 1–843 ———
17711kill_cast_dustpuff_weaponrootright34318 60085–60114 ———
4345kill_cast_dustpuff_ws34152 1–843 ———
17658kill_cast_dustpuff_ws34152 60085–60114 ———
22966kill_cast_earth_charge50856 60085–60114 ———
26536kill_cast_eat_snowball58641 60085–60114 ———
5348kill_cast_elec_feet35452 1–843 ———
17952kill_cast_elec_feet35452 60085–60114 ———
6336kill_cast_elec_feet_green38108 1–843 ———
19061kill_cast_elec_feet_green43778 60085–60114 ———
4196kill_cast_elec_hands33986 1–843 ———
17577kill_cast_elec_hands33986 60085–60114 ———
19062kill_cast_elec_hands_four43779 60085–60114 ———
19063kill_cast_elec_hands_four_up43780 60085–60114 ———
19064kill_cast_elec_hands_up43781 60085–60114 ———
24752kill_cast_elemental_converge54636 60085–60114 ———
26660kill_cast_ember_breath59029 60085–60114 ———
4523kill_cast_enchanter34335 1–843 ———
17719kill_cast_enchanter34335 60085–60114 ———
23111kill_cast_enchanter_wheel_back51208 60085–60114 ———
23112kill_cast_enchanter_wheel_base51209 60085–60114 ———
23113kill_cast_enchanter_wheel_forward51210 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.