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
23975kill_sound_lynx_armor_short_152918 60085–60114 ———
23827kill_sound_lynx_mount_bare_idle52650 60085–60114 ———
24112kill_sound_lynx_mount_bare_idle_153261 60085–60114 ———
24113kill_sound_lynx_mount_bare_pant53262 60085–60114 ———
23828kill_sound_lynx_mount_bare_roar_152651 60085–60114 ———
23829kill_sound_lynx_mount_bare_roar_252652 60085–60114 ———
23976kill_sound_lynx_mount_bare_roar_352919 60085–60114 ———
23830kill_sound_lynx_mount_footstep_quiet52653 60085–60114 ———
23831kill_sound_lynx_mount_land52654 60085–60114 ———
24114kill_sound_lynx_purr53272 60085–60114 ———
23586kill_sound_mine_blast52298 60085–60114 ———
23587kill_sound_mine_splash52299 60085–60114 ———
5465kill_sound_mining35588 1–843 ———
20805kill_sound_mining45536 60085–60114 ———
4901kill_sound_moon34778 1–843 ———
20806kill_sound_moon45537 60085–60114 ———
5503kill_sound_mounthorse_foot35648 1–843 ———
20807kill_sound_mounthorse_foot45538 60085–60114 ———
5504kill_sound_mounthorse_land35649 1–843 ———
20808kill_sound_mounthorse_land45539 60085–60114 ———
5505kill_sound_mounthorse_squeak35650 1–843 ———
20809kill_sound_mounthorse_squeak45540 60085–60114 ———
4902kill_sound_neener34779 1–843 ———
20810kill_sound_neener45541 60085–60114 ———
23832kill_sound_odus_kitten_attack_152655 60085–60114 ———
23833kill_sound_odus_kitten_attack_252656 60085–60114 ———
23834kill_sound_odus_kitten_attack_352657 60085–60114 ———
23835kill_sound_odus_kitten_attack_452658 60085–60114 ———
23836kill_sound_odus_kitten_combat_exit52659 60085–60114 ———
23837kill_sound_odus_kitten_eat_152660 60085–60114 ———
23838kill_sound_odus_kitten_fall52661 60085–60114 ———
23839kill_sound_odus_kitten_footstep52662 60085–60114 ———
23840kill_sound_odus_kitten_hiss52663 60085–60114 ———
23841kill_sound_odus_kitten_idle_purr_152664 60085–60114 ———
23842kill_sound_odus_kitten_lick52665 60085–60114 ———
23843kill_sound_odus_kitten_meow_152666 60085–60114 ———
23844kill_sound_odus_kitten_meow_252667 60085–60114 ———
23845kill_sound_odus_kitten_ouch_short52668 60085–60114 ———
23846kill_sound_odus_kitten_scratch52669 60085–60114 ———
23847kill_sound_odus_kitten_sneeze52670 60085–60114 ———
23848kill_sound_odus_kitten_swim52671 60085–60114 ———
20811kill_sound_offensive45542 60085–60114 ———
20812kill_sound_offensive00145543 60085–60114 ———
20813kill_sound_offensiveelec00145544 60085–60114 ———
5466kill_sound_open35589 1–843 ———
20814kill_sound_open45545 60085–60114 ———
27666kill_sound_othmir_cast163077 60085–60114 ———
24748kill_sound_othmir_fs54626 60085–60114 ———
24723kill_sound_othmir_f_1h_sword_attack54591 60085–60114 ———
24724kill_sound_othmir_f_1h_sword_attack0154592 60085–60114 ———
24725kill_sound_othmir_f_1h_sword_attack0254593 60085–60114 ———
24726kill_sound_othmir_f_1h_sword_attack0354594 60085–60114 ———
24727kill_sound_othmir_f_attack54595 60085–60114 ———
24728kill_sound_othmir_f_attack0154596 60085–60114 ———
24729kill_sound_othmir_f_attack0254597 60085–60114 ———
24730kill_sound_othmir_f_attack0354598 60085–60114 ———
24731kill_sound_othmir_f_bow_attack54599 60085–60114 ———
24732kill_sound_othmir_f_cast_targeted_beneficial_end54600 60085–60114 ———
24733kill_sound_othmir_f_cast_targeted_beneficial_start54601 60085–60114 ———
24734kill_sound_othmir_f_charge_up54602 60085–60114 ———
24735kill_sound_othmir_f_combat_idle54603 60085–60114 ———
24736kill_sound_othmir_f_dead_enter54604 60085–60114 ———
24737kill_sound_othmir_f_dual_wield_attack54605 60085–60114 ———
24738kill_sound_othmir_f_dual_wield_attack0154606 60085–60114 ———
24739kill_sound_othmir_f_dual_wield_attack0254607 60085–60114 ———
24740kill_sound_othmir_f_dual_wield_attack0354608 60085–60114 ———
24741kill_sound_othmir_f_idle0254609 60085–60114 ———
24742kill_sound_othmir_f_shield_shove54610 60085–60114 ———
24743kill_sound_othmir_f_swim_idle54611 60085–60114 ———
24744kill_sound_othmir_f_swim_walk54612 60085–60114 ———
24745kill_sound_othmir_f_whirling_attack54613 60085–60114 ———
24746kill_sound_othmir_f_wild_swing54614 60085–60114 ———
24690kill_sound_othmir_m_1h_sword_attack54541 60085–60114 ———
24691kill_sound_othmir_m_1h_sword_attack0154542 60085–60114 ———
24692kill_sound_othmir_m_1h_sword_attack0254543 60085–60114 ———
24693kill_sound_othmir_m_1h_sword_attack0354544 60085–60114 ———
24694kill_sound_othmir_m_attack54545 60085–60114 ———
24695kill_sound_othmir_m_attack0154546 60085–60114 ———
24696kill_sound_othmir_m_attack0254547 60085–60114 ———
24697kill_sound_othmir_m_attack0354548 60085–60114 ———
24698kill_sound_othmir_m_bow_attack54549 60085–60114 ———
24699kill_sound_othmir_m_cast_targeted_beneficial_end54550 60085–60114 ———
24700kill_sound_othmir_m_cast_targeted_beneficial_loop54551 60085–60114 ———
24701kill_sound_othmir_m_cast_targeted_beneficial_start54552 60085–60114 ———
24702kill_sound_othmir_m_charge_up54553 60085–60114 ———
24703kill_sound_othmir_m_combat_idle54554 60085–60114 ———
24704kill_sound_othmir_m_dance54555 60085–60114 ———
24705kill_sound_othmir_m_dead_enter54556 60085–60114 ———
24706kill_sound_othmir_m_dual_wield_attack54557 60085–60114 ———
24707kill_sound_othmir_m_dual_wield_attack0154558 60085–60114 ———
24708kill_sound_othmir_m_dual_wield_attack0254559 60085–60114 ———
24709kill_sound_othmir_m_dual_wield_attack0354560 60085–60114 ———
24710kill_sound_othmir_m_idle0254561 60085–60114 ———
24711kill_sound_othmir_m_offensive_buff54562 60085–60114 ———
24712kill_sound_othmir_m_shield_shove54563 60085–60114 ———
24713kill_sound_othmir_m_swim_idle54564 60085–60114 ———
24714kill_sound_othmir_m_swim_run54565 60085–60114 ———
24715kill_sound_othmir_m_swim_walk54566 60085–60114 ———
24716kill_sound_othmir_m_whirling_attack54567 60085–60114 ———
24717kill_sound_othmir_m_wild_swing54568 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.