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
21645kill_result_shout47396 60085–60114 ———
5817kill_result_shower_of_daggers36123 1–843 ———
22042kill_result_shroud_of_clouds48905 60085–60114 ———
22026kill_result_sickly_aura_aoe48869 60085–60114 ———
21876kill_result_silence48473 60085–60114 ———
5300kill_result_silver_glow35372 1–843 ———
17933kill_result_silver_glow35372 60085–60114 ———
6276kill_result_singing_sword37682 1–843 ———
18309kill_result_singing_sword37682 60085–60114 ———
23694kill_result_singing_wind52485 60085–60114 ———
5967kill_result_skeleton_attacking36595 1–843 ———
18203kill_result_skeleton_attacking36595 60085–60114 ———
5925kill_result_skeleton_bowing36522 1–843 ———
18182kill_result_skeleton_bowing36522 60085–60114 ———
5913kill_result_skeleton_dancing36498 1–843 ———
18173kill_result_skeleton_dancing36498 60085–60114 ———
6100kill_result_skeleton_hand37125 1–843 ———
18254kill_result_skeleton_hand37125 60085–60114 ———
30960kill_result_skull_arrow_p2p8473249 60085–60114 ———
22663kill_result_skull_attack_p2p50190 60085–60114 ———
5809kill_result_skull_blast36112 1–843 ———
18100kill_result_skull_blast36112 60085–60114 ———
5779kill_result_skull_breath_poison_damage35996 1–843 ———
18074kill_result_skull_breath_poison_damage35996 60085–60114 ———
5810kill_result_skull_buff_limbs36113 1–843 ———
18101kill_result_skull_buff_limbs36113 60085–60114 ———
22847kill_result_skull_debuff50624 60085–60114 ———
30968kill_result_skull_hammer_head_pound8473848 60085–60114 ———
23458kill_result_skull_lifetap52060 60085–60114 ———
30958kill_result_skull_summon_blood_aoe8473050 60085–60114 ———
22658kill_result_slime_wall50173 60085–60114 ———
23665kill_result_slow52429 60085–60114 ———
24866kill_result_small_net54925 60085–60114 ———
4808kill_result_smite34682 1–843 ———
17824kill_result_smite34682 60085–60114 ———
4847kill_result_smite_234721 1–843 ———
17832kill_result_smite_234721 60085–60114 ———
5931kill_result_smoke_p2p36534 1–843 ———
18186kill_result_smoke_p2p36534 60085–60114 ———
18412kill_result_smoke_small_p540735 60085–60114 ———
4961kill_result_smoke_sphere34842 1–843 ———
17861kill_result_smoke_sphere34842 60085–60114 ———
6155kill_result_smoking_mesh37325 1–843 ———
18269kill_result_smoking_mesh37325 60085–60114 ———
4446kill_result_snake_striking34253 1–843 ———
17688kill_result_snake_striking34253 60085–60114 ———
18401kill_result_snoring_zzz39827 60085–60114 ———
24426kill_result_snotball_p2p53921 60085–60114 ———
21367kill_result_snowball_big_explosion46238 60085–60114 ———
23363kill_result_snowflakes_falling51825 60085–60114 ———
4700kill_result_snowflakes_growing34565 1–843 ———
17772kill_result_snowflakes_growing34565 60085–60114 ———
6234kill_result_snowflakes_radiating37504 1–843 ———
18295kill_result_snowflakes_radiating37504 60085–60114 ———
4701kill_result_snowstorm34566 1–843 ———
17773kill_result_snowstorm34566 60085–60114 ———
22551kill_result_snow_dust49836 60085–60114 ———
18428kill_result_soap_mouth42211 60085–60114 ———
21692kill_result_softkill47765 60085–60114 ———
5828kill_result_soldiers_instinct36137 1–843 ———
27975kill_result_solusek_nuke_blast64071 60085–60114 ———
28031kill_result_solusek_sun_beam_blast64184 60085–60114 ———
23149kill_result_sonic_trail51294 60085–60114 ———
18427kill_result_soulless42000 60085–60114 ———
21811kill_result_soulsuck_p2p48033 60085–60114 ———
22053kill_result_soul_attack_p2p48929 60085–60114 ———
30991kill_result_soul_purge8475612 60085–60114 ———
31029kill_result_soul_rip_portal8478410 60085–60114 ———
30574kill_result_soul_siphon_arc_p2p8456890 60085–60114 ———
4702kill_result_sparkles_clinging34567 1–843 ———
17774kill_result_sparkles_clinging34567 60085–60114 ———
6461kill_result_sparkles_clinging_dragon38778 1–843 ———
20170kill_result_sparkles_clinging_dragon44899 60085–60114 ———
4804kill_result_sparkles_clinging_soft34678 1–843 ———
17820kill_result_sparkles_clinging_soft34678 60085–60114 ———
6462kill_result_sparkles_clinging_soft_dragon38779 1–843 ———
20171kill_result_sparkles_clinging_soft_dragon44900 60085–60114 ———
23263kill_result_sparkles_cling_drop_bounce51577 60085–60114 ———
23126kill_result_sparkles_crackle_out51241 60085–60114 ———
5972kill_result_sparkles_explode36618 1–843 ———
18206kill_result_sparkles_explode36618 60085–60114 ———
21618kill_result_sparkles_explode_noise47188 60085–60114 ———
5865kill_result_sparkles_gathering36219 1–843 ———
18147kill_result_sparkles_gathering36219 60085–60114 ———
25800kill_result_sparkles_object_swirl57516 60085–60114 ———
5027kill_result_sparkles_out34910 1–843 ———
17881kill_result_sparkles_out34910 60085–60114 ———
6151kill_result_sparkles_radiating37314 1–843 ———
18267kill_result_sparkles_radiating37314 60085–60114 ———
4970kill_result_sparkle_blast34853 1–843 ———
17865kill_result_sparkle_blast34853 60085–60114 ———
5860kill_result_sparkle_fill36211 1–843 ———
18142kill_result_sparkle_fill36211 60085–60114 ———
22817kill_result_sparkle_mist50556 60085–60114 ———
5540kill_result_sparkle_scan_down35696 1–843 ———
18025kill_result_sparkle_scan_down35696 60085–60114 ———
5088kill_result_sparkle_scan_up35017 1–843 ———
17890kill_result_sparkle_scan_up35017 60085–60114 ———
6532kill_result_sparkle_soul39100 1–843 ———
18358kill_result_sparkle_soul39100 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.