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
26219kill_backpack_dual_wield_knockedtoback_getup58147 60085–60114 ———
26220kill_backpack_dual_wield_offensive_buff58148 60085–60114 ———
26221kill_backpack_dual_wield_ouch_backhand58149 60085–60114 ———
26222kill_backpack_dual_wield_ouch_down58150 60085–60114 ———
26223kill_backpack_dual_wield_ouch_forehand58151 60085–60114 ———
26224kill_backpack_dual_wield_ouch_thrust58152 60085–60114 ———
26225kill_backpack_dual_wield_parry_backhand58153 60085–60114 ———
26226kill_backpack_dual_wield_parry_down58154 60085–60114 ———
26227kill_backpack_dual_wield_parry_forehand58155 60085–60114 ———
26228kill_backpack_dual_wield_parry_thrust58156 60085–60114 ———
26229kill_backpack_dual_wield_strafe_left58157 60085–60114 ———
26230kill_backpack_dual_wield_strafe_right58158 60085–60114 ———
26231kill_backpack_dual_wield_super_buff58159 60085–60114 ———
26232kill_backpack_dual_wield_taunt_combat_art58160 60085–60114 ———
26233kill_backpack_dual_wield_walk58161 60085–60114 ———
26234kill_backpack_dual_wield_whirling_attack58162 60085–60114 ———
26235kill_backpack_dual_wield_wild_swing58163 60085–60114 ———
25832kill_backpack_fall57581 60085–60114 ———
26236kill_backpack_fall_moving58164 60085–60114 ———
26237kill_backpack_feint58165 60085–60114 ———
26238kill_backpack_fishing_cast58166 60085–60114 ———
26239kill_backpack_fishing_fight58167 60085–60114 ———
26240kill_backpack_fishing_reel_in58168 60085–60114 ———
26241kill_backpack_flirt58169 60085–60114 ———
25804kill_backpack_fly_backup57551 60085–60114 ———
25834kill_backpack_fly_climb57583 60085–60114 ———
25805kill_backpack_fly_combat_idle57552 60085–60114 ———
25835kill_backpack_fly_dive57584 60085–60114 ———
25836kill_backpack_fly_down57585 60085–60114 ———
25806kill_backpack_fly_fall57553 60085–60114 ———
25807kill_backpack_fly_fly_backup57554 60085–60114 ———
25808kill_backpack_fly_fly_climb57555 60085–60114 ———
25809kill_backpack_fly_fly_dive57556 60085–60114 ———
25810kill_backpack_fly_fly_down57557 60085–60114 ———
25811kill_backpack_fly_fly_glide57558 60085–60114 ———
25812kill_backpack_fly_fly_glide_left57559 60085–60114 ———
25813kill_backpack_fly_fly_glide_right57560 60085–60114 ———
25814kill_backpack_fly_fly_idle57561 60085–60114 ———
25815kill_backpack_fly_fly_run57562 60085–60114 ———
25816kill_backpack_fly_fly_strafe_left57563 60085–60114 ———
25817kill_backpack_fly_fly_strafe_right57564 60085–60114 ———
25818kill_backpack_fly_fly_turn_left57565 60085–60114 ———
25819kill_backpack_fly_fly_turn_right57566 60085–60114 ———
25820kill_backpack_fly_fly_up57567 60085–60114 ———
25821kill_backpack_fly_fly_walk57568 60085–60114 ———
25837kill_backpack_fly_glide57586 60085–60114 ———
25838kill_backpack_fly_glide_left57587 60085–60114 ———
25839kill_backpack_fly_glide_right57588 60085–60114 ———
25822kill_backpack_fly_idle57569 60085–60114 ———
25823kill_backpack_fly_jump57570 60085–60114 ———
25824kill_backpack_fly_land57571 60085–60114 ———
25825kill_backpack_fly_long_fall57572 60085–60114 ———
25826kill_backpack_fly_run57573 60085–60114 ———
25840kill_backpack_fly_strafe_left57589 60085–60114 ———
25841kill_backpack_fly_strafe_right57590 60085–60114 ———
25827kill_backpack_fly_turn_left57574 60085–60114 ———
25828kill_backpack_fly_turn_right57575 60085–60114 ———
25842kill_backpack_fly_up57591 60085–60114 ———
25829kill_backpack_fly_walk57576 60085–60114 ———
25833kill_backpack_fly__walk57582 60085–60114 ———
26242kill_backpack_forestry_chopping58170 60085–60114 ———
26243kill_backpack_forestry_success58171 60085–60114 ———
26244kill_backpack_gag58172 60085–60114 ———
26245kill_backpack_gathering_end58173 60085–60114 ———
26246kill_backpack_gathering_loop58174 60085–60114 ———
26247kill_backpack_gathering_search58175 60085–60114 ———
26248kill_backpack_gathering_start58176 60085–60114 ———
26249kill_backpack_gathering_success58177 60085–60114 ———
26250kill_backpack_ghost_idle58178 60085–60114 ———
26251kill_backpack_giggle58179 60085–60114 ———
26252kill_backpack_glare58180 60085–60114 ———
31133kill_backpack_glider_backup8482681 60085–60114 ———
31134kill_backpack_glider_fall8482682 60085–60114 ———
31135kill_backpack_glider_fly_backup8482683 60085–60114 ———
31136kill_backpack_glider_fly_idle8482684 60085–60114 ———
31137kill_backpack_glider_fly_run8482685 60085–60114 ———
31138kill_backpack_glider_fly_strafe_left8482686 60085–60114 ———
31139kill_backpack_glider_fly_strafe_right8482687 60085–60114 ———
31140kill_backpack_glider_fly_turn_left8482688 60085–60114 ———
31141kill_backpack_glider_fly_turn_right8482689 60085–60114 ———
31142kill_backpack_glider_fly_walk8482690 60085–60114 ———
31143kill_backpack_glider_glide8482691 60085–60114 ———
31144kill_backpack_glider_glide_left8482692 60085–60114 ———
31145kill_backpack_glider_glide_right8482693 60085–60114 ———
31146kill_backpack_glider_idle8482694 60085–60114 ———
31147kill_backpack_glider_idle018482695 60085–60114 ———
31148kill_backpack_glider_jump8482696 60085–60114 ———
31149kill_backpack_glider_jump_substitute8482697 60085–60114 ———
31150kill_backpack_glider_land8482698 60085–60114 ———
31151kill_backpack_glider_long_fall8482699 60085–60114 ———
31152kill_backpack_glider_run8482700 60085–60114 ———
31153kill_backpack_glider_turn_left8482701 60085–60114 ———
31154kill_backpack_glider_turn_right8482702 60085–60114 ———
31155kill_backpack_glider_walk8482703 60085–60114 ———
31439kill_backpack_glide_left8485761 60085–60114 ———
31508kill_backpack_ground_walk8487706 60085–60114 ———
26253kill_backpack_hearnoevil58181 60085–60114 ———
26254kill_backpack_heartattack58182 60085–60114 ———
26255kill_backpack_hover_idle58183 60085–60114 ———
25843kill_backpack_idle57592 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.