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
6345kill_vision_238150 1–843 ———
21263kill_vision_245994 60085–60114 ———
6346kill_vision_338151 1–843 ———
21264kill_vision_345995 60085–60114 ———
6347kill_vision_438152 1–843 ———
21265kill_vision_445996 60085–60114 ———
3916kill_vocal_attack33584 1–843 ———
21308kill_vocal_attack46039 60085–60114 ———
5732kill_vocal_attacklong35903 1–843 ———
21309kill_vocal_attacklong46040 60085–60114 ———
22636kill_vocal_combat_idle50116 60085–60114 ———
3917kill_vocal_death33597 1–843 ———
21310kill_vocal_death46041 60085–60114 ———
4667kill_vocal_drown34494 1–843 ———
21311kill_vocal_drown46042 60085–60114 ———
22609kill_vocal_idle50010 60085–60114 ———
3918kill_vocal_jump33615 1–843 ———
21312kill_vocal_jump46043 60085–60114 ———
3919kill_vocal_ouch33628 1–843 ———
21313kill_vocal_ouch46044 60085–60114 ———
6493kill_voidbeast_attack_snd38880 1–843 ———
21314kill_voidbeast_attack_snd46045 60085–60114 ———
6494kill_voidbeast_result_snd38881 1–843 ———
21315kill_voidbeast_result_snd46046 60085–60114 ———
22804kill_void_beam_blue50516 60085–60114 ———
22805kill_void_beam_red50517 60085–60114 ———
22762kill_void_beam_sound50407 60085–60114 ———
22780kill_void_blast_wave50451 60085–60114 ———
22763kill_void_door_beam50408 60085–60114 ———
22809kill_void_energy_activate_sound50528 60085–60114 ———
22812kill_void_energy_barrier50538 60085–60114 ———
22813kill_void_energy_barrier_blast50539 60085–60114 ———
22814kill_void_energy_channeling_p2p50547 60085–60114 ———
22810kill_void_energy_sound50529 60085–60114 ———
22936kill_void_fx50780 60085–60114 ———
22790kill_void_portal_sound50481 60085–60114 ———
22493kill_void_storm49661 60085–60114 ———
22494kill_void_summon_portal49662 60085–60114 ———
22791kill_void_summon_sound50482 60085–60114 ———
22792kill_void_teleporter50483 60085–60114 ———
31071kill_vox_attack8481377 60085–60114 ———
31072kill_vox_chargeup8481378 60085–60114 ———
31099kill_vox_cheer8482152 60085–60114 ———
31073kill_vox_combat_enter8481379 60085–60114 ———
31074kill_vox_death8481380 60085–60114 ———
31100kill_vox_mining_success8482157 60085–60114 ———
31075kill_vox_ouch8481381 60085–60114 ———
31076kill_vox_whiriling_attack8481382 60085–60114 ———
6373kill_vo_callout_afk38291 1–843 ———
21266kill_vo_callout_afk45997 60085–60114 ———
6374kill_vo_callout_agree38292 1–843 ———
21267kill_vo_callout_agree45998 60085–60114 ———
6375kill_vo_callout_apologies38293 1–843 ———
21268kill_vo_callout_apologies45999 60085–60114 ———
6376kill_vo_callout_assist38294 1–843 ———
21269kill_vo_callout_assist46000 60085–60114 ———
6377kill_vo_callout_battle38295 1–843 ———
21270kill_vo_callout_battle46001 60085–60114 ———
6378kill_vo_callout_cheer38296 1–843 ———
21271kill_vo_callout_cheer46002 60085–60114 ———
6379kill_vo_callout_confused38297 1–843 ———
21272kill_vo_callout_confused46003 60085–60114 ———
6380kill_vo_callout_disagree38298 1–843 ———
21273kill_vo_callout_disagree46004 60085–60114 ———
6381kill_vo_callout_doh38299 1–843 ———
21274kill_vo_callout_doh46005 60085–60114 ———
6382kill_vo_callout_flirt38300 1–843 ———
21275kill_vo_callout_flirt46006 60085–60114 ———
6383kill_vo_callout_follow38301 1–843 ———
21276kill_vo_callout_follow46007 60085–60114 ———
6384kill_vo_callout_goodbye38302 1–843 ———
21277kill_vo_callout_goodbye46008 60085–60114 ———
6385kill_vo_callout_got38303 1–843 ———
21278kill_vo_callout_got46009 60085–60114 ———
6386kill_vo_callout_greetings38304 1–843 ———
21279kill_vo_callout_greetings46010 60085–60114 ———
6387kill_vo_callout_growl38305 1–843 ———
21280kill_vo_callout_growl46011 60085–60114 ———
6388kill_vo_callout_heal38306 1–843 ———
21281kill_vo_callout_heal46012 60085–60114 ———
6389kill_vo_callout_help38307 1–843 ———
21282kill_vo_callout_help46013 60085–60114 ———
6390kill_vo_callout_helping38308 1–843 ———
21283kill_vo_callout_helping46014 60085–60114 ———
6391kill_vo_callout_hungry38309 1–843 ———
21284kill_vo_callout_hungry46015 60085–60114 ———
6392kill_vo_callout_incoming38310 1–843 ———
21285kill_vo_callout_incoming46016 60085–60114 ———
6393kill_vo_callout_laugh38311 1–843 ———
21286kill_vo_callout_laugh46017 60085–60114 ———
6394kill_vo_callout_look38312 1–843 ———
21287kill_vo_callout_look46018 60085–60114 ———
6395kill_vo_callout_looking38313 1–843 ———
21288kill_vo_callout_looking46019 60085–60114 ———
6396kill_vo_callout_out38314 1–843 ———
21289kill_vo_callout_out46020 60085–60114 ———
6397kill_vo_callout_run38315 1–843 ———
21290kill_vo_callout_run46021 60085–60114 ———
6398kill_vo_callout_starting38316 1–843 ———
21291kill_vo_callout_starting46022 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.