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
30663kill_snd_rabbit_mount_jump8461333 60085–60114 ———
30664kill_snd_rabbit_mount_jump_sub8461334 60085–60114 ———
22169kill_snd_rain_9s49129 60085–60114 ———
25465kill_snd_rallos_zek_1h_sword_attack56596 60085–60114 ———
25466kill_snd_rallos_zek_1h_sword_attack0156597 60085–60114 ———
25467kill_snd_rallos_zek_1h_sword_attack0256598 60085–60114 ———
25468kill_snd_rallos_zek_1h_sword_attack0356599 60085–60114 ———
25469kill_snd_rallos_zek_fs56600 60085–60114 ———
25470kill_snd_rallos_zek_shield_bash56601 60085–60114 ———
25471kill_snd_rallos_zek_shield_bash_exit56602 60085–60114 ———
25472kill_snd_rallos_zek_shield_shove56603 60085–60114 ———
25473kill_snd_rallos_zek_whirling_attack0156604 60085–60114 ———
25474kill_snd_rallos_zek_whirling_attack0256605 60085–60114 ———
25475kill_snd_rallos_zek_whirling_attack0356606 60085–60114 ———
25476kill_snd_rallos_zek_whoosh56607 60085–60114 ———
25477kill_snd_rallos_zek_wild_swing56608 60085–60114 ———
30916kill_snd_raptor_bitesnap8472447 60085–60114 ———
30917kill_snd_raptor_bodyfall8472448 60085–60114 ———
30918kill_snd_raptor_combat_enter8472449 60085–60114 ———
30919kill_snd_raptor_idle_018472450 60085–60114 ———
30920kill_snd_raptor_idle_028472451 60085–60114 ———
30921kill_snd_raptor_idle_038472452 60085–60114 ———
30922kill_snd_raptor_idle_048472453 60085–60114 ———
25286kill_snd_raptor_mount_idle_0156049 60085–60114 ———
25287kill_snd_raptor_mount_idle_0256050 60085–60114 ———
25288kill_snd_raptor_mount_idle_0356051 60085–60114 ———
25289kill_snd_raptor_mount_idle_0456052 60085–60114 ———
25327kill_snd_raptor_mount_jump56215 60085–60114 ———
25290kill_snd_raptor_mount_jump_substitute56053 60085–60114 ———
25291kill_snd_raptor_mount_wingflap_0156054 60085–60114 ———
30923kill_snd_raptor_snarl8472454 60085–60114 ———
30924kill_snd_raptor_swim8472455 60085–60114 ———
30878kill_snd_rhoen_theer_skyshrine_attack_kerafyrm8470451 60085–60114 ———
30879kill_snd_rhoen_theer_skyshrine_attack_tear_exit8470452 60085–60114 ———
30880kill_snd_rhoen_theer_skyshrine_attack_tear_idle8470453 60085–60114 ———
30881kill_snd_rhoen_theer_skyshrine_attack_tear_skyshrine8470454 60085–60114 ———
30882kill_snd_rhoen_theer_skyshrine_edge_dive8470455 60085–60114 ———
30877kill_snd_rhoen_theer_skyshrine_knock_back8470450 60085–60114 ———
30883kill_snd_rhoen_theer_skyshrine_summon8470456 60085–60114 ———
30884kill_snd_rhoen_theer_skyshrine_summon_swords_enter8470457 60085–60114 ———
30885kill_snd_rhoen_theer_skyshrine_summon_swords_exit8470458 60085–60114 ———
30129kill_snd_roll8454369 60085–60114 ———
26597kill_snd_run58908 60085–60114 ———
27440kill_snd_rx_cast162139 60085–60114 ———
27441kill_snd_rx_chargeup62140 60085–60114 ———
27442kill_snd_rx_combat_enter62141 60085–60114 ———
27443kill_snd_rx_dead_enter62142 60085–60114 ———
30981kill_snd_scream8474929 60085–60114 ———
27316kill_snd_screecher_attack61741 60085–60114 ———
27317kill_snd_screecher_attack0161742 60085–60114 ———
27318kill_snd_screecher_attack0261743 60085–60114 ———
27319kill_snd_screecher_attack0361744 60085–60114 ———
27320kill_snd_screecher_aura_lp61745 60085–60114 ———
27321kill_snd_screecher_cast61746 60085–60114 ———
27322kill_snd_screecher_cast0161747 60085–60114 ———
27323kill_snd_screecher_combat_enter61748 60085–60114 ———
27324kill_snd_screecher_dead_enter61749 60085–60114 ———
27325kill_snd_screecher_idel0161750 60085–60114 ———
27326kill_snd_screecher_idle0261751 60085–60114 ———
27327kill_snd_screecher_jump61752 60085–60114 ———
27328kill_snd_screecher_ouch61753 60085–60114 ———
27329kill_snd_screecher_scream61754 60085–60114 ———
27330kill_snd_screecher_scream0161755 60085–60114 ———
27331kill_snd_screecher_whirling_attack61756 60085–60114 ———
31509kill_snd_shissar_attack_impact8487962 60085–60114 ———
31510kill_snd_shissar_charge_up8487963 60085–60114 ———
31511kill_snd_shissar_combat_enter8487964 60085–60114 ———
30400kill_snd_shissar_snake_boss_attack8455255 60085–60114 ———
30401kill_snd_shissar_snake_boss_cast8455256 60085–60114 ———
30402kill_snd_shissar_snake_boss_dead_enter8455257 60085–60114 ———
30403kill_snd_shissar_snake_boss_knockdowntoknees8455258 60085–60114 ———
30404kill_snd_shissar_snake_boss_ouch8455259 60085–60114 ———
30405kill_snd_shissar_snake_boss_ouch_backhand8455260 60085–60114 ———
30406kill_snd_shissar_snake_boss_ouch_down8455261 60085–60114 ———
30407kill_snd_shissar_snake_boss_run_lp8455262 60085–60114 ———
30408kill_snd_shissar_snake_boss_sit_enter8455263 60085–60114 ———
30409kill_snd_shissar_snake_boss_sit_exit8455264 60085–60114 ———
30410kill_snd_shissar_snake_boss_swim8455265 60085–60114 ———
30411kill_snd_shissar_snake_boss_walk_lp8455266 60085–60114 ———
27709kill_snd_siren_queen_rx_attack63389 60085–60114 ———
27710kill_snd_siren_queen_rx_attack0163390 60085–60114 ———
27711kill_snd_siren_queen_rx_attack0263391 60085–60114 ———
27712kill_snd_siren_queen_rx_attack0363392 60085–60114 ———
27713kill_snd_siren_queen_rx_charge_up63393 60085–60114 ———
27714kill_snd_siren_queen_rx_combat_enter63394 60085–60114 ———
27715kill_snd_siren_queen_rx_dead_enter63395 60085–60114 ———
27716kill_snd_siren_queen_rx_knocktoback63396 60085–60114 ———
27717kill_snd_siren_queen_rx_knocktoback_getup63397 60085–60114 ———
27718kill_snd_siren_queen_rx_knocktoknees63398 60085–60114 ———
27719kill_snd_siren_queen_rx_ouch63399 60085–60114 ———
27720kill_snd_siren_queen_rx_ouch_backhand63400 60085–60114 ———
27721kill_snd_siren_queen_rx_ouch_forehand63401 60085–60114 ———
27722kill_snd_siren_queen_rx_shield_shove63402 60085–60114 ———
27723kill_snd_siren_queen_rx_whirl_attack63403 60085–60114 ———
27724kill_snd_siren_queen_rx_wild_swing63404 60085–60114 ———
27753kill_snd_siren_rx_attack63491 60085–60114 ———
27754kill_snd_siren_rx_attack0163492 60085–60114 ———
27755kill_snd_siren_rx_attack0263493 60085–60114 ———
27756kill_snd_siren_rx_attack0363494 60085–60114 ———
27757kill_snd_siren_rx_chargeup63495 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.