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
29070kerafyrm_vox_roar_0281220 60085–60114 ———
17387kerafyrm_vox_shout_0132300 60085–60114 ———
17388kerafyrm_vox_shout_roar_0132301 60085–60114 ———
17389kerafyrm_vox_shout_roar_0232302 60085–60114 ———
17317kerafyrm_wingflap_lrg_long31839 60085–60114 ———
17318kerafyrm_wingflap_lrg_med31840 60085–60114 ———
17319kerafyrm_wingflap_lrg_shor31841 60085–60114 ———
17344kerafyrm_wing_by31993 60085–60114 ———
17345kerafyrm_wing_by_long31994 60085–60114 ———
10730kerra_female_2h_sword_wild_swing13827 60085–60114 ———
10759kerra_female_pike_charge_up13876 60085–60114 ———
10760kerra_female_pike_defensive_buff13877 60085–60114 ———
10761kerra_female_pike_offensive_buff13878 60085–60114 ———
16200kerra_flea_infestation_trail27505 60085–60114 ———
16225kerra_spirit_guide_mesh27626 60085–60114 ———
1940kettle012327 1–843 ———
9006kettle0111760 60085–60114 ———
1179kick1420 1–843 ———
9007kick11761 60085–60114 ———
11108kick_fx15771 60085–60114 ———
4284kill_1h_crush_attack34091 1–843 ———
17622kill_1h_crush_attack34091 60085–60114 ———
4285kill_1h_crush_attack0134092 1–843 ———
17623kill_1h_crush_attack0134092 60085–60114 ———
4286kill_1h_crush_attack0234093 1–843 ———
17624kill_1h_crush_attack0234093 60085–60114 ———
4287kill_1h_crush_attack0334094 1–843 ———
17625kill_1h_crush_attack0334094 60085–60114 ———
4288kill_1h_crush_attack_recoil34095 1–843 ———
18738kill_1h_crush_attack_recoil43448 60085–60114 ———
4289kill_1h_crush_attack_recoil0134096 1–843 ———
18739kill_1h_crush_attack_recoil0143449 60085–60114 ———
4290kill_1h_crush_attack_recoil0234097 1–843 ———
18740kill_1h_crush_attack_recoil0243450 60085–60114 ———
4291kill_1h_crush_attack_recoil0334098 1–843 ———
18741kill_1h_crush_attack_recoil0343451 60085–60114 ———
4292kill_1h_crush_backup34099 1–843 ———
18742kill_1h_crush_backup43452 60085–60114 ———
4293kill_1h_crush_dodge_backhand34100 1–843 ———
17626kill_1h_crush_dodge_backhand34100 60085–60114 ———
4294kill_1h_crush_dodge_down34101 1–843 ———
17627kill_1h_crush_dodge_down34101 60085–60114 ———
4295kill_1h_crush_dodge_forehand34102 1–843 ———
17628kill_1h_crush_dodge_forehand34102 60085–60114 ———
4296kill_1h_crush_dodge_thrust34103 1–843 ———
17629kill_1h_crush_dodge_thrust34103 60085–60114 ———
4297kill_1h_crush_enter34104 1–843 ———
18743kill_1h_crush_enter43453 60085–60114 ———
4298kill_1h_crush_exit34105 1–843 ———
18744kill_1h_crush_exit43454 60085–60114 ———
4299kill_1h_crush_idle34106 1–843 ———
17630kill_1h_crush_idle34106 60085–60114 ———
4300kill_1h_crush_ouch_backhand34107 1–843 ———
17631kill_1h_crush_ouch_backhand34107 60085–60114 ———
4301kill_1h_crush_ouch_down34108 1–843 ———
17632kill_1h_crush_ouch_down34108 60085–60114 ———
4302kill_1h_crush_ouch_forehand34109 1–843 ———
17633kill_1h_crush_ouch_forehand34109 60085–60114 ———
4303kill_1h_crush_ouch_thrust34110 1–843 ———
17634kill_1h_crush_ouch_thrust34110 60085–60114 ———
4304kill_1h_crush_parry_backhand34111 1–843 ———
17635kill_1h_crush_parry_backhand34111 60085–60114 ———
4305kill_1h_crush_parry_down34112 1–843 ———
17636kill_1h_crush_parry_down34112 60085–60114 ———
4306kill_1h_crush_parry_forehand34113 1–843 ———
17637kill_1h_crush_parry_forehand34113 60085–60114 ———
4307kill_1h_crush_parry_thrust34114 1–843 ———
17638kill_1h_crush_parry_thrust34114 60085–60114 ———
4308kill_1h_crush_strafe_left34115 1–843 ———
18745kill_1h_crush_strafe_left43455 60085–60114 ———
4309kill_1h_crush_strafe_right34116 1–843 ———
18746kill_1h_crush_strafe_right43456 60085–60114 ———
4310kill_1h_crush_walk34117 1–843 ———
18747kill_1h_crush_walk43457 60085–60114 ———
22599kill_1h_dual_wield_enter49979 60085–60114 ———
22600kill_1h_dual_wield_exit49980 60085–60114 ———
4311kill_1h_pierce_attack34118 1–843 ———
17639kill_1h_pierce_attack34118 60085–60114 ———
4312kill_1h_pierce_attack0134119 1–843 ———
17640kill_1h_pierce_attack0134119 60085–60114 ———
6182kill_1h_pierce_attack0237396 1–843 ———
18748kill_1h_pierce_attack0243458 60085–60114 ———
6183kill_1h_pierce_attack0337397 1–843 ———
18749kill_1h_pierce_attack0343459 60085–60114 ———
21633kill_1h_pierce_attack_0347287 60085–60114 ———
4313kill_1h_pierce_attack_recoil34120 1–843 ———
18750kill_1h_pierce_attack_recoil43460 60085–60114 ———
4314kill_1h_pierce_attack_recoil0134121 1–843 ———
18751kill_1h_pierce_attack_recoil0143461 60085–60114 ———
6184kill_1h_pierce_attack_recoil0237398 1–843 ———
18752kill_1h_pierce_attack_recoil0243462 60085–60114 ———
6185kill_1h_pierce_attack_recoil0337399 1–843 ———
18753kill_1h_pierce_attack_recoil0343463 60085–60114 ———
4315kill_1h_pierce_backup34122 1–843 ———
18754kill_1h_pierce_backup43464 60085–60114 ———
6186kill_1h_pierce_death_blow37400 1–843 ———
18755kill_1h_pierce_death_blow43465 60085–60114 ———
6187kill_1h_pierce_death_blow0137401 1–843 ———
18756kill_1h_pierce_death_blow0143466 60085–60114 ———
4316kill_1h_pierce_dodge_backhand34123 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.