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
10994fae_dark_pike_kick15199 60085–60114 ———
10995fae_dark_pike_whirling_attack15200 60085–60114 ———
10996fae_dark_pike_wild_swing15201 60085–60114 ———
10997fae_dark_pugilist_attack15202 60085–60114 ———
10998fae_dark_pugilist_attack0215203 60085–60114 ———
10999fae_dark_pugilist_kick15204 60085–60114 ———
11000fae_dark_pugilist_whirling_attack15205 60085–60114 ———
11001fae_dark_pugilist_wild_swing15206 60085–60114 ———
11002fae_dark_run15207 60085–60114 ———
11003fae_dark_sit_enter15208 60085–60114 ———
11004fae_dark_sit_exit15209 60085–60114 ———
11005fae_dark_sit_idle15210 60085–60114 ———
11006fae_dark_untrained_ouch0115211 60085–60114 ———
16206fae_fireflies_trail27553 60085–60114 ———
7674fae_light_1h_sword_attack10019 60085–60114 ———
7675fae_light_1h_sword_attack0110020 60085–60114 ———
7676fae_light_1h_sword_attack0210021 60085–60114 ———
7677fae_light_1h_sword_attack0310022 60085–60114 ———
7678fae_light_1h_sword_death_blow10023 60085–60114 ———
7679fae_light_1h_sword_death_blow0110024 60085–60114 ———
7680fae_light_1h_sword_dodge_backhand10025 60085–60114 ———
7681fae_light_1h_sword_dodge_down10026 60085–60114 ———
7682fae_light_1h_sword_dodge_forehand10027 60085–60114 ———
7683fae_light_1h_sword_dodge_thrust10028 60085–60114 ———
7684fae_light_1h_sword_ouch_backhand10029 60085–60114 ———
7685fae_light_1h_sword_ouch_down10030 60085–60114 ———
7686fae_light_1h_sword_ouch_forehand10031 60085–60114 ———
7687fae_light_1h_sword_ouch_thrust10032 60085–60114 ———
7688fae_light_1h_sword_parry_backhand10033 60085–60114 ———
7689fae_light_1h_sword_parry_down10034 60085–60114 ———
7690fae_light_1h_sword_parry_forehand10035 60085–60114 ———
7691fae_light_1h_sword_parry_thrust10036 60085–60114 ———
7692fae_light_2h_sword_attack10037 60085–60114 ———
7693fae_light_2h_sword_attack0110038 60085–60114 ———
7694fae_light_2h_sword_attack0210039 60085–60114 ———
7695fae_light_2h_sword_defensive_buff10040 60085–60114 ———
7696fae_light_2h_sword_dodge_backhand10041 60085–60114 ———
7697fae_light_2h_sword_dodge_down10042 60085–60114 ———
7698fae_light_2h_sword_dodge_forehand10043 60085–60114 ———
7699fae_light_2h_sword_enter10044 60085–60114 ———
7700fae_light_2h_sword_kick10045 60085–60114 ———
7701fae_light_2h_sword_ouch_backhand10046 60085–60114 ———
7702fae_light_2h_sword_ouch_down10047 60085–60114 ———
7703fae_light_2h_sword_ouch_forehand10048 60085–60114 ———
7704fae_light_2h_sword_ouch_thrust10049 60085–60114 ———
10722fae_light_2h_sword_whirling_attack13818 60085–60114 ———
10723fae_light_2h_sword_wild_swing13819 60085–60114 ———
12075fae_light_bear_backup17895 60085–60114 ———
12076fae_light_bear_idle17896 60085–60114 ———
12077fae_light_bear_jump17897 60085–60114 ———
12078fae_light_bear_jump_substitute17898 60085–60114 ———
12079fae_light_bear_run17899 60085–60114 ———
12080fae_light_bear_sprint17900 60085–60114 ———
12081fae_light_bear_turn_left17901 60085–60114 ———
12082fae_light_bear_turn_right17902 60085–60114 ———
12083fae_light_bear_walk17903 60085–60114 ———
7705fae_light_bostaff_attack0110052 60085–60114 ———
7706fae_light_bostaff_attack0210053 60085–60114 ———
7707fae_light_bostaff_attack0310054 60085–60114 ———
7896fae_light_bostaff_dodge_backhand10469 60085–60114 ———
7897fae_light_bostaff_dodge_forehand10470 60085–60114 ———
7887fae_light_climbing_backup10415 60085–60114 ———
7888fae_light_climbing_enter_down_root10416 60085–60114 ———
7889fae_light_climbing_exit_up_root10417 60085–60114 ———
7890fae_light_climbing_idle10418 60085–60114 ———
7891fae_light_climbing_strafe_left10419 60085–60114 ———
7892fae_light_climbing_strafe_right10420 60085–60114 ———
7893fae_light_climbing_walk10421 60085–60114 ———
10685fae_light_dance13731 60085–60114 ———
7894fae_light_dead10422 60085–60114 ———
7895fae_light_dead_enter10423 60085–60114 ———
7708fae_light_dual_wield_attack10081 60085–60114 ———
7709fae_light_dual_wield_attack0110082 60085–60114 ———
7710fae_light_dual_wield_attack0210083 60085–60114 ———
7711fae_light_dual_wield_attack0310084 60085–60114 ———
7898fae_light_dual_wield_dodge_backhand10471 60085–60114 ———
7899fae_light_dual_wield_dodge_forehand10472 60085–60114 ———
7712fae_light_dual_wield_kick10085 60085–60114 ———
7900fae_light_dual_wield_ouch_backhand10473 60085–60114 ———
7901fae_light_dual_wield_ouch_forehand10474 60085–60114 ———
7902fae_light_dual_wield_parry_down10475 60085–60114 ———
7713fae_light_dual_wield_whirling_attack10086 60085–60114 ———
7714fae_light_dual_wield_wild_swing10087 60085–60114 ———
10724fae_light_female_2h_sword_wild_swing13820 60085–60114 ———
10740fae_light_female_pike_charge_up13856 60085–60114 ———
10741fae_light_female_pike_defensive_buff13857 60085–60114 ———
10742fae_light_female_pike_offensive_buff13858 60085–60114 ———
7664fae_light_idle9881 60085–60114 ———
7715fae_light_monk_attack10088 60085–60114 ———
7716fae_light_monk_attack0110089 60085–60114 ———
7717fae_light_monk_attack0210090 60085–60114 ———
7718fae_light_monk_attack0310091 60085–60114 ———
7903fae_light_monk_dodge_backhand10508 60085–60114 ———
7904fae_light_monk_dodge_down10509 60085–60114 ———
7719fae_light_monk_wild_swing10092 60085–60114 ———
7720fae_light_pike_attack10093 60085–60114 ———
7721fae_light_pike_attack0110094 60085–60114 ———
7722fae_light_pike_attack0210095 60085–60114 ———
7723fae_light_pike_kick10096 60085–60114 ———
7724fae_light_pike_whirling_attack10097 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.