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
18154kill_result_bat_swarm_appear36398 60085–60114 ———
5887kill_result_bat_swarm_attack36399 1–843 ———
18155kill_result_bat_swarm_attack36399 60085–60114 ———
5889kill_result_bat_swarm_p2p36408 1–843 ———
18157kill_result_bat_swarm_p2p36408 60085–60114 ———
5907kill_result_bat_swarm_persist36474 1–843 ———
18167kill_result_bat_swarm_persist36474 60085–60114 ———
4065kill_result_bear33822 1–843 ———
17568kill_result_bear33822 60085–60114 ———
21931kill_result_beehive_hit48611 60085–60114 ———
28233kill_result_beetle_barrier_buff65263 60085–60114 ———
26817kill_result_beetle_fireball_p2p59624 60085–60114 ———
21930kill_result_bee_breath48610 60085–60114 ———
22000kill_result_berserker_black_eyes48797 60085–60114 ———
22001kill_result_berserker_blue_eyes48798 60085–60114 ———
22002kill_result_berserker_purple_eyes48799 60085–60114 ———
18529kill_result_berserker_red_eyes42905 60085–60114 ———
22003kill_result_berserker_white_eyes48800 60085–60114 ———
18643kill_result_beserker_red_eyes43075 60085–60114 ———
4805kill_result_bestowal_of_vitae34679 1–843 ———
17821kill_result_bestowal_of_vitae34679 60085–60114 ———
30322kill_result_billiard_hit8454859 60085–60114 ———
23689kill_result_billowing_energy52474 60085–60114 ———
24384kill_result_bind_wound53806 60085–60114 ———
20132kill_result_bladebarrier44861 60085–60114 ———
18442kill_result_blanket_of_eternal_night42531 60085–60114 ———
4257kill_result_blast_cone34063 1–843 ———
17607kill_result_blast_cone34063 60085–60114 ———
21912kill_result_blast_cone_aoe48561 60085–60114 ———
22255kill_result_blast_double_cone_aoe49295 60085–60114 ———
23456kill_result_blast_hit52058 60085–60114 ———
22811kill_result_blast_ring50536 60085–60114 ———
5853kill_result_blessing_of_faith36201 1–843 ———
18135kill_result_blessing_of_faith36201 60085–60114 ———
23856kill_result_blinded52685 60085–60114 ———
4880kill_result_bloodlust34754 1–843 ———
17842kill_result_bloodlust34754 60085–60114 ———
4955kill_result_bloodlust_234833 1–843 ———
17858kill_result_bloodlust_234833 60085–60114 ———
5776kill_result_bloodlust_335993 1–843 ———
18071kill_result_bloodlust_335993 60085–60114 ———
6027kill_result_bloodlust_aoe36798 1–843 ———
18226kill_result_bloodlust_aoe36798 60085–60114 ———
22514kill_result_blood_boil49702 60085–60114 ———
26947kill_result_blood_craze60107 60085–60114 ———
26948kill_result_blood_craze_p2p60108 60085–60114 ———
27027kill_result_blood_dark60447 60085–60114 ———
30169kill_result_blood_essence_buff8454467 60085–60114 ———
30170kill_result_blood_essence_dead8454468 60085–60114 ———
30171kill_result_blood_essence_gather8454469 60085–60114 ———
31054kill_result_blood_lifetap_p2p8480390 60085–60114 ———
22547kill_result_blood_puddle49832 60085–60114 ———
30967kill_result_blood_soul_siphon_p2p8473847 60085–60114 ———
30965kill_result_blood_spirits_mezz8473648 60085–60114 ———
31055kill_result_blood_spray_p2p8480391 60085–60114 ———
31043kill_result_blood_tap_rings8479591 60085–60114 ———
26949kill_result_blood_wash60109 60085–60114 ———
25412kill_result_blue_aura56434 60085–60114 ———
22496kill_result_blue_glow49670 60085–60114 ———
5867kill_result_blue_whirlwind36232 1–843 ———
18149kill_result_blue_whirlwind36232 60085–60114 ———
31640kill_result_boasting_glowout8492533 60085–60114 ———
24527kill_result_body_fire54238 60085–60114 ———
24528kill_result_body_lightning_purple54239 60085–60114 ———
24529kill_result_body_snow54240 60085–60114 ———
31405kill_result_body_tremors8484818 60085–60114 ———
6064kill_result_bone_blast36929 1–843 ———
18243kill_result_bone_blast36929 60085–60114 ———
4926kill_result_bone_cage_134804 1–843 ———
17854kill_result_bone_cage_134804 60085–60114 ———
30959kill_result_bone_claw_ground_attack8473248 60085–60114 ———
23144kill_result_bone_cyclone51283 60085–60114 ———
6065kill_result_bone_glow36930 1–843 ———
18244kill_result_bone_glow36930 60085–60114 ———
6518kill_result_bone_glow_239037 1–843 ———
18352kill_result_bone_glow_239037 60085–60114 ———
27373kill_result_bone_glow_361914 60085–60114 ———
30963kill_result_bone_shard_blast8473449 60085–60114 ———
31379kill_result_bone_spear_p2p8484317 60085–60114 ———
18390kill_result_bonfire39634 60085–60114 ———
22258kill_result_book_hit49304 60085–60114 ———
24431kill_result_book_hover53949 60085–60114 ———
23148kill_result_boot_kick51293 60085–60114 ———
22535kill_result_brain_leaving49780 60085–60114 ———
5908kill_result_brain_leech_p2p36475 1–843 ———
18168kill_result_brain_leech_p2p36475 60085–60114 ———
5827kill_result_bravos_dance36136 1–843 ———
22237kill_result_bread_hit49255 60085–60114 ———
5874kill_result_breakable_wall36341 1–843 ———
18152kill_result_breakable_wall36341 60085–60114 ———
5863kill_result_breaking_faith36217 1–843 ———
18145kill_result_breaking_faith36217 60085–60114 ———
21638kill_result_breaking_faith_wall47353 60085–60114 ———
22626kill_result_break_chains50072 60085–60114 ———
22140kill_result_breath_magic49080 60085–60114 ———
22481kill_result_brick_hit49629 60085–60114 ———
18675kill_result_brigand_hand_trails43158 60085–60114 ———
18463kill_result_brigand_slide42739 60085–60114 ———
18676kill_result_bruiser_fist_shining43159 60085–60114 ———
23190kill_result_bubble_glow51387 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.