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
25844kill_backpack_jump57593 60085–60114 ———
26256kill_backpack_jump_moving58184 60085–60114 ———
26257kill_backpack_kick58185 60085–60114 ———
26259kill_backpack_knockdowntoknees58187 60085–60114 ———
26258kill_backpack_knockdown_attack58186 60085–60114 ———
26260kill_backpack_knockedtoback58188 60085–60114 ———
26261kill_backpack_knockedtoback_getup58189 60085–60114 ———
26262kill_backpack_knockedtoback_onbackidle58190 60085–60114 ———
25845kill_backpack_land57594 60085–60114 ———
31105kill_backpack_leaper_backup8482443 60085–60114 ———
31106kill_backpack_leaper_fall8482444 60085–60114 ———
31107kill_backpack_leaper_fly_backup8482445 60085–60114 ———
31108kill_backpack_leaper_fly_climb8482446 60085–60114 ———
31109kill_backpack_leaper_fly_dive8482447 60085–60114 ———
31110kill_backpack_leaper_fly_down8482448 60085–60114 ———
31111kill_backpack_leaper_fly_glide8482449 60085–60114 ———
31112kill_backpack_leaper_fly_glide_left8482450 60085–60114 ———
31113kill_backpack_leaper_fly_glide_right8482451 60085–60114 ———
31114kill_backpack_leaper_fly_idle8482452 60085–60114 ———
31115kill_backpack_leaper_fly_run8482453 60085–60114 ———
31116kill_backpack_leaper_fly_strafe_left8482454 60085–60114 ———
31117kill_backpack_leaper_fly_strafe_right8482455 60085–60114 ———
31118kill_backpack_leaper_fly_turn_left8482456 60085–60114 ———
31119kill_backpack_leaper_fly_turn_right8482457 60085–60114 ———
31120kill_backpack_leaper_fly_up8482458 60085–60114 ———
31121kill_backpack_leaper_fly_walk8482459 60085–60114 ———
31122kill_backpack_leaper_idle8482460 60085–60114 ———
31123kill_backpack_leaper_idle018482461 60085–60114 ———
31124kill_backpack_leaper_jump8482462 60085–60114 ———
31125kill_backpack_leaper_jump_substitute8482463 60085–60114 ———
31126kill_backpack_leaper_land8482464 60085–60114 ———
31127kill_backpack_leaper_long_fall8482465 60085–60114 ———
31128kill_backpack_leaper_run8482466 60085–60114 ———
31129kill_backpack_leaper_turn_left8482467 60085–60114 ———
31130kill_backpack_leaper_turn_right8482468 60085–60114 ———
31131kill_backpack_leaper_walk8482469 60085–60114 ———
26263kill_backpack_leatherworking_failure58191 60085–60114 ———
26264kill_backpack_leatherworking_idle58192 60085–60114 ———
26265kill_backpack_leatherworking_success58193 60085–60114 ———
26266kill_backpack_left_hand_fist58194 60085–60114 ———
26267kill_backpack_left_hand_relaxed58195 60085–60114 ———
26268kill_backpack_listen58196 60085–60114 ———
25846kill_backpack_long_fall57595 60085–60114 ———
26269kill_backpack_long_fall_moving58197 60085–60114 ———
26270kill_backpack_metalworking_failure58198 60085–60114 ———
26271kill_backpack_metalworking_idle58199 60085–60114 ———
26272kill_backpack_metalworking_success58200 60085–60114 ———
26273kill_backpack_mining_digging58201 60085–60114 ———
26274kill_backpack_mining_success58202 60085–60114 ———
26275kill_backpack_monk_attack58203 60085–60114 ———
26276kill_backpack_monk_attack0158204 60085–60114 ———
26277kill_backpack_monk_attack0258205 60085–60114 ———
26278kill_backpack_monk_attack0358206 60085–60114 ———
26279kill_backpack_monk_attack_recoil58207 60085–60114 ———
26280kill_backpack_monk_attack_recoil0158208 60085–60114 ———
26281kill_backpack_monk_attack_recoil0258209 60085–60114 ———
26282kill_backpack_monk_attack_recoil0358210 60085–60114 ———
26283kill_backpack_monk_backup58211 60085–60114 ———
26284kill_backpack_monk_charge_up58212 60085–60114 ———
26285kill_backpack_monk_defensive_buff58213 60085–60114 ———
26286kill_backpack_monk_dodge_backhand58214 60085–60114 ———
26287kill_backpack_monk_dodge_down58215 60085–60114 ———
26288kill_backpack_monk_dodge_forehand58216 60085–60114 ———
26289kill_backpack_monk_dodge_thrust58217 60085–60114 ———
26290kill_backpack_monk_enter58218 60085–60114 ———
26291kill_backpack_monk_exit58219 60085–60114 ———
26292kill_backpack_monk_feint58220 60085–60114 ———
26293kill_backpack_monk_idle58221 60085–60114 ———
26294kill_backpack_monk_kick58222 60085–60114 ———
26295kill_backpack_monk_kick_flying58223 60085–60114 ———
26296kill_backpack_monk_kick_spin58224 60085–60114 ———
26297kill_backpack_monk_knockdowntoknees58225 60085–60114 ———
26298kill_backpack_monk_knockedtoback58226 60085–60114 ———
26299kill_backpack_monk_knockedtoback_getup58227 60085–60114 ———
26300kill_backpack_monk_offensive_buff58228 60085–60114 ———
26301kill_backpack_monk_offensive_buff_short58229 60085–60114 ———
26302kill_backpack_monk_ouch_backhand58230 60085–60114 ———
26303kill_backpack_monk_ouch_down58231 60085–60114 ———
26304kill_backpack_monk_ouch_forehand58232 60085–60114 ———
26305kill_backpack_monk_ouch_thrust58233 60085–60114 ———
26306kill_backpack_monk_parry_backhand58234 60085–60114 ———
26307kill_backpack_monk_parry_down58235 60085–60114 ———
26308kill_backpack_monk_parry_forehand58236 60085–60114 ———
26309kill_backpack_monk_parry_thrust58237 60085–60114 ———
26310kill_backpack_monk_strafe_left58238 60085–60114 ———
26311kill_backpack_monk_strafe_right58239 60085–60114 ———
26312kill_backpack_monk_super_buff58240 60085–60114 ———
26313kill_backpack_monk_taunt_combat_art58241 60085–60114 ———
26314kill_backpack_monk_walk58242 60085–60114 ———
26315kill_backpack_monk_whirling_attack58243 60085–60114 ———
26316kill_backpack_monk_wild_swing58244 60085–60114 ———
26317kill_backpack_offensive_buff58245 60085–60114 ———
26318kill_backpack_ouch58246 60085–60114 ———
26319kill_backpack_pike_attack58247 60085–60114 ———
26320kill_backpack_pike_attack0158248 60085–60114 ———
26321kill_backpack_pike_attack0258249 60085–60114 ———
26322kill_backpack_pike_attack0358250 60085–60114 ———
26323kill_backpack_pike_attack_recoil58251 60085–60114 ———
26324kill_backpack_pike_attack_recoil0158252 60085–60114 ———
26325kill_backpack_pike_attack_recoil0258253 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.