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
15821aa_flurry_daggers26173 60085–60114 ———
15822aa_forced_shader_burst26174 60085–60114 ———
16722aa_frenzy29626 60085–60114 ———
16578aa_frozen_rain29137 60085–60114 ———
15823aa_glow_eyes26175 60085–60114 ———
16711aa_hammer_buff29548 60085–60114 ———
16724aa_hammer_smite29644 60085–60114 ———
15824aa_hand_buff26176 60085–60114 ———
15825aa_hand_cross_dark26177 60085–60114 ———
15826aa_hand_dark_rings26178 60085–60114 ———
15827aa_hand_flare26179 60085–60114 ———
15828aa_hand_leaf26180 60085–60114 ———
16768aa_hand_notes29768 60085–60114 ———
15829aa_hand_pattern26181 60085–60114 ———
15830aa_hand_runes26182 60085–60114 ———
15831aa_hand_sparkles26183 60085–60114 ———
15832aa_hand_sparkles_dark26184 60085–60114 ———
15833aa_hand_sparks26185 60085–60114 ———
16769aa_hand_spin_notes29769 60085–60114 ———
15834aa_hand_stars26186 60085–60114 ———
15835aa_hand_stars_dark26187 60085–60114 ———
15836aa_head_halo26188 60085–60114 ———
16586aa_head_skeleton_hands_blast29168 60085–60114 ———
28255aa_heal_arrow_blast65499 60085–60114 ———
16721aa_heal_flourish29619 60085–60114 ———
15837aa_heal_hands_blast26189 60085–60114 ———
16587aa_heal_skeleton_hands_blast29169 60085–60114 ———
16592aa_heal_splash29180 60085–60114 ———
17170aa_holy_circle_summon31268 60085–60114 ———
29707aa_holy_spin_ward98674 60085–60114 ———
29708aa_huge_damage_shield98675 60085–60114 ———
15838aa_ice_comet26190 60085–60114 ———
15839aa_ice_comet_shower26191 60085–60114 ———
29796aa_instant_summon_buff101556 60085–60114 ———
16717aa_lance_attack29566 60085–60114 ———
16032aa_lightning_blast_hit26901 60085–60114 ———
15841aa_lightning_bolt26193 60085–60114 ———
16593aa_lightning_siphon29181 60085–60114 ———
15840aa_light_ward26192 60085–60114 ———
29713aa_mana_damage_shield98883 60085–60114 ———
15842aa_massive_hit26194 60085–60114 ———
16050aa_mental_damage27029 60085–60114 ———
16051aa_mental_smite27030 60085–60114 ———
29294aa_music_band93264 60085–60114 ———
15843aa_music_beam_p2p26195 60085–60114 ———
16770aa_music_blast_ball29770 60085–60114 ———
16771aa_music_bubble29771 60085–60114 ———
16619aa_music_dagger_buff29251 60085–60114 ———
16594aa_nature_heal29182 60085–60114 ———
15958aa_notes_blast26565 60085–60114 ———
16772aa_notes_shield29772 60085–60114 ———
16782aa_notes_swirling29788 60085–60114 ———
16285aa_ooze_summon27954 60085–60114 ———
16588aa_planar_fire_blast29170 60085–60114 ———
16718aa_plane_shift29567 60085–60114 ———
15844aa_plasma_hit26196 60085–60114 ———
15845aa_poison_spore_p2p26197 60085–60114 ———
15846aa_radiant_glow26198 60085–60114 ———
17430aa_reactive_buff32402 60085–60114 ———
16151aa_result_leash27302 60085–60114 ———
16133aa_rune_blur_circular27186 60085–60114 ———
15847aa_rune_buff_brawler26199 60085–60114 ———
16139aa_rune_chain_swirl27209 60085–60114 ———
16739aa_rune_debuff_all29699 60085–60114 ———
15848aa_rune_drop_base26200 60085–60114 ———
15849aa_rune_forward26201 60085–60114 ———
15850aa_rune_in_buff26202 60085–60114 ———
16678aa_rune_out_buff29421 60085–60114 ———
15851aa_rune_rise_base26203 60085–60114 ———
15852aa_rune_rise_buff26204 60085–60114 ———
16595aa_scimitar_cyclone29183 60085–60114 ———
16577aa_scythe_slash29130 60085–60114 ———
16589aa_second_skin29171 60085–60114 ———
16837aa_self_lifetap30085 60085–60114 ———
29714aa_shadow_copy98884 60085–60114 ———
17394aa_shield_barrier_buff32314 60085–60114 ———
17402aa_shield_barrier_heal32348 60085–60114 ———
15853aa_shimmer_arrow_p2p26205 60085–60114 ———
28256aa_shoot_arrow_rain65500 60085–60114 ———
16286aa_skull_summon27955 60085–60114 ———
16835aa_slashing_daggers30040 60085–60114 ———
16573aa_smoke_teleport29116 60085–60114 ———
15854aa_snow_tempest26206 60085–60114 ———
16052aa_soothe27031 60085–60114 ———
15855aa_sound_rings_head26207 60085–60114 ———
16620aa_sound_wave_blast29252 60085–60114 ———
15856aa_sparkle_trail_weapon_blend26208 60085–60114 ———
16712aa_speed_buff29549 60085–60114 ———
16736aa_spirit_circle_summon29690 60085–60114 ———
15857aa_spirit_growing26209 60085–60114 ———
16140aa_spirit_heal27210 60085–60114 ———
16709aa_spirit_mongoose29540 60085–60114 ———
16596aa_spirit_swirl_buff_ward29184 60085–60114 ———
16740aa_spirit_swirl_hit29700 60085–60114 ———
15858aa_spirit_swirl_shield26210 60085–60114 ———
16726aa_spirit_tree29658 60085–60114 ———
15959aa_stabbing_blades26566 60085–60114 ———
16138aa_summon_minion27202 60085–60114 ———
29715aa_summon_sniper98885 60085–60114 ———
15859aa_swirly_heal26211 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.