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
20390kill_sound_attachwhirl45121 60085–60114 ———
3784kill_sound_attack33327 1–843 ———
20391kill_sound_attack45122 60085–60114 ———
3981kill_sound_attack0133721 1–843 ———
20392kill_sound_attack0145123 60085–60114 ———
3982kill_sound_attack0233722 1–843 ———
20393kill_sound_attack0245124 60085–60114 ———
6108kill_sound_attack1_vocal37183 1–843 ———
20394kill_sound_attack1_vocal45125 60085–60114 ———
4076kill_sound_attack2rock33834 1–843 ———
20396kill_sound_attack2rock45127 60085–60114 ———
4077kill_sound_attack2slam33835 1–843 ———
20397kill_sound_attack2slam45128 60085–60114 ———
6109kill_sound_attack2_vocal37184 1–843 ———
20395kill_sound_attack2_vocal45126 60085–60114 ———
4171kill_sound_attacka33954 1–843 ———
20399kill_sound_attacka45130 60085–60114 ———
4152kill_sound_attackarm33932 1–843 ———
20400kill_sound_attackarm45131 60085–60114 ———
4172kill_sound_attackb33955 1–843 ———
20401kill_sound_attackb45132 60085–60114 ———
20402kill_sound_attackback45133 60085–60114 ———
4157kill_sound_attackbase33937 1–843 ———
20403kill_sound_attackbase45134 60085–60114 ———
4895kill_sound_attackbend34772 1–843 ———
20404kill_sound_attackbend45135 60085–60114 ———
4561kill_sound_attackbite34383 1–843 ———
20405kill_sound_attackbite45136 60085–60114 ———
4562kill_sound_attackbitein34384 1–843 ———
20406kill_sound_attackbitein45137 60085–60114 ———
6585kill_sound_attackbiterip39293 1–843 ———
20407kill_sound_attackbiterip45138 60085–60114 ———
20408kill_sound_attackblade45139 60085–60114 ———
4108kill_sound_attackbreath33870 1–843 ———
20409kill_sound_attackbreath45140 60085–60114 ———
6198kill_sound_attackbreath0137419 1–843 ———
20410kill_sound_attackbreath0145141 60085–60114 ———
6199kill_sound_attackbreath0237420 1–843 ———
20411kill_sound_attackbreath0245142 60085–60114 ———
6200kill_sound_attackbreath02_inhale37421 1–843 ———
20412kill_sound_attackbreath02_inhale45143 60085–60114 ———
6636kill_sound_attackbreath139527 1–843 ———
20413kill_sound_attackbreath145144 60085–60114 ———
6637kill_sound_attackbreath239528 1–843 ———
20414kill_sound_attackbreath245145 60085–60114 ———
5523kill_sound_attackbreathe35675 1–843 ———
20417kill_sound_attackbreathe45148 60085–60114 ———
5524kill_sound_attackbreathefire35676 1–843 ———
20418kill_sound_attackbreathefire45149 60085–60114 ———
5045kill_sound_attackbreathfire34935 1–843 ———
20419kill_sound_attackbreathfire45150 60085–60114 ———
6588kill_sound_attackbreathfire_long39296 1–843 ———
20420kill_sound_attackbreathfire_long45151 60085–60114 ———
6589kill_sound_attackbreathfire_short39297 1–843 ———
20421kill_sound_attackbreathfire_short45152 60085–60114 ———
6586kill_sound_attackbreath_long39294 1–843 ———
20415kill_sound_attackbreath_long45146 60085–60114 ———
6587kill_sound_attackbreath_short39295 1–843 ———
20416kill_sound_attackbreath_short45147 60085–60114 ———
6052kill_sound_attackcast36873 1–843 ———
20422kill_sound_attackcast45153 60085–60114 ———
4849kill_sound_attackchain34723 1–843 ———
20423kill_sound_attackchain45154 60085–60114 ———
4184kill_sound_attackchime33967 1–843 ———
20424kill_sound_attackchime45155 60085–60114 ———
6043kill_sound_attackchomp36843 1–843 ———
20425kill_sound_attackchomp45156 60085–60114 ———
4940kill_sound_attackclaw34818 1–843 ———
20426kill_sound_attackclaw45157 60085–60114 ———
6201kill_sound_attackclaw_vocal37422 1–843 ———
20427kill_sound_attackclaw_vocal45158 60085–60114 ———
4158kill_sound_attackcreak33938 1–843 ———
20428kill_sound_attackcreak45159 60085–60114 ———
4066kill_sound_attackcrunch0133823 1–843 ———
20429kill_sound_attackcrunch0145160 60085–60114 ———
4067kill_sound_attackcrunch0233824 1–843 ———
20430kill_sound_attackcrunch0245161 60085–60114 ———
6239kill_sound_attacke3_vocal37518 1–843 ———
20431kill_sound_attacke3_vocal45162 60085–60114 ———
4153kill_sound_attackfire33933 1–843 ———
20432kill_sound_attackfire45163 60085–60114 ———
5167kill_sound_attackfistwater35133 1–843 ———
20433kill_sound_attackfistwater45164 60085–60114 ———
5116kill_sound_attackflame35060 1–843 ———
20434kill_sound_attackflame45165 60085–60114 ———
3786kill_sound_attackflap33330 1–843 ———
20435kill_sound_attackflap45166 60085–60114 ———
4986kill_sound_attackflutter34869 1–843 ———
20436kill_sound_attackflutter45167 60085–60114 ———
5462kill_sound_attackfoot35585 1–843 ———
20437kill_sound_attackfoot45168 60085–60114 ———
4850kill_sound_attackgear34724 1–843 ———
20438kill_sound_attackgear45169 60085–60114 ———
4110kill_sound_attackgrowl33872 1–843 ———
20439kill_sound_attackgrowl45170 60085–60114 ———
6240kill_sound_attackheadram_swoosh37519 1–843 ———
20440kill_sound_attackheadram_swoosh45171 60085–60114 ———
4068kill_sound_attackhit33825 1–843 ———
20441kill_sound_attackhit45172 60085–60114 ———
3970kill_sound_attackinhale33701 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.