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
4768kill_cast_rune_ring_rotate34641 1–843 ———
17804kill_cast_rune_ring_rotate34641 60085–60114 ———
5822kill_cast_rune_ring_rotate_persist36131 1–843 ———
18112kill_cast_rune_ring_rotate_persist36131 60085–60114 ———
4368kill_cast_rune_sound_0134175 1–843 ———
19132kill_cast_rune_sound_0143851 60085–60114 ———
4369kill_cast_rune_sound_0234176 1–843 ———
19133kill_cast_rune_sound_0243852 60085–60114 ———
4370kill_cast_rune_sound_0334177 1–843 ———
19134kill_cast_rune_sound_0343853 60085–60114 ———
4371kill_cast_rune_sound_0434178 1–843 ———
19135kill_cast_rune_sound_0443854 60085–60114 ———
22642kill_cast_rune_spiral_buff50130 60085–60114 ———
24960kill_cast_sacrifice_blast55205 60085–60114 ———
26558kill_cast_sacrifice_disperse58780 60085–60114 ———
26559kill_cast_sacrifice_stab58781 60085–60114 ———
5103kill_cast_sawdust35038 1–843 ———
17898kill_cast_sawdust35038 60085–60114 ———
31401kill_cast_scale_shake_off8484808 60085–60114 ———
4221kill_cast_scimitar_toss34026 1–843 ———
17587kill_cast_scimitar_toss34026 60085–60114 ———
4400kill_cast_scout34207 1–843 ———
17671kill_cast_scout34207 60085–60114 ———
28085kill_cast_scout_aa_reassignment_fx64453 60085–60114 ———
24617kill_cast_scream54412 60085–60114 ———
30842kill_cast_scythe_shadow8469228 60085–60114 ———
30843kill_cast_scythe_shadow_sarnak8469229 60085–60114 ———
23324kill_cast_sea_dragon_breath51706 60085–60114 ———
23325kill_cast_sea_dragon_inhale51707 60085–60114 ———
23326kill_cast_sea_dragon_powerup51708 60085–60114 ———
25910kill_cast_seed_spew57796 60085–60114 ———
5099kill_cast_shadowknight35031 1–843 ———
17896kill_cast_shadowknight35031 60085–60114 ———
27955kill_cast_shadowknight_mythical_fx64012 60085–60114 ———
26573kill_cast_shadow_appear58853 60085–60114 ———
27184kill_cast_shadow_breath61122 60085–60114 ———
24600kill_cast_shadow_gather54337 60085–60114 ———
24810kill_cast_shadow_vortex54778 60085–60114 ———
4528kill_cast_shaman34340 1–843 ———
17724kill_cast_shaman34340 60085–60114 ———
21975kill_cast_shards48734 60085–60114 ———
21976kill_cast_shards_blast48735 60085–60114 ———
21985kill_cast_shards_fusion48750 60085–60114 ———
21986kill_cast_shards_merging48751 60085–60114 ———
21982kill_cast_shard_cloud_blast48747 60085–60114 ———
21983kill_cast_shard_lightning48748 60085–60114 ———
21984kill_cast_shard_pulse48749 60085–60114 ———
27782kill_cast_shell_note_gather63557 60085–60114 ———
22612kill_cast_shield_buff50021 60085–60114 ———
22630kill_cast_shield_deflect50086 60085–60114 ———
4670kill_cast_shield_grow34519 1–843 ———
19136kill_cast_shield_grow43855 60085–60114 ———
21647kill_cast_shield_grow_blend47452 60085–60114 ———
25482kill_cast_shield_slam_blast56621 60085–60114 ———
25480kill_cast_shooting_axes56615 60085–60114 ———
25461kill_cast_shoot_fire_arrows56585 60085–60114 ———
19137kill_cast_shortbreath43856 60085–60114 ———
22624kill_cast_shout_aoe50062 60085–60114 ———
30830kill_cast_skull_crossbones_icon8468818 60085–60114 ———
21872kill_cast_skull_grow48467 60085–60114 ———
27024kill_cast_skull_head_blast60440 60085–60114 ———
30962kill_cast_skull_rain_area8473441 60085–60114 ———
25481kill_cast_slashing_axes56616 60085–60114 ———
25708kill_cast_slashing_claws57207 60085–60114 ———
30218kill_cast_slash_charge_up8454652 60085–60114 ———
25462kill_cast_slash_trail56586 60085–60114 ———
4442kill_cast_snake_idling34249 1–843 ———
17684kill_cast_snake_idling34249 60085–60114 ———
4628kill_cast_snake_shrinking34454 1–843 ———
17759kill_cast_snake_shrinking34454 60085–60114 ———
4372kill_cast_sneak_sound34179 1–843 ———
19138kill_cast_sneak_sound43857 60085–60114 ———
26713kill_cast_sonic_blast59164 60085–60114 ———
21873kill_cast_sonic_ring48468 60085–60114 ———
21874kill_cast_sonic_ring_vertical48469 60085–60114 ———
27814kill_cast_sonic_shout63662 60085–60114 ———
5349kill_cast_soothe_burst35454 1–843 ———
17953kill_cast_soothe_burst35454 60085–60114 ———
4529kill_cast_sorcerer34341 1–843 ———
17725kill_cast_sorcerer34341 60085–60114 ———
25463kill_cast_soul_attack_blast56587 60085–60114 ———
30989kill_cast_soul_hunt_aoe8475603 60085–60114 ———
30990kill_cast_soul_hunt_ranged_aoe8475604 60085–60114 ———
18441kill_cast_soul_paralysis42525 60085–60114 ———
5862kill_cast_sparkle236216 1–843 ———
18144kill_cast_sparkle236216 60085–60114 ———
5066kill_cast_sparkles_in34966 1–843 ———
17885kill_cast_sparkles_in34966 60085–60114 ———
4094kill_cast_sparklewave_01_snd33852 1–843 ———
19140kill_cast_sparklewave_01_snd43859 60085–60114 ———
4095kill_cast_sparklewave_02_snd33853 1–843 ———
19141kill_cast_sparklewave_02_snd43860 60085–60114 ———
4096kill_cast_sparklewave_03_snd33854 1–843 ———
19142kill_cast_sparklewave_03_snd43861 60085–60114 ———
4097kill_cast_sparklewave_04_snd33855 1–843 ———
19143kill_cast_sparklewave_04_snd43862 60085–60114 ———
4098kill_cast_sparklewave_05_snd33856 1–843 ———
19144kill_cast_sparklewave_05_snd43863 60085–60114 ———
5351kill_cast_sparkle_trail_fire_head35456 1–843 ———
17955kill_cast_sparkle_trail_fire_head35456 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.