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
30016power_aura_leaper_fly_strafe_right108233 60085–60114 ———
30017power_aura_leaper_fly_turn_left108234 60085–60114 ———
30018power_aura_leaper_fly_turn_right108235 60085–60114 ———
30019power_aura_leaper_fly_up108236 60085–60114 ———
30020power_aura_leaper_fly_walk108237 60085–60114 ———
30021power_aura_leaper_idle108238 60085–60114 ———
30022power_aura_leaper_jump108239 60085–60114 ———
30023power_aura_leaper_land108240 60085–60114 ———
30024power_aura_leaper_long_fall108241 60085–60114 ———
30025power_aura_leaper_run108242 60085–60114 ———
30026power_aura_leaper_turn_left108243 60085–60114 ———
30027power_aura_leaper_turn_right108244 60085–60114 ———
30028power_aura_leaper_walk108245 60085–60114 ———
12385power_on18595 60085–60114 ———
11348power_up16320 60085–60114 ———
9277pp_casthi_snd12032 60085–60114 ———
9278pp_stab_snd12033 60085–60114 ———
14237pray22609 60085–60114 ———
15893prestige_point_acquired26325 60085–60114 ———
16001prestige_point_sound26687 60085–60114 ———
556procedural_hit434 1–843 ———
6726procedural_hit434 60085–60114 ———
863procedural_ouch1053 1–843 ———
6773procedural_ouch1053 60085–60114 ———
948procedural_parry1162 1–843 ———
6776procedural_parry1162 60085–60114 ———
13364proc_sword_head20650 60085–60114 ———
9279ps_caststream_snd12034 60085–60114 ———
9280ps_resultfx_snd12035 60085–60114 ———
1385pugilist_attack1644 1–843 ———
6955pugilist_attack1644 60085–60114 ———
1386pugilist_attack011645 1–843 ———
9281pugilist_attack0112036 60085–60114 ———
1387pugilist_attack021646 1–843 ———
6956pugilist_attack021646 60085–60114 ———
2989pugilist_attack034644 1–843 ———
9282pugilist_attack0312037 60085–60114 ———
1388pugilist_attack_recoil1647 1–843 ———
9283pugilist_attack_recoil12038 60085–60114 ———
1389pugilist_attack_recoil011648 1–843 ———
9284pugilist_attack_recoil0112039 60085–60114 ———
1390pugilist_attack_recoil021649 1–843 ———
9285pugilist_attack_recoil0212040 60085–60114 ———
2990pugilist_attack_recoil034645 1–843 ———
9286pugilist_attack_recoil0312041 60085–60114 ———
557pugilist_backup435 1–843 ———
9287pugilist_backup12042 60085–60114 ———
2431pugilist_charge_up3026 1–843 ———
9288pugilist_charge_up12043 60085–60114 ———
11156pugilist_charge_up_long15899 60085–60114 ———
2432pugilist_defensive_buff3027 1–843 ———
9289pugilist_defensive_buff12044 60085–60114 ———
2928pugilist_dodge4511 1–843 ———
9290pugilist_dodge12045 60085–60114 ———
2929pugilist_dodge014512 1–843 ———
9291pugilist_dodge0112046 60085–60114 ———
2930pugilist_dodge024513 1–843 ———
9292pugilist_dodge0212047 60085–60114 ———
1391pugilist_dodge_backhand1650 1–843 ———
9293pugilist_dodge_backhand12048 60085–60114 ———
1392pugilist_dodge_down1651 1–843 ———
9294pugilist_dodge_down12049 60085–60114 ———
1393pugilist_dodge_forehand1652 1–843 ———
9295pugilist_dodge_forehand12050 60085–60114 ———
2991pugilist_dodge_thrust4646 1–843 ———
9296pugilist_dodge_thrust12051 60085–60114 ———
558pugilist_enter444 1–843 ———
9297pugilist_enter12052 60085–60114 ———
559pugilist_exit447 1–843 ———
9298pugilist_exit12053 60085–60114 ———
2433pugilist_feint3028 1–843 ———
9299pugilist_feint12054 60085–60114 ———
560pugilist_idle450 1–843 ———
6727pugilist_idle450 60085–60114 ———
14047pugilist_idle0122089 60085–60114 ———
14059pugilist_idle0222123 60085–60114 ———
2434pugilist_kick3029 1–843 ———
7253pugilist_kick3029 60085–60114 ———
2435pugilist_knockdowntoknees3030 1–843 ———
9300pugilist_knockdowntoknees12055 60085–60114 ———
2436pugilist_knockedtoback3031 1–843 ———
9301pugilist_knockedtoback12056 60085–60114 ———
2437pugilist_knockedtoback_getup3032 1–843 ———
9302pugilist_knockedtoback_getup12057 60085–60114 ———
2438pugilist_offensive_buff3033 1–843 ———
9303pugilist_offensive_buff12058 60085–60114 ———
2931pugilist_ouch4514 1–843 ———
9304pugilist_ouch12059 60085–60114 ———
2932pugilist_ouch014515 1–843 ———
9305pugilist_ouch0112060 60085–60114 ———
1394pugilist_ouch_backhand1653 1–843 ———
9306pugilist_ouch_backhand12061 60085–60114 ———
1395pugilist_ouch_down1654 1–843 ———
9307pugilist_ouch_down12062 60085–60114 ———
1396pugilist_ouch_forehand1655 1–843 ———
9308pugilist_ouch_forehand12063 60085–60114 ———
2992pugilist_ouch_thrust4647 1–843 ———
9309pugilist_ouch_thrust12064 60085–60114 ———
2933pugilist_parry4516 1–843 ———
9310pugilist_parry12065 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.