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
26121kill_backpack_bostaff_ouch_thrust58049 60085–60114 ———
26122kill_backpack_bostaff_parry_backhand58050 60085–60114 ———
26123kill_backpack_bostaff_parry_down58051 60085–60114 ———
26124kill_backpack_bostaff_parry_forehand58052 60085–60114 ———
26125kill_backpack_bostaff_parry_thrust58053 60085–60114 ———
26126kill_backpack_bostaff_strafe_left58054 60085–60114 ———
26127kill_backpack_bostaff_strafe_right58055 60085–60114 ———
26128kill_backpack_bostaff_super_buff58056 60085–60114 ———
26129kill_backpack_bostaff_taunt_combat_art58057 60085–60114 ———
26130kill_backpack_bostaff_walk58058 60085–60114 ———
26131kill_backpack_bostaff_whirling_attack58059 60085–60114 ———
26132kill_backpack_bostaff_wild_swing58060 60085–60114 ———
26133kill_backpack_bow_aim_down58061 60085–60114 ———
26134kill_backpack_bow_aim_up58062 60085–60114 ———
26135kill_backpack_bow_attack58063 60085–60114 ———
26136kill_backpack_bow_attack_2x58064 60085–60114 ———
26137kill_backpack_bow_backup58065 60085–60114 ———
26138kill_backpack_bow_dodge_backhand58066 60085–60114 ———
26139kill_backpack_bow_dodge_down58067 60085–60114 ———
26140kill_backpack_bow_dodge_forehand58068 60085–60114 ———
26141kill_backpack_bow_dodge_thrust58069 60085–60114 ———
26142kill_backpack_bow_enter58070 60085–60114 ———
26143kill_backpack_bow_exit58071 60085–60114 ———
26144kill_backpack_bow_idle58072 60085–60114 ———
26145kill_backpack_bow_knockdowntoknees58073 60085–60114 ———
26146kill_backpack_bow_knockedtoback58074 60085–60114 ———
26147kill_backpack_bow_knockedtoback_getup58075 60085–60114 ———
26148kill_backpack_bow_ouch_backhand58076 60085–60114 ———
26149kill_backpack_bow_ouch_down58077 60085–60114 ———
26150kill_backpack_bow_ouch_forehand58078 60085–60114 ———
26151kill_backpack_bow_ouch_thrust58079 60085–60114 ———
26152kill_backpack_bow_strafe_left58080 60085–60114 ———
26153kill_backpack_bow_strafe_right58081 60085–60114 ———
26154kill_backpack_bow_walk58082 60085–60114 ———
26155kill_backpack_cast_aoe_beneficial_end58083 60085–60114 ———
26156kill_backpack_cast_aoe_beneficial_loop58084 60085–60114 ———
26157kill_backpack_cast_aoe_beneficial_start58085 60085–60114 ———
26158kill_backpack_charge58086 60085–60114 ———
26159kill_backpack_charge_up58087 60085–60114 ———
26160kill_backpack_chop_ground_digging58088 60085–60114 ———
26161kill_backpack_chop_ground_success58089 60085–60114 ———
26162kill_backpack_climbing_backup58090 60085–60114 ———
26163kill_backpack_climbing_enter_down58091 60085–60114 ———
26164kill_backpack_climbing_enter_down_root58092 60085–60114 ———
26165kill_backpack_climbing_exit_up58093 60085–60114 ———
26166kill_backpack_climbing_exit_up_root58094 60085–60114 ———
26167kill_backpack_climbing_idle58095 60085–60114 ———
26168kill_backpack_climbing_idle0158096 60085–60114 ———
26169kill_backpack_climbing_ouch58097 60085–60114 ———
26170kill_backpack_climbing_strafe_left58098 60085–60114 ———
26171kill_backpack_climbing_strafe_right58099 60085–60114 ———
26172kill_backpack_climbing_walk58100 60085–60114 ———
26173kill_backpack_combat_backup_run58101 60085–60114 ———
25831kill_backpack_combat_idle57580 60085–60114 ———
26174kill_backpack_combat_run58102 60085–60114 ———
26175kill_backpack_combat_strafe_left_run58103 60085–60114 ———
26176kill_backpack_combat_strafe_right_run58104 60085–60114 ———
26177kill_backpack_cooking_failure58105 60085–60114 ———
26178kill_backpack_cooking_idle58106 60085–60114 ———
26179kill_backpack_cooking_success58107 60085–60114 ———
26180kill_backpack_crouch_backup58108 60085–60114 ———
26181kill_backpack_crouch_enter58109 60085–60114 ———
26182kill_backpack_crouch_exit58110 60085–60114 ———
26183kill_backpack_crouch_idle58111 60085–60114 ———
26184kill_backpack_crouch_strafe_left58112 60085–60114 ———
26185kill_backpack_crouch_strafe_right58113 60085–60114 ———
26186kill_backpack_crouch_turn_left58114 60085–60114 ———
26187kill_backpack_crouch_turn_right58115 60085–60114 ———
26188kill_backpack_crouch_walk58116 60085–60114 ———
26189kill_backpack_cry58117 60085–60114 ———
26190kill_backpack_dance58118 60085–60114 ———
26191kill_backpack_dead58119 60085–60114 ———
26192kill_backpack_dead_enter58120 60085–60114 ———
26193kill_backpack_defensive_buff58121 60085–60114 ———
31464kill_backpack_dive8486622 60085–60114 ———
26195kill_backpack_drinking_failure58123 60085–60114 ———
26196kill_backpack_drinking_idle58124 60085–60114 ———
26197kill_backpack_drinking_success58125 60085–60114 ———
26194kill_backpack_drink_chug58122 60085–60114 ———
26198kill_backpack_dual_wield_attack58126 60085–60114 ———
26199kill_backpack_dual_wield_attack0158127 60085–60114 ———
26200kill_backpack_dual_wield_attack0258128 60085–60114 ———
26201kill_backpack_dual_wield_attack0358129 60085–60114 ———
26202kill_backpack_dual_wield_attack_recoil58130 60085–60114 ———
26203kill_backpack_dual_wield_attack_recoil0158131 60085–60114 ———
26204kill_backpack_dual_wield_attack_recoil0258132 60085–60114 ———
26205kill_backpack_dual_wield_attack_recoil0358133 60085–60114 ———
26206kill_backpack_dual_wield_backup58134 60085–60114 ———
26207kill_backpack_dual_wield_defensive_buff58135 60085–60114 ———
26208kill_backpack_dual_wield_dodge_backhand58136 60085–60114 ———
26209kill_backpack_dual_wield_dodge_down58137 60085–60114 ———
26210kill_backpack_dual_wield_dodge_forehand58138 60085–60114 ———
26211kill_backpack_dual_wield_dodge_thrust58139 60085–60114 ———
26212kill_backpack_dual_wield_enter58140 60085–60114 ———
26213kill_backpack_dual_wield_exit58141 60085–60114 ———
26214kill_backpack_dual_wield_feint58142 60085–60114 ———
26215kill_backpack_dual_wield_idle58143 60085–60114 ———
26216kill_backpack_dual_wield_kick58144 60085–60114 ———
26217kill_backpack_dual_wield_knockdowntoknees58145 60085–60114 ———
26218kill_backpack_dual_wield_knockedtoback58146 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.