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
17641kill_1h_pierce_dodge_backhand34123 60085–60114 ———
4317kill_1h_pierce_dodge_down34124 1–843 ———
17642kill_1h_pierce_dodge_down34124 60085–60114 ———
4318kill_1h_pierce_dodge_forehand34125 1–843 ———
17643kill_1h_pierce_dodge_forehand34125 60085–60114 ———
4319kill_1h_pierce_dodge_thrust34126 1–843 ———
17644kill_1h_pierce_dodge_thrust34126 60085–60114 ———
4320kill_1h_pierce_enter34127 1–843 ———
18757kill_1h_pierce_enter43467 60085–60114 ———
4321kill_1h_pierce_exit34128 1–843 ———
18758kill_1h_pierce_exit43468 60085–60114 ———
4322kill_1h_pierce_idle34129 1–843 ———
17645kill_1h_pierce_idle34129 60085–60114 ———
4323kill_1h_pierce_ouch_backhand34130 1–843 ———
17646kill_1h_pierce_ouch_backhand34130 60085–60114 ———
4324kill_1h_pierce_ouch_down34131 1–843 ———
17647kill_1h_pierce_ouch_down34131 60085–60114 ———
4325kill_1h_pierce_ouch_forehand34132 1–843 ———
17648kill_1h_pierce_ouch_forehand34132 60085–60114 ———
4326kill_1h_pierce_ouch_thrust34133 1–843 ———
17649kill_1h_pierce_ouch_thrust34133 60085–60114 ———
4327kill_1h_pierce_parry_backhand34134 1–843 ———
17650kill_1h_pierce_parry_backhand34134 60085–60114 ———
4328kill_1h_pierce_parry_down34135 1–843 ———
17651kill_1h_pierce_parry_down34135 60085–60114 ———
4329kill_1h_pierce_parry_forehand34136 1–843 ———
17652kill_1h_pierce_parry_forehand34136 60085–60114 ———
4330kill_1h_pierce_parry_thrust34137 1–843 ———
17653kill_1h_pierce_parry_thrust34137 60085–60114 ———
4331kill_1h_pierce_strafe_left34138 1–843 ———
18759kill_1h_pierce_strafe_left43469 60085–60114 ———
4332kill_1h_pierce_strafe_right34139 1–843 ———
18760kill_1h_pierce_strafe_right43470 60085–60114 ———
4333kill_1h_pierce_walk34140 1–843 ———
18761kill_1h_pierce_walk43471 60085–60114 ———
4052kill_1h_sword_attack33794 1–843 ———
17561kill_1h_sword_attack33794 60085–60114 ———
4053kill_1h_sword_attack0133795 1–843 ———
17562kill_1h_sword_attack0133795 60085–60114 ———
4054kill_1h_sword_attack0233796 1–843 ———
17563kill_1h_sword_attack0233796 60085–60114 ———
4055kill_1h_sword_attack0333797 1–843 ———
17564kill_1h_sword_attack0333797 60085–60114 ———
25894kill_1h_sword_attack0457727 60085–60114 ———
28200kill_1h_sword_attack_0165141 60085–60114 ———
28201kill_1h_sword_attack_0265142 60085–60114 ———
28202kill_1h_sword_attack_0365143 60085–60114 ———
4117kill_1h_sword_attack_recoil33879 1–843 ———
18762kill_1h_sword_attack_recoil43472 60085–60114 ———
4118kill_1h_sword_attack_recoil0133880 1–843 ———
18763kill_1h_sword_attack_recoil0143473 60085–60114 ———
4119kill_1h_sword_attack_recoil0233881 1–843 ———
18764kill_1h_sword_attack_recoil0243474 60085–60114 ———
4232kill_1h_sword_attack_recoil0334038 1–843 ———
18765kill_1h_sword_attack_recoil0343475 60085–60114 ———
3455kill_1h_sword_backup32769 1–843 ———
18766kill_1h_sword_backup43476 60085–60114 ———
26819kill_1h_sword_cast59657 60085–60114 ———
26820kill_1h_sword_cast_enter59658 60085–60114 ———
26821kill_1h_sword_cast_exit59659 60085–60114 ———
26822kill_1h_sword_cast_idle59660 60085–60114 ———
26823kill_1h_sword_combat_art_buff59661 60085–60114 ———
28203kill_1h_sword_combat_buff65144 60085–60114 ———
26824kill_1h_sword_combat_enter59662 60085–60114 ———
28204kill_1h_sword_combat_idle65145 60085–60114 ———
30041kill_1h_sword_dead_enter8454092 60085–60114 ———
28205kill_1h_sword_death65146 60085–60114 ———
4120kill_1h_sword_death_blow33882 1–843 ———
17569kill_1h_sword_death_blow33882 60085–60114 ———
4334kill_1h_sword_death_blow0134141 1–843 ———
17654kill_1h_sword_death_blow0134141 60085–60114 ———
4233kill_1h_sword_dodge_backhand34039 1–843 ———
17591kill_1h_sword_dodge_backhand34039 60085–60114 ———
4234kill_1h_sword_dodge_down34040 1–843 ———
17592kill_1h_sword_dodge_down34040 60085–60114 ———
4235kill_1h_sword_dodge_forehand34041 1–843 ———
17593kill_1h_sword_dodge_forehand34041 60085–60114 ———
4335kill_1h_sword_dodge_thrust34142 1–843 ———
17655kill_1h_sword_dodge_thrust34142 60085–60114 ———
3456kill_1h_sword_enter32778 1–843 ———
18767kill_1h_sword_enter43477 60085–60114 ———
3457kill_1h_sword_exit32781 1–843 ———
18768kill_1h_sword_exit43478 60085–60114 ———
3458kill_1h_sword_idle32784 1–843 ———
17453kill_1h_sword_idle32784 60085–60114 ———
21850kill_1h_sword_idle0148390 60085–60114 ———
30042kill_1h_sword_idle028454093 60085–60114 ———
28206kill_1h_sword_idle_fidget_0165147 60085–60114 ———
28207kill_1h_sword_idle_fidget_0265148 60085–60114 ———
4236kill_1h_sword_ouch_backhand34042 1–843 ———
17594kill_1h_sword_ouch_backhand34042 60085–60114 ———
4237kill_1h_sword_ouch_down34043 1–843 ———
17595kill_1h_sword_ouch_down34043 60085–60114 ———
4238kill_1h_sword_ouch_forehand34044 1–843 ———
17596kill_1h_sword_ouch_forehand34044 60085–60114 ———
4336kill_1h_sword_ouch_thrust34143 1–843 ———
17656kill_1h_sword_ouch_thrust34143 60085–60114 ———
4239kill_1h_sword_parry_backhand34045 1–843 ———
17597kill_1h_sword_parry_backhand34045 60085–60114 ———
4240kill_1h_sword_parry_down34046 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.