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
920clear_target_trigger1125 1–843 ———
8411clear_target_trigger11156 60085–60114 ———
14238climb22614 60085–60114 ———
8412climbing11157 60085–60114 ———
2915climbing_backup4495 1–843 ———
7465climbing_backup4495 60085–60114 ———
11063climbing_chainmail_rope15657 60085–60114 ———
3009climbing_chainmail_stone4696 1–843 ———
8413climbing_chainmail_stone11158 60085–60114 ———
3068climbing_chainmail_wood4878 1–843 ———
8414climbing_chainmail_wood11159 60085–60114 ———
3044climbing_enter_down4797 1–843 ———
8415climbing_enter_down11160 60085–60114 ———
3045climbing_enter_down_root4798 1–843 ———
7506climbing_enter_down_root4798 60085–60114 ———
3027climbing_exit_up4729 1–843 ———
8416climbing_exit_up11161 60085–60114 ———
3028climbing_exit_up_root4730 1–843 ———
7499climbing_exit_up_root4730 60085–60114 ———
2916climbing_idle4496 1–843 ———
7466climbing_idle4496 60085–60114 ———
3061climbing_idle014822 1–843 ———
8417climbing_idle0111162 60085–60114 ———
11064climbing_leather_rope15658 60085–60114 ———
3010climbing_leather_stone4697 1–843 ———
8418climbing_leather_stone11163 60085–60114 ———
3069climbing_leather_wood4879 1–843 ———
8419climbing_leather_wood11164 60085–60114 ———
11065climbing_metal_rope15659 60085–60114 ———
3011climbing_metal_stone4698 1–843 ———
8420climbing_metal_stone11165 60085–60114 ———
3127climbing_metal_wood5251 1–843 ———
8421climbing_metal_wood11166 60085–60114 ———
2976climbing_ouch4621 1–843 ———
8422climbing_ouch11167 60085–60114 ———
2917climbing_strafe_left4497 1–843 ———
7467climbing_strafe_left4497 60085–60114 ———
2847climbing_strafe_right4092 1–843 ———
7437climbing_strafe_right4092 60085–60114 ———
2848climbing_walk4093 1–843 ———
7438climbing_walk4093 60085–60114 ———
11457close16513 60085–60114 ———
2235closed2786 1–843 ———
8423closed11168 60085–60114 ———
16374closed_idle28279 60085–60114 ———
16373close_enter28278 60085–60114 ———
2304cloud_group_sound2887 1–843 ———
8424cloud_group_sound11169 60085–60114 ———
1175cloud_sound1416 1–843 ———
8425cloud_sound11170 60085–60114 ———
1176cloud_sound_021417 1–843 ———
8426cloud_sound_0211171 60085–60114 ———
8427cloud_widget11172 60085–60114 ———
2124cl_catglow_snd2654 1–843 ———
8409cl_catglow_snd11154 60085–60114 ———
2887cn_ringout_snd4301 1–843 ———
8428cn_ringout_snd11173 60085–60114 ———
2888cn_strums_snd4302 1–843 ———
8429cn_strums_snd11174 60085–60114 ———
1981coals012400 1–843 ———
8430coals0111175 60085–60114 ———
1975coals_failure2381 1–843 ———
8431coals_failure11176 60085–60114 ———
1976coals_fire_large2382 1–843 ———
8432coals_fire_large11177 60085–60114 ———
1977coals_fire_small2383 1–843 ———
8433coals_fire_small11178 60085–60114 ———
3261coins_and_jewels_pile6017 1–843 ———
8434coins_and_jewels_pile11179 60085–60114 ———
3262coins_pile_copper6018 1–843 ———
8435coins_pile_copper11180 60085–60114 ———
3263coins_pile_gold6019 1–843 ———
8436coins_pile_gold11181 60085–60114 ———
3264coins_pile_silver6020 1–843 ———
8437coins_pile_silver11182 60085–60114 ———
12443coin_drop_snd18746 60085–60114 ———
2511cold_breath3114 1–843 ———
8438cold_breath11183 60085–60114 ———
445comabt_exit192 1–843 ———
8439comabt_exit11184 60085–60114 ———
3131combat5286 1–843 ———
8440combat11185 60085–60114 ———
28692combatartbuff67268 60085–60114 ———
13674combat_art_buff21293 60085–60114 ———
11254combat_attack16154 60085–60114 ———
8441combat_backup11186 60085–60114 ———
2512combat_backup_run3115 1–843 ———
8442combat_backup_run11187 60085–60114 ———
446combat_enter195 1–843 ———
8443combat_enter11188 60085–60114 ———
447combat_exit196 1–843 ———
8444combat_exit11189 60085–60114 ———
28693combat_fidget67269 60085–60114 ———
8445combat_fx11190 60085–60114 ———
448combat_idle197 1–843 ———
8446combat_idle11191 60085–60114 ———
2949combat_idle014551 1–843 ———
8447combat_idle0111192 60085–60114 ———
15003combat_idle0224735 60085–60114 ———
16211combat_idle0327566 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.