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
2804cast_spark_cage_aoe3949 1–843 ———
7423cast_spark_cage_aoe3949 60085–60114 ———
2594cast_spark_cage_neg3256 1–843 ———
7294cast_spark_cage_neg3256 60085–60114 ———
2805cast_spark_cage_neg_aoe3950 1–843 ———
7424cast_spark_cage_neg_aoe3950 60085–60114 ———
439cast_spark_circle184 1–843 ———
6705cast_spark_circle184 60085–60114 ———
2207cast_spark_shield2754 1–843 ———
7181cast_spark_shield2754 60085–60114 ———
2595cast_spark_shield23257 1–843 ———
7295cast_spark_shield23257 60085–60114 ———
2596cast_spark_shield_neg3258 1–843 ———
7296cast_spark_shield_neg3258 60085–60114 ———
1020cast_spark_sphere1259 1–843 ———
6794cast_spark_sphere1259 60085–60114 ———
2627cast_spark_sphere_blend3377 1–843 ———
7324cast_spark_sphere_blend3377 60085–60114 ———
2092cast_spark_sphere_ws_p52597 1–843 ———
7133cast_spark_sphere_ws_p52597 60085–60114 ———
2148cast_spark_sphere_ws_red_p52687 1–843 ———
7160cast_spark_sphere_ws_red_p52687 60085–60114 ———
11844cast_speed_buff17354 60085–60114 ———
11988cast_speed_trail17689 60085–60114 ———
13807cast_speed_trail_shadow21570 60085–60114 ———
1171cast_sphere_lightning1412 1–843 ———
6868cast_sphere_lightning1412 60085–60114 ———
1172cast_sphere_lightning21413 1–843 ———
6869cast_sphere_lightning21413 60085–60114 ———
1173cast_sphere_lightning_r1414 1–843 ———
6870cast_sphere_lightning_r1414 60085–60114 ———
29363cast_spiderbear_poison_blastwave94098 60085–60114 ———
29364cast_spiderbear_web_spray_back94099 60085–60114 ———
28286cast_spider_gather65608 60085–60114 ———
28287cast_spider_legs65609 60085–60114 ———
28288cast_spider_reappear65610 60085–60114 ———
28289cast_spider_vanish65611 60085–60114 ———
28577cast_spinning_fx66375 60085–60114 ———
11766cast_spin_buff17106 60085–60114 ———
12868cast_spin_flash_buff19656 60085–60114 ———
989cast_spiral_trace1212 1–843 ———
6782cast_spiral_trace1212 60085–60114 ———
14067cast_spirit_hands22149 60085–60114 ———
14068cast_spirit_sands22150 60085–60114 ———
14069cast_spirit_shell_buff22151 60085–60114 ———
13956cast_split_beam_flash21864 60085–60114 ———
13957cast_split_copy21865 60085–60114 ———
15118cast_spore_spew25029 60085–60114 ———
441cast_spotsparks_ring186 1–843 ———
6707cast_spotsparks_ring186 60085–60114 ———
1264cast_spotsparks_ring21505 1–843 ———
6905cast_spotsparks_ring21505 60085–60114 ———
1265cast_spotsparks_ring31506 1–843 ———
6906cast_spotsparks_ring31506 60085–60114 ———
16314cast_squid_loop28054 60085–60114 ———
3371cast_start6476 1–843 ———
1067cast_startlow_snd1308 1–843 ———
8351cast_startlow_snd11096 60085–60114 ———
898cast_startthunder_snd1089 1–843 ———
8352cast_startthunder_snd11097 60085–60114 ———
2211cast_statue2758 1–843 ———
7185cast_statue2758 60085–60114 ———
8353cast_steam_breath11098 60085–60114 ———
12510cast_stomp_blast_aoe18882 60085–60114 ———
29679cast_stone_cone_blast98233 60085–60114 ———
29256cast_stone_dust_kick91572 60085–60114 ———
29265cast_stone_elem_rock_uprising92166 60085–60114 ———
12599cast_stone_gaze19141 60085–60114 ———
29257cast_stone_shockwave91573 60085–60114 ———
29269cast_stone_shock_wave_ground92368 60085–60114 ———
15788cast_storm_light_parting26114 60085–60114 ———
15789cast_storm_rain_lightning26115 60085–60114 ———
29229cast_storm_shifting_winds89594 60085–60114 ———
29230cast_storm_surge_blast89595 60085–60114 ———
2109cast_stun_stars2626 1–843 ———
7142cast_stun_stars2626 60085–60114 ———
2245cast_stun_stars_sub2799 1–843 ———
7208cast_stun_stars_sub2799 60085–60114 ———
12036cast_sucking_charge_up17811 60085–60114 ———
12399cast_summon18632 60085–60114 ———
1328cast_summoner1574 1–843 ———
6932cast_summoner1574 60085–60114 ———
12320cast_summoner_wheel_back18445 60085–60114 ———
12321cast_summoner_wheel_base18446 60085–60114 ———
12322cast_summoner_wheel_forward18447 60085–60114 ———
3372cast_summoning6477 1–843 ———
15093cast_summon_draconian_cyclone24899 60085–60114 ———
15094cast_summon_draconian_necro24900 60085–60114 ———
13622cast_summon_elemental_cyclone21134 60085–60114 ———
1775cast_summon_end2092 1–843 ———
8354cast_summon_end11099 60085–60114 ———
1776cast_summon_loop2093 1–843 ———
8355cast_summon_loop11100 60085–60114 ———
1777cast_summon_start2094 1–843 ———
8356cast_summon_start11101 60085–60114 ———
11007cast_summon_undead_assemble15232 60085–60114 ———
11008cast_summon_undead_cyclone15233 60085–60114 ———
11228cast_summon_undead_cyclone_green16095 60085–60114 ———
11009cast_summon_undead_flame_spurt15234 60085–60114 ———
11010cast_summon_undead_yawn15235 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.