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
20996kill_sparkle0345727 60085–60114 ———
5229kill_sparkle_trail35224 1–843 ———
20997kill_sparkle_trail45728 60085–60114 ———
21943kill_sparkle_trail_weapon48643 60085–60114 ———
21944kill_sparkle_trail_weapon_spiral48644 60085–60114 ———
20998kill_sparks45729 60085–60114 ———
6514kill_sparks_lf39027 1–843 ———
20999kill_sparks_lf45730 60085–60114 ———
6515kill_sparks_lr39028 1–843 ———
21000kill_sparks_lr45731 60085–60114 ———
6516kill_sparks_rf39029 1–843 ———
21001kill_sparks_rf45732 60085–60114 ———
6517kill_sparks_rr39030 1–843 ———
21002kill_sparks_rr45733 60085–60114 ———
5188kill_spark_circle0135173 1–843 ———
20986kill_spark_circle0145717 60085–60114 ———
5189kill_spark_circle0235174 1–843 ———
20987kill_spark_circle0245718 60085–60114 ———
5190kill_spark_circle0335175 1–843 ———
20988kill_spark_circle0345719 60085–60114 ———
5224kill_spark_circle0435219 1–843 ———
20989kill_spark_circle0445720 60085–60114 ———
5225kill_spark_circle0535220 1–843 ———
20990kill_spark_circle0545721 60085–60114 ———
5191kill_spark_sphere0135176 1–843 ———
20991kill_spark_sphere0145722 60085–60114 ———
20992kill_spark_sphere_ws45723 60085–60114 ———
20993kill_spark_sphere_ws_lefthand45724 60085–60114 ———
24218kill_spark_trail_lf53539 60085–60114 ———
24219kill_spark_trail_lr53540 60085–60114 ———
24220kill_spark_trail_rf53541 60085–60114 ———
24221kill_spark_trail_rr53542 60085–60114 ———
25794kill_spawn57497 60085–60114 ———
25803kill_spawn_idle57548 60085–60114 ———
3834kill_speaknoevil33389 1–843 ———
21003kill_speaknoevil45734 60085–60114 ———
21690kill_special47757 60085–60114 ———
4462kill_spellcast0134269 1–843 ———
21004kill_spellcast0145735 60085–60114 ———
4463kill_spellcast0234270 1–843 ———
21005kill_spellcast0245736 60085–60114 ———
24608kill_spell_cage_hit54358 60085–60114 ———
3835kill_spell_placeholder33394 1–843 ———
17549kill_spell_placeholder33394 60085–60114 ———
3836kill_spell_root33395 1–843 ———
17550kill_spell_root33395 60085–60114 ———
4608kill_spell_root_colored34433 1–843 ———
17755kill_spell_root_colored34433 60085–60114 ———
30196kill_spider_backup8454622 60085–60114 ———
30197kill_spider_fall8454623 60085–60114 ———
30198kill_spider_fly_backup8454624 60085–60114 ———
30199kill_spider_fly_glide8454625 60085–60114 ———
30200kill_spider_fly_idle8454626 60085–60114 ———
30201kill_spider_fly_run8454627 60085–60114 ———
30202kill_spider_fly_strafe_left8454628 60085–60114 ———
30203kill_spider_fly_strafe_right8454629 60085–60114 ———
30204kill_spider_fly_turn_left8454630 60085–60114 ———
30205kill_spider_fly_turn_right8454631 60085–60114 ———
30206kill_spider_fly_walk8454632 60085–60114 ———
30207kill_spider_idle8454633 60085–60114 ———
30208kill_spider_idle018454634 60085–60114 ———
30209kill_spider_jump8454635 60085–60114 ———
30210kill_spider_jump_substitute8454636 60085–60114 ———
30211kill_spider_land8454637 60085–60114 ———
30636kill_spider_loc_walk8459322 60085–60114 ———
30212kill_spider_long_fall8454638 60085–60114 ———
30181kill_spider_mount_backup8454543 60085–60114 ———
30182kill_spider_mount_fall8454544 60085–60114 ———
30183kill_spider_mount_idle8454545 60085–60114 ———
30184kill_spider_mount_jump8454546 60085–60114 ———
30185kill_spider_mount_jump_substitute8454547 60085–60114 ———
30186kill_spider_mount_land8454548 60085–60114 ———
30187kill_spider_mount_long_fall8454549 60085–60114 ———
30188kill_spider_mount_mount_jump_substitute8454550 60085–60114 ———
30189kill_spider_mount_run8454551 60085–60114 ———
30190kill_spider_mount_turn_left8454552 60085–60114 ———
30191kill_spider_mount_turn_right8454553 60085–60114 ———
30192kill_spider_mount_walk8454554 60085–60114 ———
30213kill_spider_run8454639 60085–60114 ———
30214kill_spider_turn_left8454640 60085–60114 ———
30215kill_spider_turn_right8454641 60085–60114 ———
30216kill_spider_walk8454642 60085–60114 ———
6443kill_spider_webbshoot_snd38418 1–843 ———
21006kill_spider_webbshoot_snd45737 60085–60114 ———
6444kill_spider_webcover_snd38419 1–843 ———
21007kill_spider_webcover_snd45738 60085–60114 ———
21836kill_spike_ball0148306 60085–60114 ———
21837kill_spike_ball0248307 60085–60114 ———
21838kill_spike_ball0348308 60085–60114 ———
21951kill_spike_fist48675 60085–60114 ———
5388kill_spinningwheel0135497 1–843 ———
21008kill_spinningwheel0145739 60085–60114 ———
5389kill_spinningwheel0235498 1–843 ———
21009kill_spinningwheel0245740 60085–60114 ———
5155kill_spinningwheel0435113 1–843 ———
21010kill_spinningwheel0445741 60085–60114 ———
5390kill_spinningwheel_success35499 1–843 ———
21011kill_spinningwheel_success45742 60085–60114 ———
5391kill_spinningwheel_success0235500 1–843 ———
21012kill_spinningwheel_success0245743 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.