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
10594froglok_2h_sword_super_buff13620 60085–60114 ———
10595froglok_2h_sword_walk13621 60085–60114 ———
7838froglok_2h_sword_whirling_attack10295 60085–60114 ———
7839froglok_2h_sword_wild_swing10296 60085–60114 ———
12084froglok_bear_backup17904 60085–60114 ———
12085froglok_bear_idle17905 60085–60114 ———
12086froglok_bear_jump17906 60085–60114 ———
12087froglok_bear_jump_substitute17907 60085–60114 ———
12088froglok_bear_run17908 60085–60114 ———
12089froglok_bear_sprint17909 60085–60114 ———
12090froglok_bear_turn_left17910 60085–60114 ———
12091froglok_bear_turn_right17911 60085–60114 ———
12092froglok_bear_walk17912 60085–60114 ———
7840froglok_bostaff_attack10297 60085–60114 ———
7841froglok_bostaff_attack0110298 60085–60114 ———
7842froglok_bostaff_attack0210299 60085–60114 ———
7843froglok_bostaff_attack0310300 60085–60114 ———
10596froglok_bostaff_attack_recoil13622 60085–60114 ———
10597froglok_bostaff_attack_recoil0113623 60085–60114 ———
10598froglok_bostaff_attack_recoil0213624 60085–60114 ———
10599froglok_bostaff_attack_recoil0313625 60085–60114 ———
10669froglok_bostaff_charge_up13705 60085–60114 ———
10600froglok_bostaff_defensive_buff13626 60085–60114 ———
10601froglok_bostaff_dodge_backhand13627 60085–60114 ———
10602froglok_bostaff_dodge_down13628 60085–60114 ———
10603froglok_bostaff_dodge_forehand13629 60085–60114 ———
10604froglok_bostaff_dodge_thrust13630 60085–60114 ———
7844froglok_bostaff_idle10301 60085–60114 ———
7845froglok_bostaff_kick10302 60085–60114 ———
7930froglok_bostaff_knockedtoback10596 60085–60114 ———
7931froglok_bostaff_knockedtoback_getup10597 60085–60114 ———
10605froglok_bostaff_offensive_buff13631 60085–60114 ———
10606froglok_bostaff_ouch_backhand13632 60085–60114 ———
10607froglok_bostaff_ouch_down13633 60085–60114 ———
10608froglok_bostaff_ouch_forehand13634 60085–60114 ———
10609froglok_bostaff_ouch_thrust13635 60085–60114 ———
10610froglok_bostaff_parry_backhand13636 60085–60114 ———
10611froglok_bostaff_parry_down13637 60085–60114 ———
10612froglok_bostaff_parry_forehand13638 60085–60114 ———
10613froglok_bostaff_parry_thrust13639 60085–60114 ———
10614froglok_bostaff_super_buff13640 60085–60114 ———
7846froglok_bostaff_whirling_attack10303 60085–60114 ———
7847froglok_bostaff_wild_swing10304 60085–60114 ———
7654froglok_bow9844 60085–60114 ———
7800froglok_bow_dodge_backhand10212 60085–60114 ———
7801froglok_bow_dodge_down10213 60085–60114 ———
7802froglok_bow_dodge_forehand10214 60085–60114 ———
7803froglok_bow_dodge_thrust10215 60085–60114 ———
7829froglok_bow_idle10251 60085–60114 ———
7932froglok_bow_knockedtoback10598 60085–60114 ———
7933froglok_bow_knockedtoback_getup10599 60085–60114 ———
7804froglok_bow_ouch_backhand10216 60085–60114 ———
7805froglok_bow_ouch_down10217 60085–60114 ———
7806froglok_bow_ouch_forehand10218 60085–60114 ———
7807froglok_bow_ouch_thrust10219 60085–60114 ———
7918froglok_converse_male0410574 60085–60114 ———
7919froglok_converse_male1210575 60085–60114 ———
7655froglok_crouch9845 60085–60114 ———
7656froglok_curtsey9846 60085–60114 ———
7657froglok_dead9847 60085–60114 ———
11445froglok_dead_enter16495 60085–60114 ———
7658froglok_death9848 60085–60114 ———
7808froglok_dual_wield_attack10220 60085–60114 ———
7809froglok_dual_wield_attack0110221 60085–60114 ———
7810froglok_dual_wield_attack0210222 60085–60114 ———
7811froglok_dual_wield_attack0310223 60085–60114 ———
10615froglok_dual_wield_attack_recoil13641 60085–60114 ———
10616froglok_dual_wield_attack_recoil0113642 60085–60114 ———
10617froglok_dual_wield_attack_recoil0213643 60085–60114 ———
10618froglok_dual_wield_attack_recoil0313644 60085–60114 ———
7812froglok_dual_wield_dodge_backhand10224 60085–60114 ———
7813froglok_dual_wield_dodge_down10225 60085–60114 ———
7814froglok_dual_wield_dodge_forehand10226 60085–60114 ———
7815froglok_dual_wield_dodge_thrust10227 60085–60114 ———
7816froglok_dual_wield_idle10228 60085–60114 ———
7830froglok_dual_wield_kick10252 60085–60114 ———
10670froglok_dual_wield_knockdowntoknees13706 60085–60114 ———
7934froglok_dual_wield_knockedtoback10600 60085–60114 ———
7935froglok_dual_wield_knockedtoback_getup10601 60085–60114 ———
10671froglok_dual_wield_offensive_buff13707 60085–60114 ———
7817froglok_dual_wield_ouch_backhand10229 60085–60114 ———
7818froglok_dual_wield_ouch_down10230 60085–60114 ———
7819froglok_dual_wield_ouch_forehand10231 60085–60114 ———
7820froglok_dual_wield_ouch_thrust10232 60085–60114 ———
10619froglok_dual_wield_parry_backhand13645 60085–60114 ———
10620froglok_dual_wield_parry_down13646 60085–60114 ———
10621froglok_dual_wield_parry_forehand13647 60085–60114 ———
10622froglok_dual_wield_parry_thrust13648 60085–60114 ———
10672froglok_dual_wield_super_buff13708 60085–60114 ———
7831froglok_dual_wield_whirling_attack10253 60085–60114 ———
7832froglok_dual_wield_wild_swing10254 60085–60114 ———
10563froglok_forestry_chopping13329 60085–60114 ———
7920froglok_forestry_success10576 60085–60114 ———
7912froglok_gathering_search10553 60085–60114 ———
7913froglok_gathering_success10554 60085–60114 ———
16207froglok_godly_light_sparkles27554 60085–60114 ———
7910froglok_horse_idle10533 60085–60114 ———
7921froglok_horse_jump_substitute10577 60085–60114 ———
7650froglok_idle9788 60085–60114 ———
7922froglok_kick10578 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.