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
18287kill_result_stone_hand_terraporter37394 60085–60114 ———
30060kill_result_stone_root8454124 60085–60114 ———
31065kill_result_stone_stun_rain8480986 60085–60114 ———
5811kill_result_storm_of_ancients36114 1–843 ———
18102kill_result_storm_of_ancients36114 60085–60114 ———
3739kill_result_strike33275 1–843 ———
17539kill_result_strike33275 60085–60114 ———
22787kill_result_string_trap50470 60085–60114 ———
3740kill_result_stun33276 1–843 ———
17540kill_result_stun33276 60085–60114 ———
4626kill_result_stunned34452 1–843 ———
17758kill_result_stunned34452 60085–60114 ———
23970kill_result_stunned_rings52895 60085–60114 ———
21832kill_result_stunned_star48244 60085–60114 ———
5812kill_result_stun_sub36115 1–843 ———
18103kill_result_stun_sub36115 60085–60114 ———
26945kill_result_sullon_shadow_curse60083 60085–60114 ———
23859kill_result_summoning_crystal52694 60085–60114 ———
25710kill_result_summon_spirit_swirls57212 60085–60114 ———
18538kill_result_sun_spell42914 60085–60114 ———
20172kill_result_sun_sphere44901 60085–60114 ———
18679kill_result_swashbuckler_hand_trails43162 60085–60114 ———
31285kill_result_swirling_hand_energy_drain_p2p8483250 60085–60114 ———
22617kill_result_swirling_note50044 60085–60114 ———
5074kill_result_swirly_column34976 1–843 ———
17886kill_result_swirly_column34976 60085–60114 ———
5758kill_result_swirly_column_evil35966 1–843 ———
18066kill_result_swirly_column_evil35966 60085–60114 ———
28179kill_result_sword_cyclone65055 60085–60114 ———
22555kill_result_sword_head49846 60085–60114 ———
5781kill_result_sword_rain_damage35998 1–843 ———
18076kill_result_sword_rain_damage35998 60085–60114 ———
23614kill_result_tallonite_barb_p2p52346 60085–60114 ———
23619kill_result_tallonite_lash_p2p52357 60085–60114 ———
23620kill_result_tallonite_lash_skulls_p2p52364 60085–60114 ———
23621kill_result_tallonite_skull_control52365 60085–60114 ———
23622kill_result_tallonite_sphere52366 60085–60114 ———
24797kill_result_talon_strike54726 60085–60114 ———
25711kill_result_tame_shroud57213 60085–60114 ———
6225kill_result_tears_of_druzil37488 1–843 ———
18292kill_result_tears_of_druzil37488 60085–60114 ———
28101kill_result_tear_blast64576 60085–60114 ———
28102kill_result_tear_chain_channeling_p2p64577 60085–60114 ———
28095kill_result_tear_of_veeshan_channeling_p2p64557 60085–60114 ———
4516kill_result_teleporter_coalesce34327 1–843 ———
17715kill_result_teleporter_coalesce34327 60085–60114 ———
4706kill_result_teleport_appear34571 1–843 ———
17778kill_result_teleport_appear34571 60085–60114 ———
31418kill_result_teleport_around8485253 60085–60114 ———
23268kill_result_teleport_blast_up51595 60085–60114 ———
31380kill_result_teleport_down8484318 60085–60114 ———
23269kill_result_teleport_fold51596 60085–60114 ———
23210kill_result_teleport_icy_vanish51451 60085–60114 ———
23200kill_result_teleport_ring_vanish51420 60085–60114 ———
4703kill_result_teleport_sparkle34568 1–843 ———
17775kill_result_teleport_sparkle34568 60085–60114 ———
30908kill_result_teleport_up_green8471689 60085–60114 ———
30909kill_result_teleport_up_orange8471690 60085–60114 ———
30910kill_result_teleport_up_purple8471691 60085–60114 ———
4704kill_result_teleport_vanish34569 1–843 ———
17776kill_result_teleport_vanish34569 60085–60114 ———
4848kill_result_tellurian_recruit34722 1–843 ———
17833kill_result_tellurian_recruit34722 60085–60114 ———
18672kill_result_templar_halo43145 60085–60114 ———
31030kill_result_tentacle_portal_grab8478411 60085–60114 ———
31045kill_result_tentacle_root8479791 60085–60114 ———
31437kill_result_tentacle_root_green8485556 60085–60114 ———
31438kill_result_tentacle_root_orange8485557 60085–60114 ———
6062kill_result_terra_armor36910 1–843 ———
18241kill_result_terra_armor36910 60085–60114 ———
6428kill_result_terrorantula_attack38372 1–843 ———
18333kill_result_terrorantula_attack38372 60085–60114 ———
6429kill_result_terrorantula_attack_cocoon38373 1–843 ———
18334kill_result_terrorantula_attack_cocoon38373 60085–60114 ———
3741kill_result_test33277 1–843 ———
17541kill_result_test33277 60085–60114 ———
27126kill_result_tether_buff_p2p60867 60085–60114 ———
23789kill_result_theer_debuff_down52602 60085–60114 ———
23790kill_result_theer_debuff_up52603 60085–60114 ———
23867kill_result_theer_evil_drain52724 60085–60114 ———
23868kill_result_theer_good_drain52725 60085–60114 ———
23791kill_result_theer_mana_drain_p2p52604 60085–60114 ———
22046kill_result_timed_heart_tap48915 60085–60114 ———
26707kill_result_time_warp59140 60085–60114 ———
30643kill_result_torch_flame_gather_p2p8459815 60085–60114 ———
27422kill_result_tourbillion_essence_suck_p2p62047 60085–60114 ———
23869kill_result_toxic_debuff52732 60085–60114 ———
27783kill_result_toxic_head_skulls63562 60085–60114 ———
4893kill_result_toxin_out34770 1–843 ———
17848kill_result_toxin_out34770 60085–60114 ———
6041kill_result_toxin_out_aoe36833 1–843 ———
18229kill_result_toxin_out_aoe36833 60085–60114 ———
23879kill_result_toxx_essence_trap_p2p52750 60085–60114 ———
4406kill_result_trail34213 1–843 ———
17674kill_result_trail34213 60085–60114 ———
5541kill_result_trail_foot35697 1–843 ———
4675kill_result_trail_lightning34524 1–843 ———
17762kill_result_trail_lightning34524 60085–60114 ———
5542kill_result_trail_lightning_gold35698 1–843 ———
18026kill_result_trail_lightning_gold35698 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.