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
27473kill_snd_gumdrop_fs62215 60085–60114 ———
23035kill_snd_hawk_scream51057 60085–60114 ———
31741kill_snd_hawk_vox_long8496564 60085–60114 ———
31742kill_snd_hawk_vox_short8496565 60085–60114 ———
21675kill_snd_horn_centaur47686 60085–60114 ———
21676kill_snd_horn_conch47687 60085–60114 ———
21677kill_snd_horn_gnoll47688 60085–60114 ———
21678kill_snd_horn_goblin47689 60085–60114 ———
25741kill_snd_horse_fs_left57318 60085–60114 ———
25742kill_snd_horse_fs_right57319 60085–60114 ———
25743kill_snd_horse_rx_attack57320 60085–60114 ———
25744kill_snd_horse_rx_death57321 60085–60114 ———
25745kill_snd_horse_rx_ouch57322 60085–60114 ———
27837kill_snd_hydra_1h_sword_attack63744 60085–60114 ———
27838kill_snd_hydra_1h_sword_attack0163745 60085–60114 ———
27839kill_snd_hydra_1h_sword_attack0263746 60085–60114 ———
27840kill_snd_hydra_1h_sword_attack0363747 60085–60114 ———
27841kill_snd_hydra_1h_sword_idle0163748 60085–60114 ———
27842kill_snd_hydra_2h_knocktoback63749 60085–60114 ———
27843kill_snd_hydra_2h_knocktoback_getup63750 60085–60114 ———
27844kill_snd_hydra_2h_sword_attack63751 60085–60114 ———
27845kill_snd_hydra_2h_sword_attack0163752 60085–60114 ———
27846kill_snd_hydra_2h_sword_attack0263753 60085–60114 ———
27847kill_snd_hydra_2h_sword_attack0363754 60085–60114 ———
27848kill_snd_hydra_2h_sword_dead_enter63755 60085–60114 ———
27849kill_snd_hydra_2h_sword_enter63756 60085–60114 ———
27850kill_snd_hydra_2h_sword_idle0163757 60085–60114 ———
27851kill_snd_hydra_4to5_enter63758 60085–60114 ———
27852kill_snd_hydra_attack63759 60085–60114 ———
27853kill_snd_hydra_attack0163760 60085–60114 ———
27854kill_snd_hydra_attack0263761 60085–60114 ———
27855kill_snd_hydra_attack0363762 60085–60114 ———
27856kill_snd_hydra_cast_0163763 60085–60114 ———
27857kill_snd_hydra_cast_0263764 60085–60114 ———
27858kill_snd_hydra_cast_0363765 60085–60114 ———
27859kill_snd_hydra_cast_0463766 60085–60114 ———
27860kill_snd_hydra_cast_0563767 60085–60114 ———
27861kill_snd_hydra_combat_idle0163768 60085–60114 ———
27862kill_snd_hydra_dual_wield_attack63769 60085–60114 ———
27863kill_snd_hydra_dual_wield_attack0163770 60085–60114 ———
27864kill_snd_hydra_dual_wield_attack0263771 60085–60114 ———
27865kill_snd_hydra_dual_wield_attack0363772 60085–60114 ———
27866kill_snd_hydra_dual_wield_idle0163773 60085–60114 ———
27867kill_snd_hydra_head_one_dead_exit63774 60085–60114 ———
27868kill_snd_hydra_head_three_dead_exit63775 60085–60114 ———
27869kill_snd_hydra_head_two_dead_exit63776 60085–60114 ———
27870kill_snd_hydra_head_zero_dead_exit63777 60085–60114 ———
27871kill_snd_hydra_pike_attack63778 60085–60114 ———
27872kill_snd_hydra_pike_attack0163779 60085–60114 ———
27873kill_snd_hydra_pike_attack0263780 60085–60114 ———
27874kill_snd_hydra_pike_attack0363781 60085–60114 ———
27875kill_snd_hydra_pike_idle0163782 60085–60114 ———
28169kill_snd_idle0165006 60085–60114 ———
28170kill_snd_idle0265007 60085–60114 ———
26526kill_snd_idle_0258594 60085–60114 ———
31015kill_snd_ignite8477419 60085–60114 ———
27644kill_snd_illithid_attack62992 60085–60114 ———
27645kill_snd_illithid_attack0162993 60085–60114 ———
27646kill_snd_illithid_attack0262994 60085–60114 ———
27647kill_snd_illithid_attack0362995 60085–60114 ———
27648kill_snd_illithid_cast0162996 60085–60114 ———
27649kill_snd_illithid_cast0262997 60085–60114 ———
27650kill_snd_illithid_cast0362998 60085–60114 ———
27651kill_snd_illithid_cast0462999 60085–60114 ———
27652kill_snd_illithid_combat_enter63000 60085–60114 ———
27653kill_snd_illithid_dead_enter63001 60085–60114 ———
27654kill_snd_illithid_knockedtoback63002 60085–60114 ———
27655kill_snd_illithid_knockedtoback_getup63003 60085–60114 ———
27656kill_snd_illithid_ouch_down63004 60085–60114 ———
27657kill_snd_illithid_ouch_forehand63005 60085–60114 ———
27658kill_snd_illithid_ouch_thrust63006 60085–60114 ———
27659kill_snd_illithid_whirling_attack63007 60085–60114 ———
27660kill_snd_illithid_wild_swing63008 60085–60114 ———
31553kill_snd_impact8488504 60085–60114 ———
30912kill_snd_insect_leaper_footstep8471728 60085–60114 ———
30911kill_snd_insect_leaper_idle8471727 60085–60114 ———
26504kill_snd_jump58538 60085–60114 ———
27751kill_snd_jumpwhoosh63488 60085–60114 ———
27439kill_snd_jump_fx62137 60085–60114 ———
30644kill_snd_jump_sub8460015 60085–60114 ———
30826kill_snd_jump_substitute8468622 60085–60114 ———
30645kill_snd_jump_vox8460016 60085–60114 ———
26488kill_snd_jump_whoosh58497 60085–60114 ———
20341kill_snd_keg_appear45072 60085–60114 ———
20342kill_snd_keg_gulp45073 60085–60114 ———
20343kill_snd_keg_pour45074 60085–60114 ———
20344kill_snd_keg_whoosh45075 60085–60114 ———
20345kill_snd_keg_yum45076 60085–60114 ———
30980kill_snd_knockback_short8474928 60085–60114 ———
30979kill_snd_knock_back8474927 60085–60114 ———
27336kill_snd_komodo_attack61813 60085–60114 ———
27337kill_snd_komodo_attack0161814 60085–60114 ———
27338kill_snd_komodo_cast0161815 60085–60114 ———
27339kill_snd_komodo_dead_enter61816 60085–60114 ———
27340kill_snd_komodo_knocktoback61817 60085–60114 ———
25315kill_snd_komodo_mount_glide56178 60085–60114 ———
25312kill_snd_komodo_mount_idle_0156166 60085–60114 ———
25313kill_snd_komodo_mount_idle_0256167 60085–60114 ———
25326kill_snd_komodo_mount_jump56213 60085–60114 ———
25314kill_snd_komodo_mount_jump_substitute56168 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.