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
20001kill_parry_skin_wood_snd44730 60085–60114 ———
5726kill_parry_snd35897 1–843 ———
20002kill_parry_snd44731 60085–60114 ———
6107kill_parry_target_tigger37174 1–843 ———
20003kill_parry_target_tigger44732 60085–60114 ———
4143kill_parry_target_trigger33914 1–843 ———
20004kill_parry_target_trigger44733 60085–60114 ———
21627kill_parry_thrust47240 60085–60114 ———
5727kill_parry_wood_metal_snd35898 1–843 ———
20005kill_parry_wood_metal_snd44734 60085–60114 ———
4660kill_parry_wood_skin_snd34487 1–843 ———
20006kill_parry_wood_skin_snd44735 60085–60114 ———
4661kill_parry_wood_wood_snd34488 1–843 ———
20007kill_parry_wood_wood_snd44736 60085–60114 ———
20008kill_particle_mood_combat44737 60085–60114 ———
21687kill_particle_mood_combat_enter47746 60085–60114 ———
20009kill_particle_mood_dead44738 60085–60114 ———
22933kill_particle_mood_idle50776 60085–60114 ———
20010kill_particle_mood_peace44739 60085–60114 ———
22197kill_particle_teleport49188 60085–60114 ———
21939kill_pawbuster_attack_enter48632 60085–60114 ———
21940kill_pawbuster_attack_exit48633 60085–60114 ———
21941kill_pawbuster_attack_idle48634 60085–60114 ———
21673kill_pawstep47672 60085–60114 ———
21699kill_pawstep_leather_carpet47821 60085–60114 ———
21700kill_pawstep_leather_dirt47822 60085–60114 ———
21701kill_pawstep_leather_grass47823 60085–60114 ———
21702kill_pawstep_leather_gravel47824 60085–60114 ———
21703kill_pawstep_leather_ice47825 60085–60114 ———
21704kill_pawstep_leather_metal47826 60085–60114 ———
21705kill_pawstep_leather_mud47827 60085–60114 ———
21706kill_pawstep_leather_sand47828 60085–60114 ———
21707kill_pawstep_leather_snow47829 60085–60114 ———
21708kill_pawstep_leather_stone47830 60085–60114 ———
21709kill_pawstep_leather_water47831 60085–60114 ———
21710kill_pawstep_leather_wood47832 60085–60114 ———
21674kill_pawstep_snow47681 60085–60114 ———
21666kill_pawstep_trigger47607 60085–60114 ———
24415kill_pbae_cast_blast53897 60085–60114 ———
5327kill_pbae_divine_snd35423 1–843 ———
20011kill_pbae_divine_snd44740 60085–60114 ———
20012kill_peace_combat44741 60085–60114 ———
20013kill_peace_fx44742 60085–60114 ———
20014kill_peace_off44743 60085–60114 ———
3700kill_peer33179 1–843 ———
20015kill_peer44744 60085–60114 ———
24244kill_pegasus_backup53572 60085–60114 ———
24245kill_pegasus_fall53573 60085–60114 ———
23257kill_pegasus_fly51563 60085–60114 ———
24246kill_pegasus_fly_backup53574 60085–60114 ———
24247kill_pegasus_fly_dive53575 60085–60114 ———
24248kill_pegasus_fly_enter53576 60085–60114 ———
24249kill_pegasus_fly_fall53577 60085–60114 ———
24250kill_pegasus_fly_glide53578 60085–60114 ———
24251kill_pegasus_fly_idle53579 60085–60114 ———
24252kill_pegasus_fly_idle0153580 60085–60114 ———
24253kill_pegasus_fly_jump53581 60085–60114 ———
24254kill_pegasus_fly_jumpsubstitute53582 60085–60114 ———
24255kill_pegasus_fly_run53583 60085–60114 ———
24256kill_pegasus_fly_turn_left53584 60085–60114 ———
24257kill_pegasus_fly_turn_right53585 60085–60114 ———
24258kill_pegasus_fly_walk53586 60085–60114 ———
23232kill_pegasus_glide51504 60085–60114 ———
23233kill_pegasus_idle51505 60085–60114 ———
24259kill_pegasus_idle0153587 60085–60114 ———
24260kill_pegasus_jump53588 60085–60114 ———
24261kill_pegasus_jump_substitute53589 60085–60114 ———
24262kill_pegasus_land53590 60085–60114 ———
24263kill_pegasus_long_fall53591 60085–60114 ———
25652kill_pegasus_mount_attack57040 60085–60114 ———
25653kill_pegasus_mount_attack0157041 60085–60114 ———
25654kill_pegasus_mount_attack0257042 60085–60114 ———
25655kill_pegasus_mount_attack0357043 60085–60114 ———
25129kill_pegasus_mount_backup55656 60085–60114 ———
25656kill_pegasus_mount_cast57044 60085–60114 ———
25657kill_pegasus_mount_combat_enter57045 60085–60114 ———
25658kill_pegasus_mount_combat_exit57046 60085–60114 ———
25659kill_pegasus_mount_combat_idle57047 60085–60114 ———
25660kill_pegasus_mount_dead57048 60085–60114 ———
25661kill_pegasus_mount_dead_enter57049 60085–60114 ———
25662kill_pegasus_mount_dead_enter0157050 60085–60114 ———
25663kill_pegasus_mount_death57051 60085–60114 ———
25664kill_pegasus_mount_death0157052 60085–60114 ———
25130kill_pegasus_mount_fall55657 60085–60114 ———
25131kill_pegasus_mount_fly_backup55658 60085–60114 ———
25132kill_pegasus_mount_fly_climb55659 60085–60114 ———
25133kill_pegasus_mount_fly_dive55660 60085–60114 ———
25134kill_pegasus_mount_fly_down55661 60085–60114 ———
25171kill_pegasus_mount_fly_fall55757 60085–60114 ———
25135kill_pegasus_mount_fly_glide55662 60085–60114 ———
25136kill_pegasus_mount_fly_glide_left55663 60085–60114 ———
25137kill_pegasus_mount_fly_glide_right55664 60085–60114 ———
25138kill_pegasus_mount_fly_idle55665 60085–60114 ———
25139kill_pegasus_mount_fly_run55666 60085–60114 ———
25140kill_pegasus_mount_fly_strafe_left55667 60085–60114 ———
25141kill_pegasus_mount_fly_strafe_right55668 60085–60114 ———
25142kill_pegasus_mount_fly_turn_left55669 60085–60114 ———
25143kill_pegasus_mount_fly_turn_right55670 60085–60114 ———
25144kill_pegasus_mount_fly_up55671 60085–60114 ———
25145kill_pegasus_mount_fly_walk55672 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.