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
21035kill_stifle_result_snd45766 60085–60114 ———
4276kill_still34083 1–843 ———
21036kill_still45767 60085–60114 ———
3840kill_stinky33401 1–843 ———
21037kill_stinky45768 60085–60114 ———
22037kill_stomp_sound48887 60085–60114 ———
23947kill_stone_ouch_impact52844 60085–60114 ———
5172kill_stove_boilover0135139 1–843 ———
21038kill_stove_boilover0145769 60085–60114 ———
5173kill_stove_boilover0235140 1–843 ———
21039kill_stove_boilover0245770 60085–60114 ———
5174kill_stove_boilover0335141 1–843 ———
21040kill_stove_boilover0345771 60085–60114 ———
3841kill_strafe_left33402 1–843 ———
21041kill_strafe_left45772 60085–60114 ———
5157kill_strafe_left_run35115 1–843 ———
21042kill_strafe_left_run45773 60085–60114 ———
3842kill_strafe_right33403 1–843 ———
21043kill_strafe_right45774 60085–60114 ———
5158kill_strafe_right_run35116 1–843 ———
21044kill_strafe_right_run45775 60085–60114 ———
3843kill_stretch33404 1–843 ———
21045kill_stretch45776 60085–60114 ———
5393kill_string_knotted35502 1–843 ———
21046kill_string_knotted45777 60085–60114 ———
30519kill_stumble_death8456312 60085–60114 ———
6581kill_stunned39258 1–843 ———
6328kill_st_casttap_snd37986 1–843 ———
21018kill_st_casttap_snd45749 60085–60114 ———
6329kill_st_tappestry_snd37987 1–843 ———
21019kill_st_tappestry_snd45750 60085–60114 ———
4732kill_success0134604 1–843 ———
21047kill_success0145778 60085–60114 ———
4743kill_success0234615 1–843 ———
21048kill_success0245779 60085–60114 ———
5230kill_success_flash0135225 1–843 ———
21049kill_success_flash0145780 60085–60114 ———
5231kill_success_flash0235226 1–843 ———
21050kill_success_flash0245781 60085–60114 ———
5232kill_success_flash0335227 1–843 ———
21051kill_success_flash0345782 60085–60114 ———
3844kill_sulk33405 1–843 ———
21052kill_sulk45783 60085–60114 ———
3845kill_summon33406 1–843 ———
21053kill_summon45784 60085–60114 ———
26818kill_summon_0159656 60085–60114 ———
30698kill_summon_attack8463016 60085–60114 ———
30768kill_summon_exit8465699 60085–60114 ———
22955kill_summon_fx50831 60085–60114 ———
26840kill_summon_fx_long59788 60085–60114 ———
26841kill_summon_fx_short59789 60085–60114 ———
21054kill_summon_idle45785 60085–60114 ———
5658kill_super_buff35818 1–843 ———
21055kill_super_buff45786 60085–60114 ———
30604kill_swallow8458047 60085–60114 ———
18425kill_sway_l41850 60085–60114 ———
18426kill_sway_r41851 60085–60114 ———
3846kill_swear33407 1–843 ———
21056kill_swear45787 60085–60114 ———
5159kill_sweep0135117 1–843 ———
21057kill_sweep0145788 60085–60114 ———
23468kill_swim52077 60085–60114 ———
3847kill_swim_attack33408 1–843 ———
21058kill_swim_attack45789 60085–60114 ———
3848kill_swim_backup33409 1–843 ———
21059kill_swim_backup45790 60085–60114 ———
22542kill_swim_backward49813 60085–60114 ———
22543kill_swim_forward49814 60085–60114 ———
4772kill_swim_foward34645 1–843 ———
21060kill_swim_foward45791 60085–60114 ———
22250kill_swim_go49276 60085–60114 ———
3849kill_swim_idle33410 1–843 ———
21061kill_swim_idle45792 60085–60114 ———
3850kill_swim_ouch33411 1–843 ———
21062kill_swim_ouch45793 60085–60114 ———
4669kill_swim_run34496 1–843 ———
21063kill_swim_run45794 60085–60114 ———
5506kill_swim_tail35651 1–843 ———
21064kill_swim_tail45795 60085–60114 ———
21065kill_swim_tail_cloak45796 60085–60114 ———
3851kill_swim_walk33412 1–843 ———
21066kill_swim_walk45797 60085–60114 ———
3852kill_swoosh33413 1–843 ———
21067kill_swoosh45798 60085–60114 ———
27409kill_swoosh_huge62010 60085–60114 ———
5057kill_swoosh_light_low34948 1–843 ———
21068kill_swoosh_light_low45799 60085–60114 ———
30445kill_swoosh_lite_low8455572 60085–60114 ———
5467kill_swoosh_medium35590 1–843 ———
21069kill_swoosh_medium45800 60085–60114 ———
21070kill_swwosh45801 60085–60114 ———
3853kill_tail33478 1–843 ———
21072kill_tail45803 60085–60114 ———
5160kill_tailoring_failure35118 1–843 ———
21075kill_tailoring_failure45806 60085–60114 ———
5161kill_tailoring_idle35119 1–843 ———
21076kill_tailoring_idle45807 60085–60114 ———
5162kill_tailoring_success35120 1–843 ———
21077kill_tailoring_success45808 60085–60114 ———
21073kill_tail_cloak45804 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.