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
22048kill_combat_attack48922 60085–60114 ———
19235kill_combat_backup43954 60085–60114 ———
5715kill_combat_backup_run35883 1–843 ———
19236kill_combat_backup_run43955 60085–60114 ———
3563kill_combat_enter32963 1–843 ———
19237kill_combat_enter43956 60085–60114 ———
3564kill_combat_exit32964 1–843 ———
19238kill_combat_exit43957 60085–60114 ———
30488kill_combat_fidget8455877 60085–60114 ———
19239kill_combat_fx43958 60085–60114 ———
3565kill_combat_idle32965 1–843 ———
19240kill_combat_idle43959 60085–60114 ———
6152kill_combat_idle0137319 1–843 ———
19241kill_combat_idle0143960 60085–60114 ———
25796kill_combat_idle0257503 60085–60114 ———
27004kill_combat_idle0360334 60085–60114 ———
5352kill_combat_idle135457 1–843 ———
19242kill_combat_idle143961 60085–60114 ———
22004kill_combat_idle248805 60085–60114 ———
3572kill_combat_idleflap32973 1–843 ———
19250kill_combat_idleflap43969 60085–60114 ———
30849kill_combat_idle_alt8469403 60085–60114 ———
3566kill_combat_idle_bark32966 1–843 ———
19243kill_combat_idle_bark43962 60085–60114 ———
5905kill_combat_idle_enter36469 1–843 ———
19244kill_combat_idle_enter43963 60085–60114 ———
3567kill_combat_idle_jump32967 1–843 ———
19245kill_combat_idle_jump43964 60085–60114 ———
3568kill_combat_idle_rhand32968 1–843 ———
19246kill_combat_idle_rhand43965 60085–60114 ———
3569kill_combat_idle_snap32970 1–843 ———
19247kill_combat_idle_snap43966 60085–60114 ———
3570kill_combat_idle_sound0132971 1–843 ———
19248kill_combat_idle_sound0143967 60085–60114 ———
3571kill_combat_idle_sound0232972 1–843 ———
19249kill_combat_idle_sound0243968 60085–60114 ———
3573kill_combat_ouch32974 1–843 ———
19251kill_combat_ouch43970 60085–60114 ———
3574kill_combat_ouch_sound32977 1–843 ———
19252kill_combat_ouch_sound43971 60085–60114 ———
19253kill_combat_peace43972 60085–60114 ———
4030kill_combat_run33771 1–843 ———
19254kill_combat_run43973 60085–60114 ———
5716kill_combat_strafe_left_run35884 1–843 ———
19255kill_combat_strafe_left_run43974 60085–60114 ———
5717kill_combat_strafe_right_run35885 1–843 ———
19256kill_combat_strafe_right_run43975 60085–60114 ———
4434kill_combat_tail34241 1–843 ———
19257kill_combat_tail43976 60085–60114 ———
19258kill_combat_tail_cloak43977 60085–60114 ———
3575kill_combat_turn_left32978 1–843 ———
19259kill_combat_turn_left43978 60085–60114 ———
3576kill_combat_turn_right32979 1–843 ———
19260kill_combat_turn_right43979 60085–60114 ———
5831kill_combat_walk36146 1–843 ———
19261kill_combat_walk43980 60085–60114 ———
22272kill_community_robe_red49348 60085–60114 ———
4428kill_complete34235 1–843 ———
19262kill_complete43981 60085–60114 ———
3577kill_confused32982 1–843 ———
19263kill_confused43982 60085–60114 ———
25028kill_conjure55371 60085–60114 ———
25029kill_conjure_enter55372 60085–60114 ———
25030kill_conjure_exit55373 60085–60114 ———
28034kill_console_dead64195 60085–60114 ———
28035kill_console_idle64196 60085–60114 ———
28036kill_console_ouch64197 60085–60114 ———
6652kill_constant1_fx39557 1–843 ———
21617kill_constant2_fx47175 60085–60114 ———
6653kill_constant_fx39558 1–843 ———
21847kill_constant_fx48387 60085–60114 ———
19264kill_converse43988 60085–60114 ———
23327kill_converse0151710 60085–60114 ———
24772kill_converse01_sit54678 60085–60114 ———
23328kill_converse0251711 60085–60114 ———
24773kill_converse02_sit54679 60085–60114 ———
23381kill_converse0351876 60085–60114 ———
30448kill_converse048455584 60085–60114 ———
30449kill_converse058455585 60085–60114 ———
30450kill_converse068455586 60085–60114 ———
30451kill_converse078455587 60085–60114 ———
30452kill_converse088455588 60085–60114 ———
30453kill_converse098455589 60085–60114 ———
30454kill_converse108455590 60085–60114 ———
30455kill_converse118455591 60085–60114 ———
30456kill_converse128455592 60085–60114 ———
5576kill_converse_female0135736 1–843 ———
19265kill_converse_female0143989 60085–60114 ———
5577kill_converse_female0235737 1–843 ———
19266kill_converse_female0243990 60085–60114 ———
5578kill_converse_female0335738 1–843 ———
19267kill_converse_female0343991 60085–60114 ———
5579kill_converse_female0435739 1–843 ———
19268kill_converse_female0443992 60085–60114 ———
5580kill_converse_female0535740 1–843 ———
19269kill_converse_female0543993 60085–60114 ———
5581kill_converse_female0635741 1–843 ———
19270kill_converse_female0643994 60085–60114 ———
5582kill_converse_female0735742 1–843 ———
19271kill_converse_female0743995 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.