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
25687kill_backhand57112 60085–60114 ———
25924kill_backpack_1h_crush_attack57852 60085–60114 ———
25925kill_backpack_1h_crush_attack0157853 60085–60114 ———
25926kill_backpack_1h_crush_attack0257854 60085–60114 ———
25927kill_backpack_1h_crush_attack0357855 60085–60114 ———
25928kill_backpack_1h_crush_attack_recoil57856 60085–60114 ———
25929kill_backpack_1h_crush_attack_recoil0157857 60085–60114 ———
25930kill_backpack_1h_crush_attack_recoil0257858 60085–60114 ———
25931kill_backpack_1h_crush_attack_recoil0357859 60085–60114 ———
25932kill_backpack_1h_crush_backup57860 60085–60114 ———
25933kill_backpack_1h_crush_dodge_backhand57861 60085–60114 ———
25934kill_backpack_1h_crush_dodge_down57862 60085–60114 ———
25935kill_backpack_1h_crush_dodge_forehand57863 60085–60114 ———
25936kill_backpack_1h_crush_dodge_thrust57864 60085–60114 ———
25937kill_backpack_1h_crush_enter57865 60085–60114 ———
25938kill_backpack_1h_crush_exit57866 60085–60114 ———
25939kill_backpack_1h_crush_idle57867 60085–60114 ———
25940kill_backpack_1h_crush_ouch_backhand57868 60085–60114 ———
25941kill_backpack_1h_crush_ouch_down57869 60085–60114 ———
25942kill_backpack_1h_crush_ouch_forehand57870 60085–60114 ———
25943kill_backpack_1h_crush_ouch_thrust57871 60085–60114 ———
25944kill_backpack_1h_crush_parry_backhand57872 60085–60114 ———
25945kill_backpack_1h_crush_parry_down57873 60085–60114 ———
25946kill_backpack_1h_crush_parry_forehand57874 60085–60114 ———
25947kill_backpack_1h_crush_parry_thrust57875 60085–60114 ———
25948kill_backpack_1h_crush_strafe_left57876 60085–60114 ———
25949kill_backpack_1h_crush_strafe_right57877 60085–60114 ———
25950kill_backpack_1h_crush_walk57878 60085–60114 ———
25951kill_backpack_1h_pierce_attack57879 60085–60114 ———
25952kill_backpack_1h_pierce_attack0157880 60085–60114 ———
25953kill_backpack_1h_pierce_attack0257881 60085–60114 ———
25954kill_backpack_1h_pierce_attack0357882 60085–60114 ———
25955kill_backpack_1h_pierce_attack_recoil57883 60085–60114 ———
25956kill_backpack_1h_pierce_attack_recoil0157884 60085–60114 ———
25957kill_backpack_1h_pierce_attack_recoil0257885 60085–60114 ———
25958kill_backpack_1h_pierce_attack_recoil0357886 60085–60114 ———
25959kill_backpack_1h_pierce_backup57887 60085–60114 ———
25960kill_backpack_1h_pierce_dodge_backhand57888 60085–60114 ———
25961kill_backpack_1h_pierce_dodge_down57889 60085–60114 ———
25962kill_backpack_1h_pierce_dodge_forehand57890 60085–60114 ———
25963kill_backpack_1h_pierce_dodge_thrust57891 60085–60114 ———
25964kill_backpack_1h_pierce_enter57892 60085–60114 ———
25965kill_backpack_1h_pierce_exit57893 60085–60114 ———
25966kill_backpack_1h_pierce_idle57894 60085–60114 ———
25967kill_backpack_1h_pierce_ouch_backhand57895 60085–60114 ———
25968kill_backpack_1h_pierce_ouch_down57896 60085–60114 ———
25969kill_backpack_1h_pierce_ouch_forehand57897 60085–60114 ———
25970kill_backpack_1h_pierce_ouch_thrust57898 60085–60114 ———
25971kill_backpack_1h_pierce_parry_backhand57899 60085–60114 ———
25972kill_backpack_1h_pierce_parry_down57900 60085–60114 ———
25973kill_backpack_1h_pierce_parry_forehand57901 60085–60114 ———
25974kill_backpack_1h_pierce_parry_thrust57902 60085–60114 ———
25975kill_backpack_1h_pierce_strafe_left57903 60085–60114 ———
25976kill_backpack_1h_pierce_strafe_right57904 60085–60114 ———
25977kill_backpack_1h_pierce_walk57905 60085–60114 ———
25978kill_backpack_1h_sword_attack57906 60085–60114 ———
25979kill_backpack_1h_sword_attack0157907 60085–60114 ———
25980kill_backpack_1h_sword_attack0257908 60085–60114 ———
25981kill_backpack_1h_sword_attack0357909 60085–60114 ———
25982kill_backpack_1h_sword_attack_recoil57910 60085–60114 ———
25983kill_backpack_1h_sword_attack_recoil0157911 60085–60114 ———
25984kill_backpack_1h_sword_attack_recoil0257912 60085–60114 ———
25985kill_backpack_1h_sword_attack_recoil0357913 60085–60114 ———
25986kill_backpack_1h_sword_backup57914 60085–60114 ———
25987kill_backpack_1h_sword_death_blow57915 60085–60114 ———
25988kill_backpack_1h_sword_death_blow0157916 60085–60114 ———
25989kill_backpack_1h_sword_dodge_backhand57917 60085–60114 ———
25990kill_backpack_1h_sword_dodge_down57918 60085–60114 ———
25991kill_backpack_1h_sword_dodge_forehand57919 60085–60114 ———
25992kill_backpack_1h_sword_dodge_thrust57920 60085–60114 ———
25993kill_backpack_1h_sword_enter57921 60085–60114 ———
25994kill_backpack_1h_sword_exit57922 60085–60114 ———
25995kill_backpack_1h_sword_idle57923 60085–60114 ———
25996kill_backpack_1h_sword_ouch_backhand57924 60085–60114 ———
25997kill_backpack_1h_sword_ouch_down57925 60085–60114 ———
25998kill_backpack_1h_sword_ouch_forehand57926 60085–60114 ———
25999kill_backpack_1h_sword_ouch_thrust57927 60085–60114 ———
26000kill_backpack_1h_sword_parry_backhand57928 60085–60114 ———
26001kill_backpack_1h_sword_parry_down57929 60085–60114 ———
26002kill_backpack_1h_sword_parry_forehand57930 60085–60114 ———
26003kill_backpack_1h_sword_parry_thrust57931 60085–60114 ———
26004kill_backpack_1h_sword_strafe_left57932 60085–60114 ———
26005kill_backpack_1h_sword_strafe_right57933 60085–60114 ———
26006kill_backpack_1h_sword_walk57934 60085–60114 ———
26008kill_backpack_1h_thrown_attack57936 60085–60114 ———
26009kill_backpack_1h_thrown_backup57937 60085–60114 ———
26010kill_backpack_1h_thrown_dodge_backhand57938 60085–60114 ———
26011kill_backpack_1h_thrown_dodge_down57939 60085–60114 ———
26012kill_backpack_1h_thrown_dodge_forehand57940 60085–60114 ———
26013kill_backpack_1h_thrown_dodge_thrust57941 60085–60114 ———
26014kill_backpack_1h_thrown_idle57942 60085–60114 ———
26015kill_backpack_1h_thrown_ouch_backhand57943 60085–60114 ———
26016kill_backpack_1h_thrown_ouch_down57944 60085–60114 ———
26017kill_backpack_1h_thrown_ouch_forehand57945 60085–60114 ———
26018kill_backpack_1h_thrown_ouch_thrust57946 60085–60114 ———
26019kill_backpack_1h_thrown_strafe_left57947 60085–60114 ———
26020kill_backpack_1h_thrown_strafe_right57948 60085–60114 ———
26021kill_backpack_1h_thrown_walk57949 60085–60114 ———
26007kill_backpack_1h_throw_attack57935 60085–60114 ———
26022kill_backpack_1h_wand_attack57950 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.