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
3692kill_ouch33171 1–843 ———
19951kill_ouch44679 60085–60114 ———
5706kill_ouch0135871 1–843 ———
19953kill_ouch01_0144682 60085–60114 ———
26968kill_ouch01_snd60184 60085–60114 ———
5707kill_ouch0235872 1–843 ———
19954kill_ouch0244683 60085–60114 ———
19955kill_ouch02_0144684 60085–60114 ———
26969kill_ouch02_snd60185 60085–60114 ———
6221kill_ouch0337484 1–843 ———
19956kill_ouch0344685 60085–60114 ———
19957kill_ouch03_0144686 60085–60114 ———
6610kill_ouch0439423 1–843 ———
19958kill_ouch0444687 60085–60114 ———
6618kill_ouch139438 1–843 ———
6619kill_ouch239439 1–843 ———
6620kill_ouch339440 1–843 ———
6365kill_ouchdown38226 1–843 ———
19986kill_ouchdown44715 60085–60114 ———
3697kill_ouchtiming_a33176 1–843 ———
19987kill_ouchtiming_a44716 60085–60114 ———
3698kill_ouchtiming_b33177 1–843 ———
19988kill_ouchtiming_b44717 60085–60114 ———
3699kill_ouchtiming_c33178 1–843 ———
19989kill_ouchtiming_c44718 60085–60114 ———
19959kill_ouch_0144688 60085–60114 ———
22183kill_ouch_back49149 60085–60114 ———
19960kill_ouch_backhand44689 60085–60114 ———
19961kill_ouch_backhand_0144690 60085–60114 ———
6361kill_ouch_bakchand38222 1–843 ———
19962kill_ouch_bakchand44691 60085–60114 ———
19963kill_ouch_big44692 60085–60114 ———
19964kill_ouch_chips44693 60085–60114 ———
6362kill_ouch_down38223 1–843 ———
19965kill_ouch_down44694 60085–60114 ———
19966kill_ouch_down_0144695 60085–60114 ———
6363kill_ouch_forehand38224 1–843 ———
19967kill_ouch_forehand44696 60085–60114 ———
19968kill_ouch_forehand_0144697 60085–60114 ———
22271kill_ouch_forhand49343 60085–60114 ———
19969kill_ouch_fx44698 60085–60114 ———
19970kill_ouch_fx244699 60085–60114 ———
3693kill_ouch_headshake0133172 1–843 ———
19971kill_ouch_headshake0144700 60085–60114 ———
19972kill_ouch_medium44701 60085–60114 ———
19973kill_ouch_medium_big44702 60085–60114 ———
19974kill_ouch_oil_drip44703 60085–60114 ———
19975kill_ouch_parts44704 60085–60114 ———
3694kill_ouch_roar0133173 1–843 ———
19976kill_ouch_roar0144705 60085–60114 ———
3695kill_ouch_scream33174 1–843 ———
19977kill_ouch_scream44706 60085–60114 ———
19978kill_ouch_small44707 60085–60114 ———
3696kill_ouch_sound33175 1–843 ———
19979kill_ouch_sound44708 60085–60114 ———
19980kill_ouch_spurt_chest44709 60085–60114 ———
19981kill_ouch_spurt_pelvis44710 60085–60114 ———
4082kill_ouch_tail33840 1–843 ———
19982kill_ouch_tail44711 60085–60114 ———
4083kill_ouch_tail0233841 1–843 ———
19983kill_ouch_tail0244712 60085–60114 ———
6364kill_ouch_thrust38225 1–843 ———
19984kill_ouch_thrust44713 60085–60114 ———
19985kill_ouch_thrust_0144714 60085–60114 ———
5144kill_oven_door35097 1–843 ———
19990kill_oven_door44719 60085–60114 ———
6412kill_overhere38338 1–843 ———
19991kill_overhere44720 60085–60114 ———
23760kill_pandamen_wildswing_attack52565 60085–60114 ———
23329kill_panda_chi51713 60085–60114 ———
23336kill_panda_dance0151732 60085–60114 ———
23337kill_panda_dance0251733 60085–60114 ———
24043kill_panting_wolf_sound53114 60085–60114 ———
21851kill_paperdoll48397 60085–60114 ———
22631kill_paper_scatter50093 60085–60114 ———
31616kill_parrot_attack8492015 60085–60114 ———
31644kill_parrot_eating8492748 60085–60114 ———
31645kill_parrot_talking8492749 60085–60114 ———
5708kill_parry35873 1–843 ———
19992kill_parry44721 60085–60114 ———
5709kill_parry0135874 1–843 ———
19993kill_parry0144722 60085–60114 ———
5710kill_parry0235875 1–843 ———
19994kill_parry0244723 60085–60114 ———
6284kill_parry0337753 1–843 ———
19995kill_parry0344724 60085–60114 ———
21624kill_parry_backhand47237 60085–60114 ———
21625kill_parry_down47238 60085–60114 ———
21626kill_parry_forehand47239 60085–60114 ———
4142kill_parry_metal_metal_snd33913 1–843 ———
19996kill_parry_metal_metal_snd44725 60085–60114 ———
4657kill_parry_metal_skin_snd34484 1–843 ———
19997kill_parry_metal_skin_snd44726 60085–60114 ———
4658kill_parry_metal_wood_snd34485 1–843 ———
19998kill_parry_metal_wood_snd44727 60085–60114 ———
5724kill_parry_skin_metal_snd35895 1–843 ———
19999kill_parry_skin_metal_snd44728 60085–60114 ———
4659kill_parry_skin_skin_snd34486 1–843 ———
20000kill_parry_skin_skin_snd44729 60085–60114 ———
5725kill_parry_skin_wood_snd35896 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.