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
5783kill_sheathe_metal_weapon_snd36000 1–843 ———
20263kill_sheathe_metal_weapon_snd44994 60085–60114 ———
21883kill_sheathe_weapon48507 60085–60114 ———
21842kill_sheathe_weapon_idle48382 60085–60114 ———
22035kill_sheathe_weapon_primary_trigger48885 60085–60114 ———
22036kill_sheathe_weapon_secondary_trigger48886 60085–60114 ———
5711kill_sheathe_weapon_snd35876 1–843 ———
20264kill_sheathe_weapon_snd44995 60085–60114 ———
3761kill_sheathe_weapon_trigger33301 1–843 ———
20265kill_sheathe_weapon_trigger44996 60085–60114 ———
23188kill_shield_bash51379 60085–60114 ———
25427kill_shield_bash_enter56471 60085–60114 ———
25428kill_shield_bash_exit56472 60085–60114 ———
5649kill_shield_block_backhand35809 1–843 ———
20266kill_shield_block_backhand44997 60085–60114 ———
5386kill_shield_block_down35494 1–843 ———
20267kill_shield_block_down44998 60085–60114 ———
5650kill_shield_block_forehand35810 1–843 ———
20268kill_shield_block_forehand44999 60085–60114 ———
5387kill_shield_block_thrust35496 1–843 ———
20269kill_shield_block_thrust45000 60085–60114 ———
4606kill_shield_shove34431 1–843 ———
20270kill_shield_shove45001 60085–60114 ———
4389kill_shield_sound34196 1–843 ———
20271kill_shield_sound45002 60085–60114 ———
3762kill_shimmy33302 1–843 ———
20272kill_shimmy45003 60085–60114 ———
30459kill_shissargolem_snaketail_1h_sword_attack8455669 60085–60114 ———
30460kill_shissargolem_snaketail_1h_sword_attack_018455670 60085–60114 ———
30461kill_shissargolem_snaketail_attack8455671 60085–60114 ———
30462kill_shissargolem_snaketail_attack_028455672 60085–60114 ———
30463kill_shissargolem_snaketail_attack_038455673 60085–60114 ———
30464kill_shissargolem_snaketail_chargeup8455674 60085–60114 ———
30465kill_shissargolem_snaketail_combat_enter8455675 60085–60114 ———
30466kill_shissargolem_snaketail_death_enter8455676 60085–60114 ———
30467kill_shissargolem_snaketail_dodge8455677 60085–60114 ———
30468kill_shissargolem_snaketail_dodge_forehand8455678 60085–60114 ———
30469kill_shissargolem_snaketail_jump8455679 60085–60114 ———
30470kill_shissargolem_snaketail_knockback_enter8455680 60085–60114 ———
30471kill_shissargolem_snaketail_knockback_get_up8455681 60085–60114 ———
30472kill_shissargolem_snaketail_knock_to_knees8455682 60085–60114 ———
30473kill_shissargolem_snaketail_magic_cast8455683 60085–60114 ———
30474kill_shissargolem_snaketail_ouch8455684 60085–60114 ———
30475kill_shissargolem_snaketail_run8455685 60085–60114 ———
30476kill_shissargolem_snaketail_shield_shove8455686 60085–60114 ———
30477kill_shissargolem_snaketail_walk8455687 60085–60114 ———
30478kill_shissargolem_snaketail_whirling_attack8455688 60085–60114 ———
30479kill_shissargolem_snaketail_wild_swing8455689 60085–60114 ———
30505kill_shissar_cobra_attack_018456070 60085–60114 ———
30506kill_shissar_cobra_attack_028456071 60085–60114 ———
30507kill_shissar_cobra_attack_038456072 60085–60114 ———
30508kill_shissar_cobra_attack_wildswing8456073 60085–60114 ———
30509kill_shissar_cobra_cast_enter8456074 60085–60114 ———
30510kill_shissar_cobra_cast_exit8456075 60085–60114 ———
30511kill_shissar_cobra_cast_loop8456076 60085–60114 ———
30512kill_shissar_cobra_combat_idle_fidget8456077 60085–60114 ———
30513kill_shissar_cobra_death8456078 60085–60114 ———
30503kill_shissar_cobra_knocktoback_enter8456068 60085–60114 ———
30504kill_shissar_cobra_knocktoback_exit8456069 60085–60114 ———
30514kill_shissar_cobra_loc_stand_to_walk8456079 60085–60114 ———
30515kill_shissar_cobra_loc_walk_to_stand_idle8456080 60085–60114 ———
30516kill_shissar_cobra_sit_enter8456081 60085–60114 ———
30517kill_shissar_cobra_sit_exit8456082 60085–60114 ———
30090kill_shissar_custodian_attack_028454255 60085–60114 ———
30091kill_shissar_custodian_attack_038454256 60085–60114 ———
30092kill_shissar_custodian_cast8454257 60085–60114 ———
30093kill_shissar_custodian_charge_up8454258 60085–60114 ———
30094kill_shissar_custodian_combat_enter_018454259 60085–60114 ———
30095kill_shissar_custodian_combat_exit8454260 60085–60114 ———
30096kill_shissar_custodian_dead_enter8454261 60085–60114 ———
30097kill_shissar_custodian_dodge8454262 60085–60114 ———
30098kill_shissar_custodian_dodge_backhand8454263 60085–60114 ———
30099kill_shissar_custodian_dodge_forehand8454264 60085–60114 ———
30100kill_shissar_custodian_jump8454265 60085–60114 ———
30101kill_shissar_custodian_knock_back8454266 60085–60114 ———
30102kill_shissar_custodian_knock_back_getup8454267 60085–60114 ———
30103kill_shissar_custodian_knock_to_knees8454268 60085–60114 ———
30104kill_shissar_custodian_ouch8454269 60085–60114 ———
30105kill_shissar_custodian_ouch_down8454270 60085–60114 ———
30106kill_shissar_custodian_shield_shove8454271 60085–60114 ———
30107kill_shissar_custodian_walk_loop8454272 60085–60114 ———
30108kill_shissar_custodian_whirling8454273 60085–60114 ———
3763kill_shiver33303 1–843 ———
20273kill_shiver45004 60085–60114 ———
5982kill_show_bridge36652 1–843 ———
20274kill_show_bridge45005 60085–60114 ———
5015kill_show_melee_projectile_trigger34898 1–843 ———
20275kill_show_melee_projectile_trigger45006 60085–60114 ———
5515kill_shrink_sound35664 1–843 ———
20276kill_shrink_sound45007 60085–60114 ———
3764kill_shrug33304 1–843 ———
20277kill_shrug45008 60085–60114 ———
5150kill_shuttle0135108 1–843 ———
20278kill_shuttle0145009 60085–60114 ———
5491kill_sick35630 1–843 ———
20279kill_sick45010 60085–60114 ———
30915kill_sick_idle8472238 60085–60114 ———
5222kill_side_smoke0135217 1–843 ———
20280kill_side_smoke0145011 60085–60114 ———
3765kill_sigh33305 1–843 ———
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.