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
3935kill_cast_mage_aggro_0233665 1–843 ———
19095kill_cast_mage_aggro_0243812 60085–60114 ———
3936kill_cast_mage_buff_0133666 1–843 ———
19096kill_cast_mage_buff_0143813 60085–60114 ———
3937kill_cast_mage_buff_0233667 1–843 ———
19097kill_cast_mage_buff_0243814 60085–60114 ———
3938kill_cast_mage_ddam_0133668 1–843 ———
19098kill_cast_mage_ddam_0143815 60085–60114 ———
3939kill_cast_mage_ddam_0233669 1–843 ———
19099kill_cast_mage_ddam_0243816 60085–60114 ———
4887kill_cast_mage_old34763 1–843 ———
17845kill_cast_mage_old34763 60085–60114 ———
4435kill_cast_mage_qa_0134242 1–843 ———
19100kill_cast_mage_qa_0143817 60085–60114 ———
4436kill_cast_mage_qa_0234243 1–843 ———
19101kill_cast_mage_qa_0243818 60085–60114 ———
4437kill_cast_mage_qa_0334244 1–843 ———
19102kill_cast_mage_qa_0343819 60085–60114 ———
4438kill_cast_mage_quickzap_0134245 1–843 ———
19103kill_cast_mage_quickzap_0143820 60085–60114 ———
4439kill_cast_mage_quickzap_0234246 1–843 ———
19104kill_cast_mage_quickzap_0243821 60085–60114 ———
4440kill_cast_mage_ready34247 1–843 ———
19105kill_cast_mage_ready43822 60085–60114 ———
30601kill_cast_magic_barrier_beam8457974 60085–60114 ———
26702kill_cast_magic_breath59123 60085–60114 ———
31002kill_cast_magic_bullet_streaks8476584 60085–60114 ———
23361kill_cast_magic_portal51819 60085–60114 ———
18457kill_cast_mana_burn42625 60085–60114 ———
30988kill_cast_mana_spikes_blast8475600 60085–60114 ———
3526kill_cast_mandala32918 1–843 ———
17472kill_cast_mandala32918 60085–60114 ———
4604kill_cast_mandala_blobs34429 1–843 ———
17753kill_cast_mandala_blobs34429 60085–60114 ———
4764kill_cast_mandala_electricity34637 1–843 ———
17800kill_cast_mandala_electricity34637 60085–60114 ———
4765kill_cast_mandala_streaks34638 1–843 ———
17801kill_cast_mandala_streaks34638 60085–60114 ———
5802kill_cast_mandala_sub36103 1–843 ———
18093kill_cast_mandala_sub36103 60085–60114 ———
22825kill_cast_manta_bolt_p2p50572 60085–60114 ———
22826kill_cast_manta_tail_beam50573 60085–60114 ———
22827kill_cast_manta_tail_flare50574 60085–60114 ———
23688kill_cast_massive_ring_blast52469 60085–60114 ———
18440kill_cast_mayongs_touch42523 60085–60114 ———
23385kill_cast_medusa_snake_attack_aoe51892 60085–60114 ———
23386kill_cast_medusa_snake_attack_p2p51893 60085–60114 ———
23387kill_cast_medusa_snake_buff51894 60085–60114 ———
22637kill_cast_melee_buff50119 60085–60114 ———
4395kill_cast_mendhands_0134202 1–843 ———
19106kill_cast_mendhands_0143823 60085–60114 ———
4396kill_cast_mendsparkleball_0134203 1–843 ———
19107kill_cast_mendsparkleball_0143824 60085–60114 ———
4397kill_cast_mendsparkleball_0234204 1–843 ———
19108kill_cast_mendsparkleball_0243825 60085–60114 ———
4399kill_cast_mendtrails_0134206 1–843 ———
19110kill_cast_mendtrails_0143827 60085–60114 ———
4398kill_cast_mendtrail_0134205 1–843 ———
19109kill_cast_mendtrail_0143826 60085–60114 ———
4427kill_cast_mendtwinkles_0134234 1–843 ———
19111kill_cast_mendtwinkles_0143828 60085–60114 ———
23963kill_cast_mental_blast52877 60085–60114 ———
22648kill_cast_mental_buff50144 60085–60114 ———
3527kill_cast_mesmerize32919 1–843 ———
17473kill_cast_mesmerize32919 60085–60114 ———
22818kill_cast_meteor_storm50559 60085–60114 ———
30914kill_cast_mines_throw8472063 60085–60114 ———
22233kill_cast_mirror49240 60085–60114 ———
24440kill_cast_mirror_emerge53969 60085–60114 ———
30710kill_cast_missile_blob_fx_green8463913 60085–60114 ———
30711kill_cast_missile_dark_blob_fx_purple8463914 60085–60114 ———
30371kill_cast_missile_fx8454980 60085–60114 ———
3940kill_cast_mistring33670 1–843 ———
17557kill_cast_mistring33670 60085–60114 ———
4538kill_cast_mist_sphere_add34350 1–843 ———
17733kill_cast_mist_sphere_add34350 60085–60114 ———
4539kill_cast_mist_sphere_blend34351 1–843 ———
17734kill_cast_mist_sphere_blend34351 60085–60114 ———
21635kill_cast_mist_sphere_sub47323 60085–60114 ———
28163kill_cast_monk64906 60085–60114 ———
27950kill_cast_monk_mythical_fx64005 60085–60114 ———
31448kill_cast_moonlight_chargeup8485981 60085–60114 ———
31449kill_cast_moonlight_drop8485982 60085–60114 ———
6159kill_cast_morph_to_dragon37332 1–843 ———
18273kill_cast_morph_to_dragon37332 60085–60114 ———
6242kill_cast_morph_to_elf37551 1–843 ———
18298kill_cast_morph_to_elf37551 60085–60114 ———
5407kill_cast_motion_lines35519 1–843 ———
4527kill_cast_mystic34339 1–843 ———
17723kill_cast_mystic34339 60085–60114 ———
6641kill_cast_mysticism39534 1–843 ———
18378kill_cast_mysticism39534 60085–60114 ———
27951kill_cast_mystic_mythical_fx64006 60085–60114 ———
31408kill_cast_nature_heal_gather8485024 60085–60114 ———
3528kill_cast_necromancer32920 1–843 ———
17474kill_cast_necromancer32920 60085–60114 ———
27952kill_cast_necromancer_mythical_fx64007 60085–60114 ———
22828kill_cast_nether_blast50575 60085–60114 ———
22829kill_cast_nether_storm50576 60085–60114 ———
4819kill_cast_new_qa_part134693 1–843 ———
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.