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
9344result_copter_flamethrower12099 60085–60114 ———
7627result_copter_welder_lightning_p2p8991 60085–60114 ———
28586result_corruption_aura66498 60085–60114 ———
29055result_corruption_aura_purple80802 60085–60114 ———
29659result_corruption_big97383 60085–60114 ———
15129result_corruption_spew25051 60085–60114 ———
2763result_corruptive_symbol_p2p3826 1–843 ———
7408result_corruptive_symbol_p2p3826 60085–60114 ———
10887result_countersong_p2p14937 60085–60114 ———
14128result_crate_explode22280 60085–60114 ———
3425result_crazy_tube6701 1–843 ———
7580result_crazy_tube6701 60085–60114 ———
3426result_crazy_tube_iron6702 1–843 ———
7581result_crazy_tube_iron6702 60085–60114 ———
2655result_creature_fire_ls3441 1–843 ———
7346result_creature_fire_ls3441 60085–60114 ———
11831result_crush_blast17297 60085–60114 ———
13063result_crush_rings19918 60085–60114 ———
2629result_crystal_ring3379 1–843 ———
7325result_crystal_ring3379 60085–60114 ———
1231result_crystal_shield1472 1–843 ———
6889result_crystal_shield1472 60085–60114 ———
11918result_crystal_trap17519 60085–60114 ———
11989result_cyclone_bones17692 60085–60114 ———
2957result_cyclone_fire4569 1–843 ———
7480result_cyclone_fire4569 60085–60114 ———
2960result_cyclone_rocks4580 1–843 ———
7483result_cyclone_rocks4580 60085–60114 ———
2961result_cyclone_sand4581 1–843 ———
7484result_cyclone_sand4581 60085–60114 ———
2958result_cyclone_snow4570 1–843 ———
7481result_cyclone_snow4570 60085–60114 ———
11475result_cyclone_storm16565 60085–60114 ———
14629result_cyclops_eye_debuff23697 60085–60114 ———
11813result_dagger_back17239 60085–60114 ———
10777result_dagger_vision_p2p14175 60085–60114 ———
16329result_damaged28095 60085–60114 ———
28976result_damage_body_explosions77263 60085–60114 ———
28977result_damage_body_lightning_explosions77264 60085–60114 ———
28971result_damage_explosions77026 60085–60114 ———
28972result_damage_lightning77027 60085–60114 ———
2553result_darkness_skull_buff3196 1–843 ———
7270result_darkness_skull_buff3196 60085–60114 ———
13677result_dark_bubbles_rising21299 60085–60114 ———
29177result_dark_flame_portal_blast85633 60085–60114 ———
12022result_dark_mist17787 60085–60114 ———
15913result_dark_vaporize26371 60085–60114 ———
12610result_dark_wings19172 60085–60114 ———
3293result_dawn_rising6156 1–843 ———
9345result_dawn_rising12100 60085–60114 ———
10873result_deathward_heal14869 60085–60114 ———
14724result_death_charge_blast23936 60085–60114 ———
1765result_decree_of_faith2082 1–843 ———
7068result_decree_of_faith2082 60085–60114 ———
7927result_defiler_poison_cloud10584 60085–60114 ———
3075result_desert_call_p2p4923 1–843 ———
7516result_desert_call_p2p4923 60085–60114 ———
2750result_devastation_fist_13807 1–843 ———
7401result_devastation_fist_13807 60085–60114 ———
2751result_devastation_fist_23808 1–843 ———
7402result_devastation_fist_23808 60085–60114 ———
2752result_devastation_fist_33809 1–843 ———
7403result_devastation_fist_33809 60085–60114 ———
2895result_devastation_fist_3a4341 1–843 ———
7459result_devastation_fist_3a4341 60085–60114 ———
7671result_dirge_confront_fear9985 60085–60114 ———
7883result_dirge_sparkles10392 60085–60114 ———
12585result_diseased19101 60085–60114 ———
12372result_disintegrate18561 60085–60114 ———
1598result_dispell1_out1905 1–843 ———
7022result_dispell1_out1905 60085–60114 ———
2630result_dispell1_out_blend3380 1–843 ———
7326result_dispell1_out_blend3380 60085–60114 ———
17452result_dissipate32715 60085–60114 ———
17392result_dissonance_barrier32306 60085–60114 ———
1720result_distort_dot2031 1–843 ———
7058result_distort_dot2031 60085–60114 ———
1721result_distort_hit2032 1–843 ———
7059result_distort_hit2032 60085–60114 ———
29227result_divine_debuff_aoe89212 60085–60114 ———
28993result_dome_ice_impact78275 60085–60114 ———
28994result_dome_impact78276 60085–60114 ———
10874result_doppleganger_p2p14870 60085–60114 ———
1605result_dps_decrease1913 1–843 ———
7029result_dps_decrease1913 60085–60114 ———
3355result_dragonbreath6435 1–843 ———
7566result_dragonbreath6435 60085–60114 ———
12144result_dragon_breath_p2p18020 60085–60114 ———
3285result_dragon_cone_roar6091 1–843 ———
7554result_dragon_cone_roar6091 60085–60114 ———
3280result_dragon_fire_spiral6065 1–843 ———
9346result_dragon_fire_spiral12101 60085–60114 ———
2639result_dragon_flight_fetters3404 1–843 ———
7332result_dragon_flight_fetters3404 60085–60114 ———
3276result_dragon_shield_fire6054 1–843 ———
9347result_dragon_shield_fire12102 60085–60114 ———
3253result_dragon_shield_lightning6005 1–843 ———
9348result_dragon_shield_lightning12103 60085–60114 ———
3254result_dragon_shield_lightning_02a6006 1–843 ———
9349result_dragon_shield_lightning_02a12104 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.