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
6262kill_tod_voltz_snd37585 1–843 ———
21107kill_tod_voltz_snd45838 60085–60114 ———
30327kill_tonal_energy_whoosh_fast01_snd8454915 60085–60114 ———
30328kill_tonal_energy_whoosh_fast02_snd8454916 60085–60114 ———
30329kill_tonal_energy_whoosh_fast03_snd8454917 60085–60114 ———
30330kill_tonal_energy_whoosh_fast04_snd8454918 60085–60114 ———
26656kill_tough_idle59019 60085–60114 ———
26657kill_tough_idle_enter59020 60085–60114 ———
26658kill_tough_idle_exit59021 60085–60114 ———
23862kill_toxx_breath_attack52707 60085–60114 ———
23870kill_toxx_breath_attack0152735 60085–60114 ———
23871kill_toxx_breath_attack0252736 60085–60114 ———
23863kill_toxx_breath_inhale52708 60085–60114 ———
23905kill_toxx_chained52778 60085–60114 ———
23906kill_toxx_vanish52779 60085–60114 ———
5660kill_tradeart_beaker0135820 1–843 ———
21109kill_tradeart_beaker0145840 60085–60114 ———
5661kill_tradeart_butcherknife0135821 1–843 ———
21110kill_tradeart_butcherknife0145841 60085–60114 ———
5662kill_tradeart_celticknot0135822 1–843 ———
21111kill_tradeart_celticknot0145842 60085–60114 ———
5663kill_tradeart_flask0135823 1–843 ———
21112kill_tradeart_flask0145843 60085–60114 ———
27211kill_tradeart_flask_beaker_pour61240 60085–60114 ———
5664kill_tradeart_forge_hammer0135824 1–843 ———
21113kill_tradeart_forge_hammer0145844 60085–60114 ———
5665kill_tradeart_forge_hammer0235825 1–843 ———
21114kill_tradeart_forge_hammer0245845 60085–60114 ———
27193kill_tradeart_forge_hammers_anvil61177 60085–60114 ———
27212kill_tradeart_forge_hammer_metal61241 60085–60114 ———
5666kill_tradeart_forge_helmet0135826 1–843 ———
21115kill_tradeart_forge_helmet0145846 60085–60114 ———
5667kill_tradeart_fork0135827 1–843 ———
21116kill_tradeart_fork0145847 60085–60114 ———
5668kill_tradeart_kitchenknife0135828 1–843 ———
21117kill_tradeart_kitchenknife0145848 60085–60114 ———
5669kill_tradeart_log_cut35829 1–843 ———
21118kill_tradeart_log_cut45849 60085–60114 ———
5670kill_tradeart_metal_bar35830 1–843 ———
21119kill_tradeart_metal_bar45850 60085–60114 ———
5671kill_tradeart_metal_rod0135831 1–843 ———
21120kill_tradeart_metal_rod0145851 60085–60114 ———
5672kill_tradeart_metal_sparkling235832 1–843 ———
21121kill_tradeart_metal_sparkling245852 60085–60114 ———
5673kill_tradeart_molecule0135833 1–843 ———
21122kill_tradeart_molecule0145853 60085–60114 ———
5674kill_tradeart_needle_left0135834 1–843 ———
21123kill_tradeart_needle_left0145854 60085–60114 ———
5675kill_tradeart_needle_right0135835 1–843 ———
21124kill_tradeart_needle_right0145855 60085–60114 ———
5676kill_tradeart_planer35836 1–843 ———
21125kill_tradeart_planer45856 60085–60114 ———
5677kill_tradeart_rune_0135837 1–843 ———
21126kill_tradeart_rune_0145857 60085–60114 ———
5678kill_tradeart_rune_0235838 1–843 ———
21127kill_tradeart_rune_0245858 60085–60114 ———
5679kill_tradeart_rune_0335839 1–843 ———
21128kill_tradeart_rune_0345859 60085–60114 ———
5680kill_tradeart_rune_0435840 1–843 ———
21129kill_tradeart_rune_0445860 60085–60114 ———
5681kill_tradeart_rune_0535841 1–843 ———
21130kill_tradeart_rune_0545861 60085–60114 ———
5682kill_tradeart_rune_0635842 1–843 ———
21131kill_tradeart_rune_0645862 60085–60114 ———
5683kill_tradeart_rune_0735843 1–843 ———
21132kill_tradeart_rune_0745863 60085–60114 ———
5684kill_tradeart_rune_0835844 1–843 ———
21133kill_tradeart_rune_0845864 60085–60114 ———
5685kill_tradeart_saw35845 1–843 ———
21134kill_tradeart_saw45865 60085–60114 ———
27213kill_tradeart_saw_log61242 60085–60114 ———
5686kill_tradeart_spoon0135846 1–843 ———
21135kill_tradeart_spoon0145866 60085–60114 ———
3862kill_trail33490 1–843 ———
17551kill_trail33490 60085–60114 ———
5752kill_trails_fire_rightshin35951 1–843 ———
18060kill_trails_fire_rightshin35951 60085–60114 ———
5322kill_trails_lightning_rightshin35415 1–843 ———
17944kill_trails_lightning_rightshin35415 60085–60114 ———
25364kill_trail_fx56340 60085–60114 ———
5793kill_trail_pike36017 1–843 ———
21136kill_trail_pike45867 60085–60114 ———
24099kill_transforma53225 60085–60114 ———
24100kill_transformb53226 60085–60114 ———
22956kill_transform_fx50832 60085–60114 ———
5492kill_transit35631 1–843 ———
21137kill_transit45868 60085–60114 ———
27022kill_transition_back60430 60085–60114 ———
27056kill_transition_back01_extract60624 60085–60114 ———
27042kill_transition_back_extract60526 60085–60114 ———
27011kill_transition_left60376 60085–60114 ———
27043kill_transition_left_extract60527 60085–60114 ———
27023kill_transition_right60431 60085–60114 ———
27044kill_transition_right_extract60528 60085–60114 ———
28239kill_trapped_exit65382 60085–60114 ———
28240kill_trapped_idle65383 60085–60114 ———
25453kill_trdskl_acorn56557 60085–60114 ———
27267kill_trdskl_aggro_life_wand61599 60085–60114 ———
22170kill_trdskl_barracuda49130 60085–60114 ———
5687kill_trdskl_beaker35847 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.