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
5410kill_cast_sparkle_trail_fire_lefthand35523 1–843 ———
17976kill_cast_sparkle_trail_fire_lefthand35523 60085–60114 ———
5712kill_cast_sparkle_trail_fire_lhand_neg35880 1–843 ———
18051kill_cast_sparkle_trail_fire_lhand_neg35880 60085–60114 ———
5713kill_cast_sparkle_trail_fire_rhand_neg35881 1–843 ———
18052kill_cast_sparkle_trail_fire_rhand_neg35881 60085–60114 ———
5411kill_cast_sparkle_trail_fire_righthand35524 1–843 ———
17977kill_cast_sparkle_trail_fire_righthand35524 60085–60114 ———
5412kill_cast_sparkle_trail_fire_righttolefthand35525 1–843 ———
17978kill_cast_sparkle_trail_fire_righttolefthand35525 60085–60114 ———
22844kill_cast_sparkling_dust_aoe50615 60085–60114 ———
3555kill_cast_sparktrail_spiral32953 1–843 ———
17500kill_cast_sparktrail_spiral32953 60085–60114 ———
19139kill_cast_spark_burst_righthand43858 60085–60114 ———
5574kill_cast_spark_burst_weaponrootright35734 1–843 ———
18040kill_cast_spark_burst_weaponrootright35734 60085–60114 ———
5408kill_cast_spark_cage35521 1–843 ———
17974kill_cast_spark_cage35521 60085–60114 ———
6007kill_cast_spark_cage_aoe36717 1–843 ———
18217kill_cast_spark_cage_aoe36717 60085–60114 ———
5797kill_cast_spark_cage_neg36024 1–843 ———
18088kill_cast_spark_cage_neg36024 60085–60114 ———
6008kill_cast_spark_cage_neg_aoe36718 1–843 ———
18218kill_cast_spark_cage_neg_aoe36718 60085–60114 ———
3554kill_cast_spark_circle32952 1–843 ———
17499kill_cast_spark_circle32952 60085–60114 ———
5409kill_cast_spark_shield35522 1–843 ———
17975kill_cast_spark_shield35522 60085–60114 ———
5798kill_cast_spark_shield236025 1–843 ———
18089kill_cast_spark_shield236025 60085–60114 ———
5799kill_cast_spark_shield_neg36026 1–843 ———
18090kill_cast_spark_shield_neg36026 60085–60114 ———
4222kill_cast_spark_sphere34027 1–843 ———
17588kill_cast_spark_sphere34027 60085–60114 ———
5830kill_cast_spark_sphere_blend36145 1–843 ———
18118kill_cast_spark_sphere_blend36145 60085–60114 ———
5294kill_cast_spark_sphere_ws_p535365 1–843 ———
17927kill_cast_spark_sphere_ws_p535365 60085–60114 ———
5350kill_cast_spark_sphere_ws_red_p535455 1–843 ———
17954kill_cast_spark_sphere_ws_red_p535455 60085–60114 ———
22638kill_cast_speed_buff50122 60085–60114 ———
22782kill_cast_speed_trail50457 60085–60114 ———
24601kill_cast_speed_trail_shadow54338 60085–60114 ———
4373kill_cast_sphere_lightning34180 1–843 ———
17662kill_cast_sphere_lightning34180 60085–60114 ———
4374kill_cast_sphere_lightning234181 1–843 ———
17663kill_cast_sphere_lightning234181 60085–60114 ———
4375kill_cast_sphere_lightning_r34182 1–843 ———
17664kill_cast_sphere_lightning_r34182 60085–60114 ———
31156kill_cast_spiderbear_poison_blastwave8482706 60085–60114 ———
31157kill_cast_spiderbear_web_spray_back8482707 60085–60114 ———
30081kill_cast_spider_gather8454216 60085–60114 ———
30082kill_cast_spider_legs8454217 60085–60114 ———
30083kill_cast_spider_reappear8454218 60085–60114 ———
30084kill_cast_spider_vanish8454219 60085–60114 ———
30372kill_cast_spinning_fx8454983 60085–60114 ———
22560kill_cast_spin_buff49874 60085–60114 ———
23662kill_cast_spin_flash_buff52424 60085–60114 ———
4191kill_cast_spiral_trace33980 1–843 ———
17576kill_cast_spiral_trace33980 60085–60114 ———
24861kill_cast_spirit_hands54917 60085–60114 ———
24862kill_cast_spirit_sands54918 60085–60114 ———
24863kill_cast_spirit_shell_buff54919 60085–60114 ———
24750kill_cast_split_beam_flash54632 60085–60114 ———
24751kill_cast_split_copy54633 60085–60114 ———
25911kill_cast_spore_spew57797 60085–60114 ———
3556kill_cast_spotsparks_ring32954 1–843 ———
17501kill_cast_spotsparks_ring32954 60085–60114 ———
4466kill_cast_spotsparks_ring234273 1–843 ———
17699kill_cast_spotsparks_ring234273 60085–60114 ———
4467kill_cast_spotsparks_ring334274 1–843 ———
17700kill_cast_spotsparks_ring334274 60085–60114 ———
27107kill_cast_squid_loop60822 60085–60114 ———
6574kill_cast_start39244 1–843 ———
4269kill_cast_startlow_snd34076 1–843 ———
19145kill_cast_startlow_snd43864 60085–60114 ———
4099kill_cast_startthunder_snd33857 1–843 ———
19146kill_cast_startthunder_snd43865 60085–60114 ———
5413kill_cast_statue35526 1–843 ———
17979kill_cast_statue35526 60085–60114 ———
19147kill_cast_steam_breath43866 60085–60114 ———
23304kill_cast_stomp_blast_aoe51650 60085–60114 ———
31470kill_cast_stone_cone_blast8486841 60085–60114 ———
31049kill_cast_stone_dust_kick8480180 60085–60114 ———
31058kill_cast_stone_elem_rock_uprising8480774 60085–60114 ———
23393kill_cast_stone_gaze51909 60085–60114 ———
31050kill_cast_stone_shockwave8480181 60085–60114 ———
31062kill_cast_stone_shock_wave_ground8480976 60085–60114 ———
26581kill_cast_storm_light_parting58882 60085–60114 ———
26582kill_cast_storm_rain_lightning58883 60085–60114 ———
31022kill_cast_storm_shifting_winds8478202 60085–60114 ———
31023kill_cast_storm_surge_blast8478203 60085–60114 ———
5311kill_cast_stun_stars35394 1–843 ———
17936kill_cast_stun_stars35394 60085–60114 ———
5447kill_cast_stun_stars_sub35567 1–843 ———
18002kill_cast_stun_stars_sub35567 60085–60114 ———
22830kill_cast_sucking_charge_up50579 60085–60114 ———
23193kill_cast_summon51400 60085–60114 ———
4530kill_cast_summoner34342 1–843 ———
17726kill_cast_summoner34342 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.