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
6645kill_fly39548 1–843 ———
19600kill_fly44327 60085–60114 ———
6146kill_fly_attack37308 1–843 ———
19601kill_fly_attack44328 60085–60114 ———
24586kill_fly_attack0154305 60085–60114 ———
24587kill_fly_attack0254306 60085–60114 ———
24588kill_fly_attack0354307 60085–60114 ———
6147kill_fly_attack_bite37309 1–843 ———
19602kill_fly_attack_bite44329 60085–60114 ———
6093kill_fly_attack_breath37095 1–843 ———
19603kill_fly_attack_breath44330 60085–60114 ———
6148kill_fly_attack_breath_arc37310 1–843 ———
19604kill_fly_attack_breath_arc44331 60085–60114 ———
30761kill_fly_attack_room_a8465626 60085–60114 ———
30762kill_fly_attack_room_b8465627 60085–60114 ———
23408kill_fly_away51949 60085–60114 ———
31588kill_fly_backup8490373 60085–60114 ———
30802kill_fly_charge8467567 60085–60114 ———
30763kill_fly_circle_skyshrine8465628 60085–60114 ———
21924kill_fly_combat48596 60085–60114 ———
21925kill_fly_combat0148597 60085–60114 ———
26958kill_fly_dead60152 60085–60114 ———
24589kill_fly_death54308 60085–60114 ———
6094kill_fly_dive37096 1–843 ———
19605kill_fly_dive44332 60085–60114 ———
24590kill_fly_dodge54309 60085–60114 ———
28039kill_fly_dodge0164211 60085–60114 ———
21926kill_fly_enter48598 60085–60114 ———
26575kill_fly_enter_idle58857 60085–60114 ———
30791kill_fly_enter_room_a8467052 60085–60114 ———
21927kill_fly_exit48599 60085–60114 ———
30792kill_fly_exit_room_a8467053 60085–60114 ———
23388kill_fly_from_roost51898 60085–60114 ———
30135kill_fly_gather_idle8454396 60085–60114 ———
6095kill_fly_glide37097 1–843 ———
19606kill_fly_glide44333 60085–60114 ———
6096kill_fly_glide237098 1–843 ———
19607kill_fly_glide244334 60085–60114 ———
26566kill_fly_hover58800 60085–60114 ———
6097kill_fly_idle37099 1–843 ———
19608kill_fly_idle44335 60085–60114 ———
30764kill_fly_idle_room_a8465629 60085–60114 ———
30765kill_fly_idle_skyshrine8465630 60085–60114 ———
4586kill_fly_in34411 1–843 ———
19609kill_fly_in44336 60085–60114 ———
27334kill_fly_in_old61792 60085–60114 ———
24176kill_fly_jumpsubstitute53471 60085–60114 ———
28066kill_fly_left64379 60085–60114 ———
30136kill_fly_manipulate_idle8454397 60085–60114 ———
6149kill_fly_ouch37311 1–843 ———
19610kill_fly_ouch44337 60085–60114 ———
24591kill_fly_ouchbackhand54310 60085–60114 ———
24592kill_fly_ouchforehand54311 60085–60114 ———
24593kill_fly_ouchthrust54312 60085–60114 ———
24153kill_fly_ouch_backhand53397 60085–60114 ———
6099kill_fly_run37123 1–843 ———
19611kill_fly_run44338 60085–60114 ———
28040kill_fly_trans_left64212 60085–60114 ———
24594kill_fly_turnleft54313 60085–60114 ———
24595kill_fly_turnright54314 60085–60114 ———
24177kill_fly_turn_left53472 60085–60114 ———
24178kill_fly_turn_right53473 60085–60114 ———
24179kill_fly_walk53474 60085–60114 ———
5203kill_fl_bckgrnd_snd35198 1–843 ———
19586kill_fl_bckgrnd_snd44313 60085–60114 ———
5204kill_fl_lash_snd35199 1–843 ———
19587kill_fl_lash_snd44314 60085–60114 ———
5205kill_fl_whiphit_snd35200 1–843 ———
19588kill_fl_whiphit_snd44315 60085–60114 ———
6318kill_fmba_breathattack_snd37925 1–843 ———
19612kill_fmba_breathattack_snd44339 60085–60114 ———
30555kill_foley_punch_leather8456580 60085–60114 ———
19613kill_foostep_trigger44340 60085–60114 ———
4551kill_footstep34373 1–843 ———
19618kill_footstep44345 60085–60114 ———
5763kill_footstep_chainmail_carpet35980 1–843 ———
19619kill_footstep_chainmail_carpet44346 60085–60114 ———
5764kill_footstep_chainmail_dirt35981 1–843 ———
19620kill_footstep_chainmail_dirt44347 60085–60114 ———
5765kill_footstep_chainmail_grass35982 1–843 ———
19621kill_footstep_chainmail_grass44348 60085–60114 ———
5766kill_footstep_chainmail_gravel35983 1–843 ———
19622kill_footstep_chainmail_gravel44349 60085–60114 ———
5767kill_footstep_chainmail_ice35984 1–843 ———
19623kill_footstep_chainmail_ice44350 60085–60114 ———
5768kill_footstep_chainmail_metal35985 1–843 ———
19624kill_footstep_chainmail_metal44351 60085–60114 ———
5769kill_footstep_chainmail_mud35986 1–843 ———
19625kill_footstep_chainmail_mud44352 60085–60114 ———
5770kill_footstep_chainmail_sand35987 1–843 ———
19626kill_footstep_chainmail_sand44353 60085–60114 ———
5771kill_footstep_chainmail_snow35988 1–843 ———
19627kill_footstep_chainmail_snow44354 60085–60114 ———
5772kill_footstep_chainmail_stone35989 1–843 ———
19628kill_footstep_chainmail_stone44355 60085–60114 ———
5773kill_footstep_chainmail_water35990 1–843 ———
19629kill_footstep_chainmail_water44356 60085–60114 ———
5774kill_footstep_chainmail_wood35991 1–843 ———
19630kill_footstep_chainmail_wood44357 60085–60114 ———
4688kill_footstep_leather_carpet34553 1–843 ———
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.