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
14213cast_aa_deflecting_daggers22564 60085–60114 ———
14958cast_aa_flash_bomb_appear24569 60085–60114 ———
14953cast_aa_frosty_cone_forward24557 60085–60114 ———
14913cast_aa_frosty_swirls24435 60085–60114 ———
14988cast_aa_frost_wall24659 60085–60114 ———
14049cast_aa_heal_bars22093 60085–60114 ———
14210cast_aa_lightning_cleave_blast22559 60085–60114 ———
14266cast_aa_magic_overflow22649 60085–60114 ———
14267cast_aa_manasoul22650 60085–60114 ———
14959cast_aa_melee_swipe24570 60085–60114 ———
14216cast_aa_music_ring_blast22574 60085–60114 ———
14268cast_aa_mystic_field22651 60085–60114 ———
14217cast_aa_notes_spiral22575 60085–60114 ———
14211cast_aa_riposte22560 60085–60114 ———
14269cast_aa_self_lifetap22652 60085–60114 ———
14212cast_aa_shield_bars22561 60085–60114 ———
14195cast_aa_spiritfire_blast22526 60085–60114 ———
14196cast_aa_spiritfire_swirls22527 60085–60114 ———
14969cast_aa_spirit_ape24588 60085–60114 ———
14975cast_aa_spirit_bat24596 60085–60114 ———
14942cast_aa_spirit_bear24535 60085–60114 ———
14914cast_aa_spirit_blast24436 60085–60114 ———
14967cast_aa_spirit_blast_big24584 60085–60114 ———
14970cast_aa_spirit_boar24589 60085–60114 ———
14976cast_aa_spirit_cobra24597 60085–60114 ———
14971cast_aa_spirit_crab24590 60085–60114 ———
14977cast_aa_spirit_drake24598 60085–60114 ———
14978cast_aa_spirit_frogs24599 60085–60114 ———
14979cast_aa_spirit_hawk24600 60085–60114 ———
14972cast_aa_spirit_rats24591 60085–60114 ———
14973cast_aa_spirit_stag24592 60085–60114 ———
14980cast_aa_spirit_tiger24601 60085–60114 ———
14981cast_aa_spirit_wolf24602 60085–60114 ———
14986cast_aa_spirit_wolf_howling24650 60085–60114 ———
29246cast_aa_swords_buff90970 60085–60114 ———
14307cast_aa_whip_circling22799 60085–60114 ———
16276cast_acid_rain27911 60085–60114 ———
17084cast_acid_spit_fx31022 60085–60114 ———
17085cast_acid_spray31023 60085–60114 ———
10876cast_acid_storm_damage14889 60085–60114 ———
12171cast_air_charge18087 60085–60114 ———
12806cast_air_sample19558 60085–60114 ———
28267cast_anger_tube_grow65524 60085–60114 ———
2074cast_angry_burst2558 1–843 ———
7118cast_angry_burst2558 60085–60114 ———
2851cast_angry_burst_aoe4123 1–843 ———
7439cast_angry_burst_aoe4123 60085–60114 ———
2280cast_anim_mesh_dragon_ps2852 1–843 ———
7222cast_anim_mesh_dragon_ps2852 60085–60114 ———
3349cast_aoe6418 1–843 ———
1769cast_aoe_beneficial_end2086 1–843 ———
8227cast_aoe_beneficial_end10966 60085–60114 ———
1770cast_aoe_beneficial_loop2087 1–843 ———
8228cast_aoe_beneficial_loop10967 60085–60114 ———
1771cast_aoe_beneficial_start2088 1–843 ———
8229cast_aoe_beneficial_start10968 60085–60114 ———
1772cast_aoe_detrimental_end2089 1–843 ———
8230cast_aoe_detrimental_end10969 60085–60114 ———
1773cast_aoe_detrimental_loop2090 1–843 ———
8231cast_aoe_detrimental_loop10970 60085–60114 ———
1774cast_aoe_detrimental_start2091 1–843 ———
8232cast_aoe_detrimental_start10971 60085–60114 ———
1858cast_aoe_invocation_end2191 1–843 ———
8233cast_aoe_invocation_end10973 60085–60114 ———
1859cast_aoe_invocation_loop2192 1–843 ———
8234cast_aoe_invocation_loop10974 60085–60114 ———
1860cast_aoe_invocation_start2193 1–843 ———
8235cast_aoe_invocation_start10975 60085–60114 ———
1861cast_aoe_wand_end2194 1–843 ———
8236cast_aoe_wand_end10976 60085–60114 ———
1862cast_aoe_wand_loop2195 1–843 ———
8237cast_aoe_wand_loop10977 60085–60114 ———
1863cast_aoe_wand_start2196 1–843 ———
8238cast_aoe_wand_start10978 60085–60114 ———
11725cast_aoe_water_blast16941 60085–60114 ———
13122cast_arcane_blast20028 60085–60114 ———
12047cast_arcane_blast_aoe17836 60085–60114 ———
399cast_arch_circle138 1–843 ———
6666cast_arch_circle138 60085–60114 ———
28422cast_arc_slash66041 60085–60114 ———
29242cast_area_cloud_blast90574 60085–60114 ———
29509cast_area_skull_cloud_blast95128 60085–60114 ———
15866cast_armament_buff26260 60085–60114 ———
1510cast_armor_01_snd1813 1–843 ———
8239cast_armor_01_snd10979 60085–60114 ———
11459cast_armor_assemble16517 60085–60114 ———
28257cast_arrow_convert65501 60085–60114 ———
28258cast_arrow_cyclone65502 60085–60114 ———
17363cast_assassin32131 60085–60114 ———
17144cast_assassin_mythical_fx31224 60085–60114 ———
3235cast_attack025633 1–843 ———
8240cast_attack0210980 60085–60114 ———
28477cast_aura01_snd66194 60085–60114 ———
28478cast_aura02_snd66195 60085–60114 ———
14685cast_axe_fire_attack23843 60085–60114 ———
14686cast_axe_flurry23844 60085–60114 ———
884cast_backgroundsparkle_snd1075 1–843 ———
8241cast_backgroundsparkle_snd10981 60085–60114 ———
12273cast_back_rune_wheel18375 60085–60114 ———
16622cast_bagpipe_sound29254 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.