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
18630kill_froglok_2h_sword_dodge_thrust43061 60085–60114 ———
21379kill_froglok_2h_sword_enter46379 60085–60114 ———
18622kill_froglok_2h_sword_idle43018 60085–60114 ———
18631kill_froglok_2h_sword_kick43062 60085–60114 ———
21380kill_froglok_2h_sword_offensive_buff46380 60085–60114 ———
21381kill_froglok_2h_sword_ouch_backhand46381 60085–60114 ———
21382kill_froglok_2h_sword_ouch_down46382 60085–60114 ———
21383kill_froglok_2h_sword_ouch_forehand46383 60085–60114 ———
21384kill_froglok_2h_sword_ouch_thrust46384 60085–60114 ———
21385kill_froglok_2h_sword_parry_backhand46385 60085–60114 ———
21386kill_froglok_2h_sword_parry_down46386 60085–60114 ———
21387kill_froglok_2h_sword_parry_forehand46387 60085–60114 ———
21388kill_froglok_2h_sword_super_buff46388 60085–60114 ———
21389kill_froglok_2h_sword_walk46389 60085–60114 ———
18632kill_froglok_2h_sword_whirling_attack43063 60085–60114 ———
18633kill_froglok_2h_sword_wild_swing43064 60085–60114 ———
22878kill_froglok_bear_backup50672 60085–60114 ———
22879kill_froglok_bear_idle50673 60085–60114 ———
22880kill_froglok_bear_jump50674 60085–60114 ———
22881kill_froglok_bear_jump_substitute50675 60085–60114 ———
22882kill_froglok_bear_run50676 60085–60114 ———
22883kill_froglok_bear_sprint50677 60085–60114 ———
22884kill_froglok_bear_turn_left50678 60085–60114 ———
22885kill_froglok_bear_turn_right50679 60085–60114 ———
22886kill_froglok_bear_walk50680 60085–60114 ———
18634kill_froglok_bostaff_attack43065 60085–60114 ———
18635kill_froglok_bostaff_attack0143066 60085–60114 ———
18636kill_froglok_bostaff_attack0243067 60085–60114 ———
18637kill_froglok_bostaff_attack0343068 60085–60114 ———
21390kill_froglok_bostaff_attack_recoil46390 60085–60114 ———
21391kill_froglok_bostaff_attack_recoil0146391 60085–60114 ———
21392kill_froglok_bostaff_attack_recoil0246392 60085–60114 ———
21393kill_froglok_bostaff_attack_recoil0346393 60085–60114 ———
21463kill_froglok_bostaff_charge_up46473 60085–60114 ———
21394kill_froglok_bostaff_defensive_buff46394 60085–60114 ———
21395kill_froglok_bostaff_dodge_backhand46395 60085–60114 ———
21396kill_froglok_bostaff_dodge_down46396 60085–60114 ———
21397kill_froglok_bostaff_dodge_forehand46397 60085–60114 ———
21398kill_froglok_bostaff_dodge_thrust46398 60085–60114 ———
18638kill_froglok_bostaff_idle43069 60085–60114 ———
18639kill_froglok_bostaff_kick43070 60085–60114 ———
18724kill_froglok_bostaff_knockedtoback43364 60085–60114 ———
18725kill_froglok_bostaff_knockedtoback_getup43365 60085–60114 ———
21399kill_froglok_bostaff_offensive_buff46399 60085–60114 ———
21400kill_froglok_bostaff_ouch_backhand46400 60085–60114 ———
21401kill_froglok_bostaff_ouch_down46401 60085–60114 ———
21402kill_froglok_bostaff_ouch_forehand46402 60085–60114 ———
21403kill_froglok_bostaff_ouch_thrust46403 60085–60114 ———
21404kill_froglok_bostaff_parry_backhand46404 60085–60114 ———
21405kill_froglok_bostaff_parry_down46405 60085–60114 ———
21406kill_froglok_bostaff_parry_forehand46406 60085–60114 ———
21407kill_froglok_bostaff_parry_thrust46407 60085–60114 ———
21408kill_froglok_bostaff_super_buff46408 60085–60114 ———
18640kill_froglok_bostaff_whirling_attack43071 60085–60114 ———
18641kill_froglok_bostaff_wild_swing43072 60085–60114 ———
18448kill_froglok_bow42612 60085–60114 ———
18594kill_froglok_bow_dodge_backhand42980 60085–60114 ———
18595kill_froglok_bow_dodge_down42981 60085–60114 ———
18596kill_froglok_bow_dodge_forehand42982 60085–60114 ———
18597kill_froglok_bow_dodge_thrust42983 60085–60114 ———
18623kill_froglok_bow_idle43019 60085–60114 ———
18726kill_froglok_bow_knockedtoback43366 60085–60114 ———
18727kill_froglok_bow_knockedtoback_getup43367 60085–60114 ———
18598kill_froglok_bow_ouch_backhand42984 60085–60114 ———
18599kill_froglok_bow_ouch_down42985 60085–60114 ———
18600kill_froglok_bow_ouch_forehand42986 60085–60114 ———
18601kill_froglok_bow_ouch_thrust42987 60085–60114 ———
18712kill_froglok_converse_male0443342 60085–60114 ———
18713kill_froglok_converse_male1243343 60085–60114 ———
18449kill_froglok_crouch42613 60085–60114 ———
18450kill_froglok_curtsey42614 60085–60114 ———
18451kill_froglok_dead42615 60085–60114 ———
22239kill_froglok_dead_enter49263 60085–60114 ———
18452kill_froglok_death42616 60085–60114 ———
18602kill_froglok_dual_wield_attack42988 60085–60114 ———
18603kill_froglok_dual_wield_attack0142989 60085–60114 ———
18604kill_froglok_dual_wield_attack0242990 60085–60114 ———
18605kill_froglok_dual_wield_attack0342991 60085–60114 ———
21409kill_froglok_dual_wield_attack_recoil46409 60085–60114 ———
21410kill_froglok_dual_wield_attack_recoil0146410 60085–60114 ———
21411kill_froglok_dual_wield_attack_recoil0246411 60085–60114 ———
21412kill_froglok_dual_wield_attack_recoil0346412 60085–60114 ———
18606kill_froglok_dual_wield_dodge_backhand42992 60085–60114 ———
18607kill_froglok_dual_wield_dodge_down42993 60085–60114 ———
18608kill_froglok_dual_wield_dodge_forehand42994 60085–60114 ———
18609kill_froglok_dual_wield_dodge_thrust42995 60085–60114 ———
18610kill_froglok_dual_wield_idle42996 60085–60114 ———
18624kill_froglok_dual_wield_kick43020 60085–60114 ———
21464kill_froglok_dual_wield_knockdowntoknees46474 60085–60114 ———
18728kill_froglok_dual_wield_knockedtoback43368 60085–60114 ———
18729kill_froglok_dual_wield_knockedtoback_getup43369 60085–60114 ———
21465kill_froglok_dual_wield_offensive_buff46475 60085–60114 ———
18611kill_froglok_dual_wield_ouch_backhand42997 60085–60114 ———
18612kill_froglok_dual_wield_ouch_down42998 60085–60114 ———
18613kill_froglok_dual_wield_ouch_forehand42999 60085–60114 ———
18614kill_froglok_dual_wield_ouch_thrust43000 60085–60114 ———
21413kill_froglok_dual_wield_parry_backhand46413 60085–60114 ———
21414kill_froglok_dual_wield_parry_down46414 60085–60114 ———
21415kill_froglok_dual_wield_parry_forehand46415 60085–60114 ———
21416kill_froglok_dual_wield_parry_thrust46416 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.