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
26533kill_snd_bf58614 60085–60114 ———
25220kill_snd_bodyfall55860 60085–60114 ———
20334kill_snd_boom45065 60085–60114 ———
26589kill_snd_cast58895 60085–60114 ———
26520kill_snd_cast02_yell58584 60085–60114 ———
26795kill_snd_cast459458 60085–60114 ———
26590kill_snd_cast_158896 60085–60114 ———
30128kill_snd_channeler_golem_cast8454362 60085–60114 ———
30612kill_snd_chew8458514 60085–60114 ———
27348kill_snd_chitari_1h_sword_attack61860 60085–60114 ———
27349kill_snd_chitari_1h_sword_attack0161861 60085–60114 ———
27350kill_snd_chitari_1h_sword_attack0261862 60085–60114 ———
27351kill_snd_chitari_1h_sword_enter61863 60085–60114 ———
27352kill_snd_chitari_attack61864 60085–60114 ———
27353kill_snd_chitari_attack0161865 60085–60114 ———
27354kill_snd_chitari_attack0261866 60085–60114 ———
27355kill_snd_chitari_attack0361867 60085–60114 ———
27356kill_snd_chitari_attack_cannibal61868 60085–60114 ———
27357kill_snd_chitari_charge_up61869 60085–60114 ———
27358kill_snd_chitari_dead_enter61870 60085–60114 ———
27359kill_snd_chitari_idle0161871 60085–60114 ———
27360kill_snd_chitari_knockedtoback_getup61872 60085–60114 ———
27361kill_snd_chitari_ouch61873 60085–60114 ———
27362kill_snd_chitari_ouch_forehand61874 60085–60114 ———
27363kill_snd_chitari_shield_shove61875 60085–60114 ———
27364kill_snd_chitari_whirling_attack61876 60085–60114 ———
27365kill_snd_chitari_wild_swing61877 60085–60114 ———
22521kill_snd_claygolem_attack49716 60085–60114 ———
26591kill_snd_combat_enter58897 60085–60114 ———
26592kill_snd_combat_idle0158898 60085–60114 ———
20335kill_snd_confrontfear_fade45066 60085–60114 ———
20336kill_snd_confrontfear_skull45067 60085–60114 ———
26521kill_snd_converse0258585 60085–60114 ———
21928kill_snd_cow_moo48602 60085–60114 ———
30599kill_snd_crunch8457803 60085–60114 ———
26500kill_snd_dbg_spawn58532 60085–60114 ———
26593kill_snd_dead_enter58899 60085–60114 ———
26501kill_snd_death58533 60085–60114 ———
26594kill_snd_defensive_buff58900 60085–60114 ———
22485kill_snd_design_murderer49641 60085–60114 ———
21884kill_snd_design_terror00148508 60085–60114 ———
21885kill_snd_design_terror00248509 60085–60114 ———
21886kill_snd_design_terror00348510 60085–60114 ———
21887kill_snd_design_terror00448511 60085–60114 ———
21888kill_snd_design_terror00548512 60085–60114 ———
21889kill_snd_design_terror00648513 60085–60114 ———
21890kill_snd_design_terror00748514 60085–60114 ———
21891kill_snd_design_terror00848515 60085–60114 ———
21892kill_snd_design_terror00948516 60085–60114 ———
21893kill_snd_design_terror01048517 60085–60114 ———
21894kill_snd_design_terror01148518 60085–60114 ———
21895kill_snd_design_terror01248519 60085–60114 ———
21896kill_snd_design_terror02048520 60085–60114 ———
21616kill_snd_design_unrest_zombie_scare47169 60085–60114 ———
31552kill_snd_dino_fs8488497 60085–60114 ———
27661kill_snd_dodge_whoosh63009 60085–60114 ———
26666kill_snd_doz_attack59048 60085–60114 ———
26667kill_snd_doz_attack_0159049 60085–60114 ———
26668kill_snd_doz_attack_0259050 60085–60114 ———
26669kill_snd_doz_attack_0359051 60085–60114 ———
26749kill_snd_doz_big_whoosh59325 60085–60114 ———
26750kill_snd_doz_big_whoosh_0259326 60085–60114 ———
26670kill_snd_doz_cast59052 60085–60114 ———
26671kill_snd_doz_combat_enter59053 60085–60114 ———
26672kill_snd_doz_death59054 60085–60114 ———
26673kill_snd_doz_dodge59055 60085–60114 ———
26674kill_snd_doz_flyin_0159056 60085–60114 ———
26675kill_snd_doz_flyin_land59057 60085–60114 ———
26676kill_snd_doz_kick59058 60085–60114 ———
26677kill_snd_doz_knocktoknees59059 60085–60114 ———
26678kill_snd_doz_ouch59060 60085–60114 ———
26679kill_snd_doz_roar_0159061 60085–60114 ———
26680kill_snd_doz_shieldshove59062 60085–60114 ———
26796kill_snd_doz_spawn59459 60085–60114 ———
26681kill_snd_doz_whirl_attack59063 60085–60114 ———
26682kill_snd_doz_wildswing59064 60085–60114 ———
27891kill_snd_dragon_made_golem_attack_0163910 60085–60114 ———
27892kill_snd_dragon_made_golem_attack_0263911 60085–60114 ———
27893kill_snd_dragon_made_golem_attack_0363912 60085–60114 ———
27894kill_snd_dragon_made_golem_cast_0163913 60085–60114 ———
27895kill_snd_dragon_made_golem_cast_0263914 60085–60114 ———
27896kill_snd_dragon_made_golem_combat_enter63915 60085–60114 ———
27897kill_snd_dragon_made_golem_combat_exit63916 60085–60114 ———
27898kill_snd_dragon_made_golem_combat_idle_0163917 60085–60114 ———
27899kill_snd_dragon_made_golem_combat_idle_0263918 60085–60114 ———
27900kill_snd_dragon_made_golem_death_enter63919 60085–60114 ———
27901kill_snd_dragon_made_golem_death_exit63920 60085–60114 ———
27890kill_snd_dragon_made_golem_jump63909 60085–60114 ———
27902kill_snd_dragon_made_golem_ouch_backhand63921 60085–60114 ———
27903kill_snd_dragon_made_golem_ouch_down63922 60085–60114 ———
27904kill_snd_dragon_made_golem_ouch_forehand63923 60085–60114 ———
27905kill_snd_dragon_made_golem_ouch_thrust63924 60085–60114 ———
27906kill_snd_dragon_made_golem_pile_driver63925 60085–60114 ———
27907kill_snd_dragon_made_golem_shield_shove63926 60085–60114 ———
27908kill_snd_dragon_made_golem_whirl_attack63927 60085–60114 ———
30615kill_snd_dragon_wings8458835 60085–60114 ———
26807kill_snd_drakota_vox_0159502 60085–60114 ———
26808kill_snd_drakota_vox_0259503 60085–60114 ———
26809kill_snd_drakota_vox_0359504 60085–60114 ———
26522kill_snd_dual_wield_attack58586 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.