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
25848kill_backpack_strafe_left57597 60085–60114 ———
25849kill_backpack_strafe_left_run57598 60085–60114 ———
25850kill_backpack_strafe_right57599 60085–60114 ———
25851kill_backpack_strafe_right_run57600 60085–60114 ———
26425kill_backpack_sulk58353 60085–60114 ———
26426kill_backpack_super_buff58354 60085–60114 ———
26427kill_backpack_swim_attack58355 60085–60114 ———
26428kill_backpack_swim_backup58356 60085–60114 ———
26429kill_backpack_swim_idle58357 60085–60114 ———
26430kill_backpack_swim_ouch58358 60085–60114 ———
26431kill_backpack_swim_walk58359 60085–60114 ———
26432kill_backpack_tail58360 60085–60114 ———
26433kill_backpack_tailoring_failure58361 60085–60114 ———
26434kill_backpack_tailoring_idle58362 60085–60114 ———
26435kill_backpack_tailoring_success58363 60085–60114 ———
26436kill_backpack_tapfoot58364 60085–60114 ———
26437kill_backpack_taunt_combat_art58365 60085–60114 ———
26438kill_backpack_threaten58366 60085–60114 ———
25852kill_backpack_turn_left57601 60085–60114 ———
25853kill_backpack_turn_right57602 60085–60114 ———
26439kill_backpack_untrained_attack58367 60085–60114 ———
26440kill_backpack_untrained_backup58368 60085–60114 ———
26441kill_backpack_untrained_dodge58369 60085–60114 ———
26442kill_backpack_untrained_dodge0158370 60085–60114 ———
26443kill_backpack_untrained_dodge0258371 60085–60114 ———
26444kill_backpack_untrained_idle58372 60085–60114 ———
26445kill_backpack_untrained_ouch58373 60085–60114 ———
26446kill_backpack_untrained_ouch0158374 60085–60114 ———
26447kill_backpack_untrained_parry58375 60085–60114 ———
26448kill_backpack_untrained_recoil58376 60085–60114 ———
26449kill_backpack_untrained_strafe_left58377 60085–60114 ———
26450kill_backpack_untrained_strafe_right58378 60085–60114 ———
26451kill_backpack_untrained_walk58379 60085–60114 ———
25854kill_backpack_walk57603 60085–60114 ———
26452kill_backpack_whirling_attack58380 60085–60114 ———
26453kill_backpack_whistle58381 60085–60114 ———
26454kill_backpack_wild_swing58382 60085–60114 ———
26455kill_backpack_wild_swing_recoilmax58383 60085–60114 ———
26456kill_backpack_woodworking_failure58384 60085–60114 ———
26457kill_backpack_woodworking_idle58385 60085–60114 ———
26458kill_backpack_woodworking_success58386 60085–60114 ———
26459kill_backpack_worship_idle58387 60085–60114 ———
26460kill_backpack_yeah58388 60085–60114 ———
3483kill_backup32847 1–843 ———
18878kill_backup43591 60085–60114 ———
5125kill_backup_run35073 1–843 ———
18879kill_backup_run43592 60085–60114 ———
22950kill_badger_buff50814 60085–60114 ———
24609kill_badger_dig54361 60085–60114 ———
23230kill_badge_acquired51497 60085–60114 ———
5344kill_bad_outcome0135448 1–843 ———
18880kill_bad_outcome0143593 60085–60114 ———
5345kill_bad_outcome01_shuttle35449 1–843 ———
18881kill_bad_outcome01_shuttle43594 60085–60114 ———
5346kill_bad_outcome0235450 1–843 ———
18882kill_bad_outcome0243595 60085–60114 ———
5347kill_bad_outcome02_shuttle35451 1–843 ———
18883kill_bad_outcome02_shuttle43596 60085–60114 ———
27688kill_ballista_launch_sound63243 60085–60114 ———
27689kill_ballista_load_sound63244 60085–60114 ———
5241kill_ball_bk35243 1–843 ———
18884kill_ball_bk43597 60085–60114 ———
5242kill_ball_bk_sm35244 1–843 ———
18885kill_ball_bk_sm43598 60085–60114 ———
5243kill_ball_glow35245 1–843 ———
18886kill_ball_glow43599 60085–60114 ———
24402kill_ball_lightning_bolt_p2p53863 60085–60114 ———
5244kill_ball_wht35246 1–843 ———
18887kill_ball_wht43600 60085–60114 ———
5245kill_ball_wht_sm35247 1–843 ———
18888kill_ball_wht_sm43601 60085–60114 ———
27013kill_barbarian_snow_ice_trail60384 60085–60114 ———
24916kill_barrel_blast_snd55037 60085–60114 ———
6246kill_barrel_fire37563 1–843 ———
18889kill_barrel_fire43602 60085–60114 ———
6235kill_barrel_pieces37509 1–843 ———
18890kill_barrel_pieces43603 60085–60114 ———
30699kill_barrel_sit_enter8463176 60085–60114 ———
30700kill_barrel_sit_idle8463177 60085–60114 ———
5875kill_base36362 1–843 ———
18891kill_base43604 60085–60114 ———
3484kill_battlecry32848 1–843 ———
18893kill_battlecry43606 60085–60114 ———
5932kill_bat_swarm36537 1–843 ———
18892kill_bat_swarm43605 60085–60114 ———
5246kill_bc_caged_snd35248 1–843 ———
18894kill_bc_caged_snd43607 60085–60114 ———
5193kill_bd_cast_lp_snd35183 1–843 ———
18895kill_bd_cast_lp_snd43608 60085–60114 ———
5194kill_bd_fireburst_snd35184 1–843 ———
18896kill_bd_fireburst_snd43609 60085–60114 ———
5126kill_beaker0135075 1–843 ———
18897kill_beaker0143610 60085–60114 ———
21962kill_beam0_blue48717 60085–60114 ———
21963kill_beam0_red48718 60085–60114 ———
21964kill_beam0_yellow48719 60085–60114 ———
21965kill_beam1_blue48720 60085–60114 ———
21966kill_beam1_red48721 60085–60114 ———
21967kill_beam1_yellow48722 60085–60114 ———
21968kill_beam2_blue48723 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.