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
29324backpack_leaper_fly_strafe_right93847 60085–60114 ———
29325backpack_leaper_fly_turn_left93848 60085–60114 ———
29326backpack_leaper_fly_turn_right93849 60085–60114 ———
29327backpack_leaper_fly_up93850 60085–60114 ———
29328backpack_leaper_fly_walk93851 60085–60114 ———
29329backpack_leaper_idle93852 60085–60114 ———
29330backpack_leaper_idle0193853 60085–60114 ———
29331backpack_leaper_jump93854 60085–60114 ———
29332backpack_leaper_jump_substitute93855 60085–60114 ———
29333backpack_leaper_land93856 60085–60114 ———
29334backpack_leaper_long_fall93857 60085–60114 ———
29335backpack_leaper_run93858 60085–60114 ———
29336backpack_leaper_turn_left93859 60085–60114 ———
29337backpack_leaper_turn_right93860 60085–60114 ———
29338backpack_leaper_walk93861 60085–60114 ———
15471backpack_leatherworking_failure25423 60085–60114 ———
15472backpack_leatherworking_idle25424 60085–60114 ———
15473backpack_leatherworking_success25425 60085–60114 ———
15474backpack_left_hand_fist25426 60085–60114 ———
15475backpack_left_hand_relaxed25427 60085–60114 ———
15476backpack_listen25428 60085–60114 ———
15053backpack_long_fall24827 60085–60114 ———
15477backpack_long_fall_moving25429 60085–60114 ———
15478backpack_metalworking_failure25430 60085–60114 ———
15479backpack_metalworking_idle25431 60085–60114 ———
15480backpack_metalworking_success25432 60085–60114 ———
15481backpack_mining_digging25433 60085–60114 ———
15482backpack_mining_success25434 60085–60114 ———
15483backpack_monk_attack25435 60085–60114 ———
15484backpack_monk_attack0125436 60085–60114 ———
15485backpack_monk_attack0225437 60085–60114 ———
15486backpack_monk_attack0325438 60085–60114 ———
15487backpack_monk_attack_recoil25439 60085–60114 ———
15488backpack_monk_attack_recoil0125440 60085–60114 ———
15489backpack_monk_attack_recoil0225441 60085–60114 ———
15490backpack_monk_attack_recoil0325442 60085–60114 ———
15491backpack_monk_backup25443 60085–60114 ———
15492backpack_monk_charge_up25444 60085–60114 ———
15493backpack_monk_defensive_buff25445 60085–60114 ———
15494backpack_monk_dodge_backhand25446 60085–60114 ———
15495backpack_monk_dodge_down25447 60085–60114 ———
15496backpack_monk_dodge_forehand25448 60085–60114 ———
15497backpack_monk_dodge_thrust25449 60085–60114 ———
15498backpack_monk_enter25450 60085–60114 ———
15499backpack_monk_exit25451 60085–60114 ———
15500backpack_monk_feint25452 60085–60114 ———
15501backpack_monk_idle25453 60085–60114 ———
15502backpack_monk_kick25454 60085–60114 ———
15503backpack_monk_kick_flying25455 60085–60114 ———
15504backpack_monk_kick_spin25456 60085–60114 ———
15505backpack_monk_knockdowntoknees25457 60085–60114 ———
15506backpack_monk_knockedtoback25458 60085–60114 ———
15507backpack_monk_knockedtoback_getup25459 60085–60114 ———
15508backpack_monk_offensive_buff25460 60085–60114 ———
15509backpack_monk_offensive_buff_short25461 60085–60114 ———
15510backpack_monk_ouch_backhand25462 60085–60114 ———
15511backpack_monk_ouch_down25463 60085–60114 ———
15512backpack_monk_ouch_forehand25464 60085–60114 ———
15513backpack_monk_ouch_thrust25465 60085–60114 ———
15514backpack_monk_parry_backhand25466 60085–60114 ———
15515backpack_monk_parry_down25467 60085–60114 ———
15516backpack_monk_parry_forehand25468 60085–60114 ———
15517backpack_monk_parry_thrust25469 60085–60114 ———
15518backpack_monk_strafe_left25470 60085–60114 ———
15519backpack_monk_strafe_right25471 60085–60114 ———
15520backpack_monk_super_buff25472 60085–60114 ———
15521backpack_monk_taunt_combat_art25473 60085–60114 ———
15522backpack_monk_walk25474 60085–60114 ———
15523backpack_monk_whirling_attack25475 60085–60114 ———
15524backpack_monk_wild_swing25476 60085–60114 ———
15525backpack_offensive_buff25477 60085–60114 ———
15526backpack_ouch25478 60085–60114 ———
15527backpack_pike_attack25479 60085–60114 ———
15528backpack_pike_attack0125480 60085–60114 ———
15529backpack_pike_attack0225481 60085–60114 ———
15530backpack_pike_attack0325482 60085–60114 ———
15531backpack_pike_attack_recoil25483 60085–60114 ———
15532backpack_pike_attack_recoil0125484 60085–60114 ———
15533backpack_pike_attack_recoil0225485 60085–60114 ———
15534backpack_pike_attack_recoil0325486 60085–60114 ———
15535backpack_pike_backup25487 60085–60114 ———
15536backpack_pike_charge_up25488 60085–60114 ———
15537backpack_pike_death_blow25489 60085–60114 ———
15538backpack_pike_defensive_buff25490 60085–60114 ———
15539backpack_pike_dodge_backhand25491 60085–60114 ———
15540backpack_pike_dodge_down25492 60085–60114 ———
15541backpack_pike_dodge_forehand25493 60085–60114 ———
15542backpack_pike_dodge_thrust25494 60085–60114 ———
15543backpack_pike_enter25495 60085–60114 ———
15544backpack_pike_exit25496 60085–60114 ———
15545backpack_pike_feint25497 60085–60114 ———
15546backpack_pike_idle25498 60085–60114 ———
15547backpack_pike_kick25499 60085–60114 ———
15548backpack_pike_knockdowntoknees25500 60085–60114 ———
15549backpack_pike_knockedtoback25501 60085–60114 ———
15550backpack_pike_knockedtoback_getup25502 60085–60114 ———
15551backpack_pike_offensive_buff25503 60085–60114 ———
15552backpack_pike_ouch_backhand25504 60085–60114 ———
15553backpack_pike_ouch_down25505 60085–60114 ———
15554backpack_pike_ouch_forehand25506 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.