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
24657kill_sound_tse_fly_attack0154498 60085–60114 ———
24658kill_sound_tse_fly_attack0254499 60085–60114 ———
24659kill_sound_tse_fly_attack0354500 60085–60114 ———
24660kill_sound_tse_fly_cast_targeted_beneficial_end54501 60085–60114 ———
24661kill_sound_tse_fly_cast_targeted_beneficial_loop54502 60085–60114 ———
24662kill_sound_tse_fly_cast_targeted_beneficial_start54503 60085–60114 ———
24663kill_sound_tse_fly_cast_targeted_detrimental_end54504 60085–60114 ———
24664kill_sound_tse_fly_idle54505 60085–60114 ———
24665kill_sound_tse_fly_offensive_buff54506 60085–60114 ———
24937kill_sound_tse_fly_rx_attack55112 60085–60114 ———
24749kill_sound_tse_fs54627 60085–60114 ———
24666kill_sound_tse_knockeddowntoknees54507 60085–60114 ———
24667kill_sound_tse_offensive_buff54508 60085–60114 ———
24668kill_sound_tse_ouch54509 60085–60114 ———
24669kill_sound_tse_ouch_forehand54510 60085–60114 ———
24670kill_sound_tse_ouch_thrust54511 60085–60114 ———
24934kill_sound_tse_rx_attack55109 60085–60114 ———
24935kill_sound_tse_rx_buff55110 60085–60114 ———
24936kill_sound_tse_rx_hit55111 60085–60114 ———
24671kill_sound_tse_whirling_attack54512 60085–60114 ———
24672kill_sound_tse_wild_swing54513 60085–60114 ———
27605kill_sound_ulthork_1h_sword_attack62726 60085–60114 ———
27606kill_sound_ulthork_1h_sword_attack0162727 60085–60114 ———
27607kill_sound_ulthork_1h_sword_attack0262728 60085–60114 ———
27608kill_sound_ulthork_1h_sword_attack0362729 60085–60114 ———
27609kill_sound_ulthork_attack62730 60085–60114 ———
27610kill_sound_ulthork_attack0162731 60085–60114 ———
27611kill_sound_ulthork_attack0262732 60085–60114 ———
27612kill_sound_ulthork_attack0362733 60085–60114 ———
26970kill_sound_ulthork_awake60215 60085–60114 ———
27046kill_sound_ulthork_charge_up60571 60085–60114 ———
26971kill_sound_ulthork_combat_enter60216 60085–60114 ———
27613kill_sound_ulthork_dead_enter62734 60085–60114 ———
27614kill_sound_ulthork_dual_wield_attack62735 60085–60114 ———
27615kill_sound_ulthork_dual_wield_attack0162736 60085–60114 ———
27616kill_sound_ulthork_dual_wield_attack0262737 60085–60114 ———
27617kill_sound_ulthork_dual_wield_attack0362738 60085–60114 ———
27618kill_sound_ulthork_dual_wield_enter62739 60085–60114 ———
26972kill_sound_ulthork_exhale60217 60085–60114 ———
27047kill_sound_ulthork_fs60572 60085–60114 ———
26973kill_sound_ulthork_grunt60218 60085–60114 ———
26974kill_sound_ulthork_idle60219 60085–60114 ———
27048kill_sound_ulthork_idle_0160573 60085–60114 ———
27049kill_sound_ulthork_idle_0260574 60085–60114 ———
27619kill_sound_ulthork_ouch62740 60085–60114 ———
27620kill_sound_ulthork_ouch_down62741 60085–60114 ———
27621kill_sound_ulthork_ouch_forehand62742 60085–60114 ———
26975kill_sound_ulthork_run60220 60085–60114 ———
26976kill_sound_ulthork_run0160221 60085–60114 ———
26977kill_sound_ulthork_scratch0160222 60085–60114 ———
26978kill_sound_ulthork_scratch0260223 60085–60114 ———
27050kill_sound_ulthork_shield_shove60575 60085–60114 ———
26979kill_sound_ulthork_snore60224 60085–60114 ———
26980kill_sound_ulthork_walk60225 60085–60114 ———
26981kill_sound_ulthork_walk0160226 60085–60114 ———
27622kill_sound_ulthork_whirling_attack62743 60085–60114 ———
27051kill_sound_ulthork_whirl_attack_whsh60576 60085–60114 ———
27623kill_sound_ulthork_wildswing62744 60085–60114 ———
20941kill_sound_uncoil45672 60085–60114 ———
30721kill_sound_undead_dog_attack028464157 60085–60114 ———
30722kill_sound_undead_dog_attack038464158 60085–60114 ———
30723kill_sound_undead_dog_eat028464159 60085–60114 ———
30724kill_sound_undead_dog_howl8464160 60085–60114 ———
21587kill_sound_unrest_quel_piano47080 60085–60114 ———
6551kill_sound_unsheathe39183 1–843 ———
20942kill_sound_unsheathe45673 60085–60114 ———
24813kill_sound_vamp_fs54797 60085–60114 ———
24814kill_sound_vamp_f_idle54798 60085–60114 ———
24859kill_sound_vamp_f_pugilist_idle0254911 60085–60114 ———
24815kill_sound_vamp_f_untrained_attack54799 60085–60114 ———
24816kill_sound_vamp_f_untrained_attack0154800 60085–60114 ———
24817kill_sound_vamp_f_untrained_attack0254801 60085–60114 ———
24818kill_sound_vamp_f_untrained_attack0354802 60085–60114 ———
24819kill_sound_vamp_f_untrained_enter54803 60085–60114 ———
24820kill_sound_vamp_f_untrained_idle54804 60085–60114 ———
24821kill_sound_vamp_f_untrained_idle0154805 60085–60114 ———
24822kill_sound_vamp_f_whirling_attack54806 60085–60114 ———
24860kill_sound_vamp_m_pugilist_idle0254912 60085–60114 ———
24827kill_sound_vamp_m_untrained_attack54825 60085–60114 ———
24828kill_sound_vamp_m_untrained_attack0154826 60085–60114 ———
24829kill_sound_vamp_m_untrained_attack0254827 60085–60114 ———
24830kill_sound_vamp_m_untrained_attack0354828 60085–60114 ———
24831kill_sound_vamp_m_untrained_enter54829 60085–60114 ———
24832kill_sound_vamp_m_untrained_idle0154830 60085–60114 ———
24833kill_sound_vamp_m_whirling_attack54831 60085–60114 ———
5729kill_sound_vocalattack35900 1–843 ———
20943kill_sound_vocalattack45674 60085–60114 ———
20944kill_sound_vocalbite45675 60085–60114 ———
20945kill_sound_vocalbuffet45676 60085–60114 ———
6341kill_sound_vocaldamage38132 1–843 ———
20946kill_sound_vocaldamage45677 60085–60114 ———
5730kill_sound_vocaldead35901 1–843 ———
20947kill_sound_vocaldead45678 60085–60114 ———
6342kill_sound_vocaldeath38133 1–843 ———
20948kill_sound_vocaldeath45679 60085–60114 ———
5731kill_sound_vocalouch35902 1–843 ———
20949kill_sound_vocalouch45680 60085–60114 ———
23236kill_sound_vortex51509 60085–60114 ———
24123kill_sound_vrewwx_attack_roar_153297 60085–60114 ———
24124kill_sound_vrewwx_attack_roar_253298 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.