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
17195dontuse_ouch_backhand31326 60085–60114 ———
17196dontuse_ouch_down31327 60085–60114 ———
17197dontuse_ouch_forehand31328 60085–60114 ———
17198dontuse_ouch_thrust31329 60085–60114 ———
17324dontuse_scene06_flyleft31856 60085–60114 ———
17323dontuse_scene06_fly_left31855 60085–60114 ———
17325dontuse_scene08_flycircle31857 60085–60114 ———
17326dontuse_scene08_flyenter31858 60085–60114 ———
17327dontuse_scene08_flyexit31859 60085–60114 ———
17328dontuse_scene08_flyidle31860 60085–60114 ———
17199dontuse_swim_backup31330 60085–60114 ———
17200dontuse_swim_idle31331 60085–60114 ———
17201dontuse_swim_run31332 60085–60114 ———
17202dontuse_swim_walk31333 60085–60114 ———
17184dontuse__ouch31315 60085–60114 ———
16540dont_use_ouch29013 60085–60114 ———
1933doorcorner012320 1–843 ———
8663doorcorner0111413 60085–60114 ———
1934doorcorner022321 1–843 ———
8664doorcorner0211414 60085–60114 ———
2068door_move2541 1–843 ———
8661door_move11411 60085–60114 ———
2069door_slam2542 1–843 ———
8662door_slam11412 60085–60114 ———
225doubletake250 1–843 doubletakes.does a doubletake on %t.—
8665doubletake11415 60085–60114 doubletakes.does a doubletake on %t.—
1689dpsd_swordshatter1999 1–843 ———
8666dpsd_swordshatter11416 60085–60114 ———
29036draconian_cast_tear80378 60085–60114 ———
15698draconian_injured_idle25738 60085–60114 ———
15699draconian_search_enter25739 60085–60114 ———
15700draconian_search_exit25740 60085–60114 ———
15701draconian_search_idle25741 60085–60114 ———
28831dragonfly_mount_buzz_flight70526 60085–60114 ———
28832dragonfly_mount_buzz_vox_0170527 60085–60114 ———
28834dragonfly_mount_fly_idle70529 60085–60114 ———
28835dragonfly_mount_fly_walk70530 60085–60114 ———
28833dragonfly_mount_fs70528 60085–60114 ———
28836dragonfly_mount_idle0170531 60085–60114 ———
28837dragonfly_mount_jump70532 60085–60114 ———
28838dragonfly_mount_jump_substitute70533 60085–60114 ———
28839dragonfly_mount_run70534 60085–60114 ———
28840dragonfly_mount_walk70535 60085–60114 ———
28819dragon_aa_rune_buff_fx70050 60085–60114 ———
16375dragon_attack28282 60085–60114 ———
3035dragon_e3demo4747 1–843 ———
16376dragon_idle28283 60085–60114 ———
11143drag_sparks15861 60085–60114 ———
15066drakota_mount_backup24868 60085–60114 ———
15067drakota_mount_fall24869 60085–60114 ———
15068drakota_mount_fly_backup24870 60085–60114 ———
15069drakota_mount_fly_climb24871 60085–60114 ———
15070drakota_mount_fly_dive24872 60085–60114 ———
15071drakota_mount_fly_down24873 60085–60114 ———
16000drakota_mount_fly_fall26684 60085–60114 ———
15072drakota_mount_fly_glide24874 60085–60114 ———
15073drakota_mount_fly_glide_left24875 60085–60114 ———
15074drakota_mount_fly_glide_right24876 60085–60114 ———
15075drakota_mount_fly_idle24877 60085–60114 ———
15076drakota_mount_fly_run24878 60085–60114 ———
15077drakota_mount_fly_strafe_left24879 60085–60114 ———
15078drakota_mount_fly_strafe_right24880 60085–60114 ———
15079drakota_mount_fly_turn_left24881 60085–60114 ———
15080drakota_mount_fly_turn_right24882 60085–60114 ———
15081drakota_mount_fly_up24883 60085–60114 ———
15082drakota_mount_fly_walk24884 60085–60114 ———
15083drakota_mount_idle24885 60085–60114 ———
15084drakota_mount_idle0124886 60085–60114 ———
15106drakota_mount_idle_0124970 60085–60114 ———
15085drakota_mount_jump24887 60085–60114 ———
15086drakota_mount_jump_substitute24888 60085–60114 ———
15087drakota_mount_land24889 60085–60114 ———
15088drakota_mount_long_fall24890 60085–60114 ———
15089drakota_mount_run24891 60085–60114 ———
15090drakota_mount_turn_left24892 60085–60114 ———
15091drakota_mount_turn_right24893 60085–60114 ———
15092drakota_mount_walk24894 60085–60114 ———
15715drakota_run_glide25794 60085–60114 ———
2559draw_metal_weapon_snd3211 1–843 ———
8667draw_metal_weapon_snd11418 60085–60114 ———
11045draw_weapon15588 60085–60114 ———
11047draw_weapon_idle15611 60085–60114 ———
11235draw_weapon_primary_trigger16109 60085–60114 ———
11236draw_weapon_secondary_trigger16110 60085–60114 ———
2502draw_weapon_snd3102 1–843 ———
8668draw_weapon_snd11419 60085–60114 ———
482draw_weapon_trigger251 1–843 ———
8669draw_weapon_trigger11420 60085–60114 ———
16359drinal_absorb_back_exit28254 60085–60114 ———
16360drinal_absorb_back_idle28255 60085–60114 ———
16361drinal_absorb_forward_exit28256 60085–60114 ———
16362drinal_absorb_forward_idle28257 60085–60114 ———
16363drinal_absorb_left_exit28258 60085–60114 ———
16364drinal_absorb_left_idle28259 60085–60114 ———
16365drinal_absorb_right_exit28260 60085–60114 ———
16366drinal_absorb_right_idle28261 60085–60114 ———
16367drinal_fireball_gather28262 60085–60114 ———
16392drinal_frontal_blast28357 60085–60114 ———
16368drinal_skull_gather28263 60085–60114 ———
16369drinal_spirt_gather28264 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.