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
30578kill_cast_frostfell_iceblock048457031 60085–60114 ———
30579kill_cast_frostfell_iceblock058457032 60085–60114 ———
5496kill_cast_frosty_hand_l35640 1–843 ———
18018kill_cast_frosty_hand_l35640 60085–60114 ———
5497kill_cast_frosty_hand_r35641 1–843 ———
18019kill_cast_frosty_hand_r35641 60085–60114 ———
5055kill_cast_fuliginous34946 1–843 ———
17883kill_cast_fuliginous34946 60085–60114 ———
4524kill_cast_fury34336 1–843 ———
17720kill_cast_fury34336 60085–60114 ———
27946kill_cast_fury_mythical_fx64001 60085–60114 ———
6644kill_cast_fusion39544 1–843 ———
18380kill_cast_fusion39544 60085–60114 ———
23218kill_cast_gathering_charge_up51474 60085–60114 ———
25918kill_cast_gather_corruption57810 60085–60114 ———
26462kill_cast_gather_flowers58392 60085–60114 ———
25519kill_cast_gather_fx56714 60085–60114 ———
18443kill_cast_gaze_of_obedience42541 60085–60114 ———
23425kill_cast_ghostly_vanish52016 60085–60114 ———
25736kill_cast_ghost_rats57304 60085–60114 ———
4394kill_cast_ghost_shield_summoned34201 1–843 ———
17670kill_cast_ghost_shield_summoned34201 60085–60114 ———
4402kill_cast_ghost_shield_summoned_sparkles34209 1–843 ———
17672kill_cast_ghost_shield_summoned_sparkles34209 60085–60114 ———
31006kill_cast_ghost_ship_sailing8476984 60085–60114 ———
31057kill_cast_giant_blood_blast8480582 60085–60114 ———
31053kill_cast_giant_blood_column_blast8480380 60085–60114 ———
30974kill_cast_giant_bone_summon8474498 60085–60114 ———
30785kill_cast_giant_flame_column_blast8466711 60085–60114 ———
30786kill_cast_giant_rock_blastwave8466712 60085–60114 ———
30999kill_cast_giant_slash8476392 60085–60114 ———
31000kill_cast_giant_slash_spin8476393 60085–60114 ———
31001kill_cast_giant_sword_toss_aoe8476394 60085–60114 ———
18461kill_cast_glass_shattering42718 60085–60114 ———
4351kill_cast_glowhand_sound_0134158 1–843 ———
19074kill_cast_glowhand_sound_0143791 60085–60114 ———
4352kill_cast_glowhand_sound_0334159 1–843 ———
19075kill_cast_glowhand_sound_0343792 60085–60114 ———
4353kill_cast_glowhand_sound_0434160 1–843 ———
19076kill_cast_glowhand_sound_0443793 60085–60114 ———
4354kill_cast_glowhand_sound_0534161 1–843 ———
19077kill_cast_glowhand_sound_0543794 60085–60114 ———
4355kill_cast_glowhand_sound_0634162 1–843 ———
19078kill_cast_glowhand_sound_0643795 60085–60114 ———
4350kill_cast_glowhand__sound_0234157 1–843 ———
19073kill_cast_glowhand__sound_0243790 60085–60114 ———
5279kill_cast_glow_distort35329 1–843 ———
17915kill_cast_glow_distort35329 60085–60114 ———
5866kill_cast_glow_distort236228 1–843 ———
18148kill_cast_glow_distort236228 60085–60114 ———
31452kill_cast_glow_eyes_red8486196 60085–60114 ———
4347kill_cast_glow_ring_wavyrays34154 1–843 ———
17659kill_cast_glow_ring_wavyrays34154 60085–60114 ———
4348kill_cast_glow_ring_wavyrays_l34155 1–843 ———
17660kill_cast_glow_ring_wavyrays_l34155 60085–60114 ———
4349kill_cast_glow_ring_wavyrays_r34156 1–843 ———
17661kill_cast_glow_ring_wavyrays_r34156 60085–60114 ———
25484kill_cast_godly_port56625 60085–60114 ———
25515kill_cast_godly_port_exit56697 60085–60114 ———
23358kill_cast_god_blast51811 60085–60114 ———
5818kill_cast_gold_sparkletrace_l36126 1–843 ———
18108kill_cast_gold_sparkletrace_l36126 60085–60114 ———
5819kill_cast_gold_sparkletrace_r36127 1–843 ———
18109kill_cast_gold_sparkletrace_r36127 60085–60114 ———
5820kill_cast_gold_trace_l36128 1–843 ———
18110kill_cast_gold_trace_l36128 60085–60114 ———
5821kill_cast_gold_trace_r36129 1–843 ———
18111kill_cast_gold_trace_r36129 60085–60114 ———
28228kill_cast_golem_head_summon65188 60085–60114 ———
23142kill_cast_goo_bubble_bursting51277 60085–60114 ———
30829kill_cast_grim_reaper8468815 60085–60114 ———
30702kill_cast_ground_shadow_gather8463347 60085–60114 ———
4356kill_cast_gsswipe_01_snd34163 1–843 ———
19079kill_cast_gsswipe_01_snd43796 60085–60114 ———
4357kill_cast_gsswipe_02_snd34164 1–843 ———
19080kill_cast_gsswipe_02_snd43797 60085–60114 ———
4358kill_cast_gsswipe_03_snd34165 1–843 ———
19081kill_cast_gsswipe_03_snd43798 60085–60114 ———
28162kill_cast_guardian64905 60085–60114 ———
27947kill_cast_guardian_mythical_fx64002 60085–60114 ———
24971kill_cast_hammer_hands55236 60085–60114 ———
4537kill_cast_hammer_sparkling_floating34349 1–843 ———
17732kill_cast_hammer_sparkling_floating34349 60085–60114 ———
4204kill_cast_hammer_toss33996 1–843 ———
17580kill_cast_hammer_toss33996 60085–60114 ———
4092kill_cast_handswipe_snd33850 1–843 ———
19083kill_cast_handswipe_snd43800 60085–60114 ———
31040kill_cast_hands_buff8479579 60085–60114 ———
4465kill_cast_hands_elec_nightblood34272 1–843 ———
19082kill_cast_hands_elec_nightblood43799 60085–60114 ———
31440kill_cast_hands_fire8485762 60085–60114 ———
31441kill_cast_hands_smoke_dark8485763 60085–60114 ———
31420kill_cast_hand_bursts8485531 60085–60114 ———
23124kill_cast_hand_energy_artifact51235 60085–60114 ———
27970kill_cast_hand_fireball64059 60085–60114 ———
28027kill_cast_hand_fireball_blast64154 60085–60114 ———
26683kill_cast_hand_fire_trails59071 60085–60114 ———
28124kill_cast_hand_fx_in64690 60085–60114 ———
22784kill_cast_hand_slash50463 60085–60114 ———
24800kill_cast_head_souls54738 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.