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
27758kill_snd_siren_rx_combat_enter63496 60085–60114 ———
27759kill_snd_siren_rx_death_enter63497 60085–60114 ———
27760kill_snd_siren_rx_dualwield_attack63498 60085–60114 ———
27761kill_snd_siren_rx_dualwield_attack0163499 60085–60114 ———
27762kill_snd_siren_rx_dualwield_attack0263500 60085–60114 ———
27763kill_snd_siren_rx_dualwield_attack0363501 60085–60114 ———
27764kill_snd_siren_rx_dualwield_enter63502 60085–60114 ———
27752kill_snd_siren_rx_knocktoknees63490 60085–60114 ———
27765kill_snd_siren_rx_knock_to_back63503 60085–60114 ———
27766kill_snd_siren_rx_knock_to_back_getup63504 60085–60114 ———
27767kill_snd_siren_rx_ouch63505 60085–60114 ———
27768kill_snd_siren_rx_ouch_backhand63506 60085–60114 ———
27769kill_snd_siren_rx_ouch_forehand63507 60085–60114 ———
27770kill_snd_siren_rx_shieldshove63508 60085–60114 ———
27771kill_snd_siren_rx_whirlattack63509 60085–60114 ———
27772kill_snd_siren_rx_wildswing63510 60085–60114 ———
30744kill_snd_skeletonorc_oneleg_noarmor_attack8465113 60085–60114 ———
30745kill_snd_skeletonorc_oneleg_noarmor_deadenter8465114 60085–60114 ———
30743kill_snd_skeletonorc_oneleg_noarmor_fs8465112 60085–60114 ———
30746kill_snd_skeletonorc_oneleg_noarmor_ouch8465115 60085–60114 ———
30747kill_snd_skeletonorc_oneleg_noarmor_summon8465116 60085–60114 ———
30748kill_snd_skeletonorc_torso_attack018465117 60085–60114 ———
30749kill_snd_skeletonorc_torso_attack028465118 60085–60114 ———
30750kill_snd_skeletonorc_torso_ouch_dodge8465119 60085–60114 ———
30751kill_snd_skeletonorc_torso_summon8465120 60085–60114 ———
30752kill_snd_skeletonorc_torso_summon_vox8465121 60085–60114 ———
30753kill_snd_skeletonorc_torso_walk8465122 60085–60114 ———
27241kill_snd_skirth_attack61441 60085–60114 ———
27242kill_snd_skirth_attack0161442 60085–60114 ———
27243kill_snd_skirth_attack0261443 60085–60114 ———
27244kill_snd_skirth_attack0361444 60085–60114 ———
27245kill_snd_skirth_aura61445 60085–60114 ———
27246kill_snd_skirth_cast_161446 60085–60114 ———
27247kill_snd_skirth_chargeup61447 60085–60114 ———
27248kill_snd_skirth_combat_enter61448 60085–60114 ———
27249kill_snd_skirth_combat_enter161449 60085–60114 ———
27250kill_snd_skirth_dead_enter61450 60085–60114 ———
27262kill_snd_skirth_idle0361550 60085–60114 ———
27251kill_snd_skirth_knocktobackgetup61451 60085–60114 ———
27252kill_snd_skirth_ouch61452 60085–60114 ———
27253kill_snd_skirth_shiield_shove61453 60085–60114 ———
27254kill_snd_skirth_spit61454 60085–60114 ———
27255kill_snd_skirth_whirling_attack61455 60085–60114 ———
27256kill_snd_skirth_wildswing61456 60085–60114 ———
20352kill_snd_slide_cast45083 60085–60114 ———
20353kill_snd_slide_result45084 60085–60114 ———
30754kill_snd_snd_skeletonorc_oneleg_noarmor_deadenter8465123 60085–60114 ———
6656kill_snd_snowball_impact39561 1–843 ———
20354kill_snd_snowball_impact45085 60085–60114 ———
31555kill_snd_spiderbear_attack8488511 60085–60114 ———
31556kill_snd_spiderbear_attack_018488512 60085–60114 ———
31557kill_snd_spiderbear_attack_028488513 60085–60114 ———
31558kill_snd_spiderbear_attack_038488514 60085–60114 ———
31559kill_snd_spiderbear_cast_18488515 60085–60114 ———
31560kill_snd_spiderbear_charge_up8488516 60085–60114 ———
31561kill_snd_spiderbear_combat_enter8488517 60085–60114 ———
31562kill_snd_spiderbear_dead_enter8488518 60085–60114 ———
31563kill_snd_spiderbear_idle_018488519 60085–60114 ———
31564kill_snd_spiderbear_idle_028488520 60085–60114 ———
31565kill_snd_spiderbear_idle_038488521 60085–60114 ———
31566kill_snd_spiderbear_idle_048488522 60085–60114 ———
31567kill_snd_spiderbear_knocktoknees8488523 60085–60114 ———
31568kill_snd_spiderbear_ouch8488524 60085–60114 ———
31569kill_snd_spiderbear_ouch_forehand8488525 60085–60114 ———
31570kill_snd_spiderbear_ouch_thrust8488526 60085–60114 ———
31571kill_snd_spiderbear_summon8488527 60085–60114 ———
31572kill_snd_spiderbear_whirling_attack8488528 60085–60114 ———
31573kill_snd_spiderbear_wildswing8488529 60085–60114 ———
31554kill_snd_spider_fs8488510 60085–60114 ———
6481kill_snd_spirit_elephant_vocal38825 1–843 ———
20355kill_snd_spirit_elephant_vocal45086 60085–60114 ———
23265kill_snd_splat51586 60085–60114 ———
25447kill_snd_squirrel_mount_glide56527 60085–60114 ———
25448kill_snd_squirrel_mount_idle56528 60085–60114 ———
25449kill_snd_squirrel_mount_idle_0156529 60085–60114 ———
25450kill_snd_squirrel_mount_jump56530 60085–60114 ———
25451kill_snd_squirrel_mount_jump_substitute56531 60085–60114 ———
30982kill_snd_sream_short8474939 60085–60114 ———
31333kill_snd_steg_attack8483821 60085–60114 ———
31334kill_snd_steg_attack018483822 60085–60114 ———
31335kill_snd_steg_attack028483823 60085–60114 ———
31336kill_snd_steg_attack038483824 60085–60114 ———
31337kill_snd_steg_charge_up8483825 60085–60114 ———
31338kill_snd_steg_combat_enter8483826 60085–60114 ———
31339kill_snd_steg_dead_enter8483827 60085–60114 ———
31340kill_snd_steg_idle_018483828 60085–60114 ———
31341kill_snd_steg_idle_028483829 60085–60114 ———
31342kill_snd_steg_knockback_getup8483830 60085–60114 ———
31343kill_snd_steg_ouch8483831 60085–60114 ———
31344kill_snd_steg_shieldshove8483832 60085–60114 ———
31345kill_snd_steg_sick_018483833 60085–60114 ———
31346kill_snd_steg_whirling_attack8483834 60085–60114 ———
31347kill_snd_steg_wildswing8483835 60085–60114 ———
25214kill_snd_sullon_attack_rx55846 60085–60114 ———
25215kill_snd_sullon_buff_rx55847 60085–60114 ———
25216kill_snd_sullon_death_rx55848 60085–60114 ———
25217kill_snd_sullon_ouch_rx55849 60085–60114 ———
31289kill_snd_swim8483302 60085–60114 ———
25224kill_snd_tallon_buff_rx55869 60085–60114 ———
25225kill_snd_tallon_death_rx55870 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.