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
12631cast_ghostly_vanish19248 60085–60114 ———
14943cast_ghost_rats24536 60085–60114 ———
1192cast_ghost_shield_summoned1433 1–843 ———
6876cast_ghost_shield_summoned1433 60085–60114 ———
1200cast_ghost_shield_summoned_sparkles1441 1–843 ———
6878cast_ghost_shield_summoned_sparkles1441 60085–60114 ———
29213cast_ghost_ship_sailing88376 60085–60114 ———
29264cast_giant_blood_blast91974 60085–60114 ———
29260cast_giant_blood_column_blast91772 60085–60114 ———
29180cast_giant_bone_summon85890 60085–60114 ———
28990cast_giant_flame_column_blast78103 60085–60114 ———
28991cast_giant_rock_blastwave78104 60085–60114 ———
29206cast_giant_slash87784 60085–60114 ———
29207cast_giant_slash_spin87785 60085–60114 ———
29208cast_giant_sword_toss_aoe87786 60085–60114 ———
7667cast_glass_shattering9950 60085–60114 ———
1149cast_glowhand_sound_011390 1–843 ———
8280cast_glowhand_sound_0111023 60085–60114 ———
1150cast_glowhand_sound_031391 1–843 ———
8281cast_glowhand_sound_0311024 60085–60114 ———
1151cast_glowhand_sound_041392 1–843 ———
8282cast_glowhand_sound_0411025 60085–60114 ———
1152cast_glowhand_sound_051393 1–843 ———
8283cast_glowhand_sound_0511026 60085–60114 ———
1153cast_glowhand_sound_061394 1–843 ———
8284cast_glowhand_sound_0611027 60085–60114 ———
1148cast_glowhand__sound_021389 1–843 ———
8279cast_glowhand__sound_0211022 60085–60114 ———
2077cast_glow_distort2561 1–843 ———
7121cast_glow_distort2561 60085–60114 ———
2663cast_glow_distort23460 1–843 ———
7354cast_glow_distort23460 60085–60114 ———
29661cast_glow_eyes_red97588 60085–60114 ———
1145cast_glow_ring_wavyrays1386 1–843 ———
6865cast_glow_ring_wavyrays1386 60085–60114 ———
1146cast_glow_ring_wavyrays_l1387 1–843 ———
6866cast_glow_ring_wavyrays_l1387 60085–60114 ———
1147cast_glow_ring_wavyrays_r1388 1–843 ———
6867cast_glow_ring_wavyrays_r1388 60085–60114 ———
14691cast_godly_port23857 60085–60114 ———
14722cast_godly_port_exit23929 60085–60114 ———
12564cast_god_blast19043 60085–60114 ———
2615cast_gold_sparkletrace_l3358 1–843 ———
7314cast_gold_sparkletrace_l3358 60085–60114 ———
2616cast_gold_sparkletrace_r3359 1–843 ———
7315cast_gold_sparkletrace_r3359 60085–60114 ———
2617cast_gold_trace_l3360 1–843 ———
7316cast_gold_trace_l3360 60085–60114 ———
2618cast_gold_trace_r3361 1–843 ———
7317cast_gold_trace_r3361 60085–60114 ———
17435cast_golem_head_summon32420 60085–60114 ———
12348cast_goo_bubble_bursting18509 60085–60114 ———
29034cast_grim_reaper80207 60085–60114 ———
28907cast_ground_shadow_gather74739 60085–60114 ———
1154cast_gsswipe_01_snd1395 1–843 ———
8285cast_gsswipe_01_snd11028 60085–60114 ———
1155cast_gsswipe_02_snd1396 1–843 ———
8286cast_gsswipe_02_snd11029 60085–60114 ———
1156cast_gsswipe_03_snd1397 1–843 ———
8287cast_gsswipe_03_snd11030 60085–60114 ———
17369cast_guardian32137 60085–60114 ———
17154cast_guardian_mythical_fx31234 60085–60114 ———
14177cast_hammer_hands22468 60085–60114 ———
1335cast_hammer_sparkling_floating1581 1–843 ———
6938cast_hammer_sparkling_floating1581 60085–60114 ———
1002cast_hammer_toss1228 1–843 ———
6786cast_hammer_toss1228 60085–60114 ———
891cast_handswipe_snd1082 1–843 ———
8289cast_handswipe_snd11032 60085–60114 ———
29247cast_hands_buff90971 60085–60114 ———
1263cast_hands_elec_nightblood1504 1–843 ———
8288cast_hands_elec_nightblood11031 60085–60114 ———
29647cast_hands_fire97154 60085–60114 ———
29648cast_hands_smoke_dark97155 60085–60114 ———
29627cast_hand_bursts96923 60085–60114 ———
12330cast_hand_energy_artifact18467 60085–60114 ———
17177cast_hand_fireball31291 60085–60114 ———
17234cast_hand_fireball_blast31386 60085–60114 ———
15890cast_hand_fire_trails26303 60085–60114 ———
17331cast_hand_fx_in31922 60085–60114 ———
11990cast_hand_slash17695 60085–60114 ———
14006cast_head_souls21970 60085–60114 ———
14007cast_head_spikes21971 60085–60114 ———
407cast_heal146 1–843 ———
6674cast_heal146 60085–60114 ———
13963cast_heal_ball21880 60085–60114 ———
17451cast_heal_ball_gather32701 60085–60114 ———
408cast_heal_blur147 1–843 ———
6675cast_heal_blur147 60085–60114 ———
11812cast_heat_sphere17232 60085–60114 ———
28482cast_hiss_energy_metallic_snd66199 60085–60114 ———
10921cast_horn_blowing_end15122 60085–60114 ———
10922cast_horn_blowing_loop15123 60085–60114 ———
13819cast_hot_water_douse21616 60085–60114 ———
1157cast_howlverb_sound1398 1–843 ———
8290cast_howlverb_sound11033 60085–60114 ———
3429cast_howl_of_dragon6743 1–843 ———
1512cast_hrb_choral_snd1815 1–843 ———
8291cast_hrb_choral_snd11034 60085–60114 ———
1513cast_hrb_rune_snd1816 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.