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
5330kill_result_trail_lightning_red35427 1–843 ———
17947kill_result_trail_lightning_red35427 60085–60114 ———
4678kill_result_trail_motion34532 1–843 ———
17763kill_result_trail_motion34532 60085–60114 ———
5543kill_result_trail_rightfoot35699 1–843 ———
23615kill_result_trail_tallonite52347 60085–60114 ———
22195kill_result_trakanon_static_repulsion49180 60085–60114 ———
4679kill_result_tree_morph34533 1–843 ———
17764kill_result_tree_morph34533 60085–60114 ———
4859kill_result_tremor34733 1–843 ———
17837kill_result_tremor34733 60085–60114 ———
5813kill_result_tricksters_grasp36116 1–843 ———
18104kill_result_tricksters_grasp36116 60085–60114 ———
22664kill_result_troll_curse50191 60085–60114 ———
18723kill_result_troubador_clouds43354 60085–60114 ———
5869kill_result_turtle_walking36234 1–843 ———
18151kill_result_turtle_walking36234 60085–60114 ———
4388kill_result_twinkle_0134195 1–843 ———
20173kill_result_twinkle_0144902 60085–60114 ———
5977kill_result_umbral_trap36629 1–843 ———
18211kill_result_umbral_trap36629 60085–60114 ———
5926kill_result_unerring_shot36523 1–843 ———
18183kill_result_unerring_shot36523 60085–60114 ———
5927kill_result_unerring_shot_flaming36524 1–843 ———
18184kill_result_unerring_shot_flaming36524 60085–60114 ———
5928kill_result_unyielding_will36525 1–843 ———
18185kill_result_unyielding_will36525 60085–60114 ———
5899kill_result_vampire_daggers_p2p36448 1–843 ———
18161kill_result_vampire_daggers_p2p36448 60085–60114 ———
5900kill_result_vampire_ice_daggers_p2p36449 1–843 ———
18162kill_result_vampire_ice_daggers_p2p36449 60085–60114 ———
5901kill_result_vampire_lifetap_heart_p2p36450 1–843 ———
18163kill_result_vampire_lifetap_heart_p2p36450 60085–60114 ———
5897kill_result_vampire_lifetap_p2p36440 1–843 ———
18159kill_result_vampire_lifetap_p2p36440 60085–60114 ———
5973kill_result_vampire_rainbow_circle_throw36619 1–843 ———
18207kill_result_vampire_rainbow_circle_throw36619 60085–60114 ———
5902kill_result_vampire_snow_throw36451 1–843 ———
18164kill_result_vampire_snow_throw36451 60085–60114 ———
5974kill_result_vampire_whip_dark36620 1–843 ———
18208kill_result_vampire_whip_dark36620 60085–60114 ———
26687kill_result_vaporize59094 60085–60114 ———
28127kill_result_veeshan_tear_energy_absorb_p2p64700 60085–60114 ———
28103kill_result_veeshan_teleport64578 60085–60114 ———
4801kill_result_verdant_genesis34674 1–843 ———
17817kill_result_verdant_genesis34674 60085–60114 ———
18384kill_result_verdict39570 60085–60114 ———
18385kill_result_verdict_explosion39571 60085–60114 ———
22267kill_result_vertical_blast49325 60085–60114 ———
31004kill_result_vial_shatter_pus_drop8476793 60085–60114 ———
5782kill_result_vines_root_control35999 1–843 ———
18077kill_result_vines_root_control35999 60085–60114 ———
24619kill_result_vines_trap54417 60085–60114 ———
30870kill_result_violet_fire_bones8469835 60085–60114 ———
5792kill_result_vitae_buff_heal36016 1–843 ———
18086kill_result_vitae_buff_heal36016 60085–60114 ———
22940kill_result_void_beam_p2p50790 60085–60114 ———
22803kill_result_void_crystal_p2p50514 60085–60114 ———
30323kill_result_void_dissolve8454860 60085–60114 ———
22721kill_result_void_energy_barrier50313 60085–60114 ———
22722kill_result_void_energy_blast50314 60085–60114 ———
22723kill_result_void_energy_wave50315 60085–60114 ———
22822kill_result_void_explode50567 60085–60114 ———
22502kill_result_void_fx49682 60085–60114 ———
23055kill_result_void_fx_alt51104 60085–60114 ———
22761kill_result_void_implode50405 60085–60114 ———
30324kill_result_void_portal_drinal_p2p8454861 60085–60114 ———
30325kill_result_void_portal_essence_suck_p2p8454862 60085–60114 ———
22823kill_result_void_ragestorm50568 60085–60114 ———
22552kill_result_void_splat49837 60085–60114 ———
22824kill_result_void_storm50569 60085–60114 ———
22795kill_result_void_tether_p2p50499 60085–60114 ———
5282kill_result_void_whirlwind35333 1–843 ———
17918kill_result_void_whirlwind35333 60085–60114 ———
18388kill_result_vortex_p2p39618 60085–60114 ———
23479kill_result_wand_lightning_bolts_p2p52110 60085–60114 ———
3742kill_result_ward33278 1–843 ———
17542kill_result_ward33278 60085–60114 ———
3743kill_result_ward133279 1–843 ———
17543kill_result_ward133279 60085–60114 ———
18680kill_result_warlock_subtle_aura43163 60085–60114 ———
22518kill_result_waterspout_p2p49706 60085–60114 ———
22454kill_result_waterwall49582 60085–60114 ———
22516kill_result_water_ball49704 60085–60114 ———
22517kill_result_water_burst49705 60085–60114 ———
24524kill_result_water_douse54219 60085–60114 ———
4756kill_result_water_dripping34629 1–843 ———
17792kill_result_water_dripping34629 60085–60114 ———
5801kill_result_water_elemental_summon36028 1–843 ———
18092kill_result_water_elemental_summon36028 60085–60114 ———
4757kill_result_water_forced_shader34630 1–843 ———
17793kill_result_water_forced_shader34630 60085–60114 ———
27734kill_result_water_forced_shader_no_sparkle63436 60085–60114 ———
4939kill_result_weakness34817 1–843 ———
17857kill_result_weakness34817 60085–60114 ———
20174kill_result_weakness_disk_blue44903 60085–60114 ———
20175kill_result_weakness_disk_green44904 60085–60114 ———
20176kill_result_weakness_disk_purple44905 60085–60114 ———
20177kill_result_weakness_disk_red44906 60085–60114 ———
20178kill_result_weakness_disk_yellow44907 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.