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
17291cast_priest_aa_reassignment_fx31684 60085–60114 ———
740cast_priest_aggro_01903 1–843 ———
8329cast_priest_aggro_0111074 60085–60114 ———
741cast_priest_aggro_02904 1–843 ———
8330cast_priest_aggro_0211075 60085–60114 ———
742cast_priest_buff_01905 1–843 ———
8331cast_priest_buff_0111076 60085–60114 ———
743cast_priest_buff_02906 1–843 ———
8332cast_priest_buff_0211077 60085–60114 ———
744cast_priest_ddam_01907 1–843 ———
8333cast_priest_ddam_0111078 60085–60114 ———
745cast_priest_ddam_02908 1–843 ———
8334cast_priest_ddam_0211079 60085–60114 ———
1239cast_priest_floating1480 1–843 ———
8335cast_priest_floating11080 60085–60114 ———
2333cast_priest_ws2924 1–843 ———
7227cast_priest_ws2924 60085–60114 ———
17286cast_prism_breath31660 60085–60114 ———
29862cast_putrid_breath104766 60085–60114 ———
29628cast_pyrebreath_bullwark96926 60085–60114 ———
29629cast_pyrebreath_bullwark_ring96927 60085–60114 ———
892cast_quickhit_snd1083 1–843 ———
8336cast_quickhit_snd11081 60085–60114 ———
11833cast_quick_shield17309 60085–60114 ———
2626cast_rainbow_rays_cloud3376 1–843 ———
7323cast_rainbow_rays_cloud3376 60085–60114 ———
7624cast_rain_of_thistles8536 60085–60114 ———
12349cast_raise_dead_column18512 60085–60114 ———
14171cast_rallos_zek_superbuff22449 60085–60114 ———
17371cast_ranger32141 60085–60114 ———
17161cast_ranger_mythical_fx31243 60085–60114 ———
15675cast_raptor_claws25645 60085–60114 ———
430cast_rays175 1–843 ———
6697cast_rays175 60085–60114 ———
855cast_rays_cloud1044 1–843 ———
6771cast_rays_cloud1044 60085–60114 ———
431cast_rays_l176 1–843 ———
6698cast_rays_l176 60085–60114 ———
432cast_rays_mental177 1–843 ———
6699cast_rays_mental177 60085–60114 ———
433cast_rays_r178 1–843 ———
6700cast_rays_r178 60085–60114 ———
434cast_ready179 1–843 ———
8337cast_ready11082 60085–60114 ———
16335cast_red_buff28109 60085–60114 ———
13612cast_resurrect_swirls21101 60085–60114 ———
746cast_rhand_sparkle_trail909 1–843 ———
6764cast_rhand_sparkle_trail909 60085–60114 ———
11061cast_rhand_sparkle_trail_blend15644 60085–60114 ———
1283cast_rhand_sparkle_trail_t1525 1–843 ———
6910cast_rhand_sparkle_trail_t1525 60085–60114 ———
11839cast_rings_aoe17338 60085–60114 ———
435cast_rings_crescent180 1–843 ———
6701cast_rings_crescent180 60085–60114 ———
2907cast_ring_expanding4449 1–843 ———
7463cast_ring_expanding4449 60085–60114 ———
29580cast_riposte_shield95484 60085–60114 ———
28700cast_rocks_coins_shock_wave67445 60085–60114 ———
15697cast_rocky_blast25735 60085–60114 ———
28652cast_rocky_crack_blast66974 60085–60114 ———
15673cast_rocky_uprising25637 60085–60114 ———
28908cast_rock_blastwave74742 60085–60114 ———
28699cast_rock_dust_kick67444 60085–60114 ———
28909cast_rock_gather74743 60085–60114 ———
28895cast_rock_replace73834 60085–60114 ———
28896cast_rock_shake73835 60085–60114 ———
16749cast_rock_strike_targeted29729 60085–60114 ———
29268cast_rock_vanish92367 60085–60114 ———
29012cast_room_breath79294 60085–60114 ———
29851cast_rum_barrel_summon104132 60085–60114 ———
29852cast_rum_splash_forward104133 60085–60114 ———
437cast_runedraw182 1–843 ———
6703cast_runedraw182 60085–60114 ———
1066cast_runedraw_blue1307 1–843 ———
6823cast_runedraw_blue1307 60085–60114 ———
438cast_runes_randomorbits183 1–843 ———
6704cast_runes_randomorbits183 60085–60114 ———
11847cast_rune_buff17361 60085–60114 ———
436cast_rune_ring181 1–843 ———
6702cast_rune_ring181 60085–60114 ———
1565cast_rune_ring_good1872 1–843 ———
7009cast_rune_ring_good1872 60085–60114 ———
1566cast_rune_ring_rotate1873 1–843 ———
7010cast_rune_ring_rotate1873 60085–60114 ———
2619cast_rune_ring_rotate_persist3363 1–843 ———
7318cast_rune_ring_rotate_persist3363 60085–60114 ———
1166cast_rune_sound_011407 1–843 ———
8338cast_rune_sound_0111083 60085–60114 ———
1167cast_rune_sound_021408 1–843 ———
8339cast_rune_sound_0211084 60085–60114 ———
1168cast_rune_sound_031409 1–843 ———
8340cast_rune_sound_0311085 60085–60114 ———
1169cast_rune_sound_041410 1–843 ———
8341cast_rune_sound_0411086 60085–60114 ———
11848cast_rune_spiral_buff17362 60085–60114 ———
14166cast_sacrifice_blast22437 60085–60114 ———
15765cast_sacrifice_disperse26012 60085–60114 ———
15766cast_sacrifice_stab26013 60085–60114 ———
1901cast_sawdust2270 1–843 ———
7104cast_sawdust2270 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.