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
23283kill_sound_cast_idle51611 60085–60114 ———
20525kill_sound_cast_shortbreath_open45256 60085–60114 ———
23695kill_sound_catoplebus_attack_roar_152487 60085–60114 ———
23696kill_sound_catoplebus_attack_roar_252488 60085–60114 ———
23697kill_sound_catoplebus_attack_roar_352489 60085–60114 ———
23698kill_sound_catoplebus_body_movement52490 60085–60114 ———
23699kill_sound_catoplebus_cast_roar52491 60085–60114 ———
23700kill_sound_catoplebus_combat_art_buff_roar52492 60085–60114 ———
23701kill_sound_catoplebus_crunch52493 60085–60114 ———
23702kill_sound_catoplebus_death_roar52494 60085–60114 ———
23703kill_sound_catoplebus_dodge_grunt52495 60085–60114 ———
23704kill_sound_catoplebus_dodge_roar52496 60085–60114 ———
23705kill_sound_catoplebus_footstep52497 60085–60114 ———
23706kill_sound_catoplebus_footstep_deep52498 60085–60114 ———
23707kill_sound_catoplebus_footstep_deep_soft52499 60085–60114 ———
23708kill_sound_catoplebus_idle_grunt52500 60085–60114 ———
23709kill_sound_catoplebus_idle_roar52501 60085–60114 ———
23710kill_sound_catoplebus_idle_sniff52502 60085–60114 ———
23711kill_sound_catoplebus_idle_snort52503 60085–60114 ———
23880kill_sound_catoplebus_ouch52752 60085–60114 ———
23881kill_sound_catoplebus_ouch_152753 60085–60114 ———
23882kill_sound_catoplebus_ouch_252754 60085–60114 ———
23712kill_sound_catoplebus_slide52504 60085–60114 ———
23713kill_sound_catoplebus_swim52505 60085–60114 ———
23714kill_sound_catoplebus_swim_idle52506 60085–60114 ———
23715kill_sound_catoplebus_tail_whoosh52507 60085–60114 ———
23716kill_sound_cerberus_attack_roar52508 60085–60114 ———
23717kill_sound_cerberus_cast_roar52509 60085–60114 ———
23718kill_sound_cerberus_combat_art_buff_roar52510 60085–60114 ———
23719kill_sound_cerberus_death_fall52511 60085–60114 ———
23720kill_sound_cerberus_death_roar52512 60085–60114 ———
23721kill_sound_cerberus_dodge_bark52513 60085–60114 ———
23722kill_sound_cerberus_dodge_growl52514 60085–60114 ———
23723kill_sound_cerberus_growl52515 60085–60114 ———
23724kill_sound_cerberus_idle_howl_152516 60085–60114 ———
23725kill_sound_cerberus_idle_howl_252517 60085–60114 ———
23726kill_sound_cerberus_idle_howl_long52518 60085–60114 ———
23727kill_sound_cerberus_scrape52519 60085–60114 ———
23728kill_sound_cerberus_snarl52520 60085–60114 ———
23729kill_sound_cerberus_swim52521 60085–60114 ———
23167kill_sound_charge51331 60085–60114 ———
23168kill_sound_charge_blast51332 60085–60114 ———
20538kill_sound_chesthit45269 60085–60114 ———
20539kill_sound_chesthitdouble45270 60085–60114 ———
5526kill_sound_chew35678 1–843 ———
20540kill_sound_chew45271 60085–60114 ———
23799kill_sound_chimera_attack_roar_152621 60085–60114 ———
23800kill_sound_chimera_attack_roar_252622 60085–60114 ———
23801kill_sound_chimera_attack_roar_352623 60085–60114 ———
23802kill_sound_chimera_cast_roar52624 60085–60114 ———
23803kill_sound_chimera_cast_roar_short52625 60085–60114 ———
23804kill_sound_chimera_combat_art_buff_roar52626 60085–60114 ———
23805kill_sound_chimera_dead_fall52627 60085–60114 ———
23806kill_sound_chimera_death_roar52628 60085–60114 ———
23807kill_sound_chimera_dodge_down_roar52629 60085–60114 ———
23808kill_sound_chimera_dodge_grunt52630 60085–60114 ———
23809kill_sound_chimera_footslide52631 60085–60114 ———
23810kill_sound_chimera_footstep52632 60085–60114 ———
23811kill_sound_chimera_footstep_big52633 60085–60114 ———
23812kill_sound_chimera_idle_bird_152634 60085–60114 ———
23813kill_sound_chimera_idle_bird_252635 60085–60114 ———
23814kill_sound_chimera_idle_bird_352636 60085–60114 ———
23815kill_sound_chimera_idle_goat_152637 60085–60114 ———
23816kill_sound_chimera_idle_goat_252638 60085–60114 ———
23817kill_sound_chimera_idle_goat_352639 60085–60114 ———
23818kill_sound_chimera_idle_lion_152640 60085–60114 ———
23819kill_sound_chimera_idle_lion_252641 60085–60114 ———
23820kill_sound_chimera_idle_lion_352642 60085–60114 ———
23821kill_sound_chimera_idle_lion_452643 60085–60114 ———
23822kill_sound_chimera_idle_wings52644 60085–60114 ———
23823kill_sound_chimera_sit_wings_short52645 60085–60114 ———
23824kill_sound_chimera_snake_stab52646 60085–60114 ———
23825kill_sound_chimera_swim52647 60085–60114 ———
23826kill_sound_chimera_wings_big52648 60085–60114 ———
6303kill_sound_clap37891 1–843 ———
20541kill_sound_clap45272 60085–60114 ———
4943kill_sound_claw34821 1–843 ———
20542kill_sound_claw45273 60085–60114 ———
6639kill_sound_clawhit39530 1–843 ———
20543kill_sound_clawhit45274 60085–60114 ———
6431kill_sound_clawwalk38376 1–843 ———
20544kill_sound_clawwalk45275 60085–60114 ———
6495kill_sound_clop38889 1–843 ———
20545kill_sound_clop45276 60085–60114 ———
5870kill_sound_clop_left36319 1–843 ———
20546kill_sound_clop_left45277 60085–60114 ———
5871kill_sound_clop_right36320 1–843 ———
20547kill_sound_clop_right45278 60085–60114 ———
25155kill_sound_coins55684 60085–60114 ———
6594kill_sound_combatart39314 1–843 ———
20548kill_sound_combatart45279 60085–60114 ———
4109kill_sound_combatbreath33871 1–843 ———
20549kill_sound_combatbreath45280 60085–60114 ———
4071kill_sound_combatbreathe33828 1–843 ———
20550kill_sound_combatbreathe45281 60085–60114 ———
4072kill_sound_combatchew33829 1–843 ———
20551kill_sound_combatchew45282 60085–60114 ———
4073kill_sound_combatcrunch33830 1–843 ———
20552kill_sound_combatcrunch45283 60085–60114 ———
4174kill_sound_combatenter33957 1–843 ———
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.