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
16947head2_spurt_fx30684 60085–60114 ———
17090head3_cauterize_fx31032 60085–60114 ———
16948head3_grow_fx30685 60085–60114 ———
16949head3_sever_fx30686 60085–60114 ———
16950head3_spurt_fx30687 60085–60114 ———
17091head4_cauterize_fx31033 60085–60114 ———
16951head4_grow_fx30688 60085–60114 ———
16952head4_sever_fx30689 60085–60114 ———
16953head4_spurt_fx30690 60085–60114 ———
17092head5_cauterize_fx31034 60085–60114 ———
16954head5_grow_fx30691 60085–60114 ———
16955head5_sever_fx30692 60085–60114 ———
16956head5_spurt_fx30693 60085–60114 ———
16783head_carry29793 60085–60114 ———
16751head_four_dead29733 60085–60114 ———
16763head_four_dead_enter29755 60085–60114 ———
16752head_one_dead29734 60085–60114 ———
16753head_one_dead_enter29735 60085–60114 ———
16754head_one_dead_exit29736 60085–60114 ———
16755head_three_dead29737 60085–60114 ———
16764head_three_dead_enter29756 60085–60114 ———
16756head_three_dead_exit29738 60085–60114 ———
849head_tracking_off_trigger1024 1–843 ———
8921head_tracking_off_trigger11674 60085–60114 ———
16757head_two_dead29739 60085–60114 ———
16765head_two_dead_enter29757 60085–60114 ———
16758head_two_dead_exit29740 60085–60114 ———
16759head_zero_dead29741 60085–60114 ———
16760head_zero_dead_enter29742 60085–60114 ———
16761head_zero_dead_exit29743 60085–60114 ———
10571heal_boss0113467 60085–60114 ———
12256heal_lifetap_p2p18323 60085–60114 ———
243hearnoevil314 1–843 covers %g1 ears.covers their ears and pays no heed to %t.—
8922hearnoevil11675 60085–60114 covers %g1 ears.covers their ears and pays no heed to %t.—
244heartattack315 1–843 clutches %g1 chest!——
8923heartattack11676 60085–60114 clutches %g1 chest!——
2011heat_shimmer2440 1–843 ———
8924heat_shimmer11677 60085–60114 ———
2712heavydamage_enter3737 1–843 ———
8925heavydamage_enter11678 60085–60114 ———
2778heavydamage_idle3876 1–843 ———
8926heavydamage_idle11679 60085–60114 ———
28496heavy_short_hit_impact_snd66218 60085–60114 ———
246heckno316 1–843 declines.declines %t. HECK NO!—
8927heckno11680 60085–60114 declines.declines %t. HECK NO!—
245heelclick317 1–843 clicks %g1 heels.——
8928heelclick11681 60085–60114 clicks %g1 heels!——
247hello318 1–843 waves hello.waves hello to %t.—
8929hello11682 60085–60114 waves hello.waves hello to %t.—
325helping0 1–843 is here to help.lets %t know %g3 is coming to help.—
2670heroic_sound3559 1–843 ———
8930heroic_sound11683 60085–60114 ———
499hide319 1–843 ———
8931hide11684 60085–60114 ———
1811hide_melee_projectile_trigger2128 1–843 ———
8932hide_melee_projectile_trigger11685 60085–60114 ———
10727highelf_female_2h_sword_wild_swing13823 60085–60114 ———
10750highelf_female_pike_charge_up13866 60085–60114 ———
10751highelf_female_pike_defensive_buff13867 60085–60114 ———
10752highelf_female_pike_offensive_buff13868 60085–60114 ———
16213highelf_radiant_sparkles27570 60085–60114 ———
28497high_energy_flame_whoosh_snd66219 60085–60114 ———
28498high_metallic_hit_snd66220 60085–60114 ———
28499hiss_energy_tail_snd66221 60085–60114 ———
2310hitonhead_sound2893 1–843 ———
8958hitonhead_sound11711 60085–60114 ———
798hit_02972 1–843 ———
8933hit_0211686 60085–60114 ———
8934hit_chainmail_snd11687 60085–60114 ———
8935hit_cloth_snd11688 60085–60114 ———
28500hit_impact_electric_blast_snd66222 60085–60114 ———
28501hit_impact_electric_zap01_snd66223 60085–60114 ———
28502hit_impact_electric_zap02_snd66224 60085–60114 ———
28503hit_impact_electric_zap03_snd66225 60085–60114 ———
28504hit_impact_electric_zap04_snd66226 60085–60114 ———
28505hit_impact_energy_tail01_snd66227 60085–60114 ———
28506hit_impact_energy_tail02_snd66228 60085–60114 ———
28507hit_impact_energy_tail03_snd66229 60085–60114 ———
28508hit_impact_energy_tail04_snd66230 60085–60114 ———
28509hit_impact_energy_tail05_snd66231 60085–60114 ———
28510hit_impact_energy_tail06_snd66232 60085–60114 ———
28511hit_impact_energy_tail07_snd66233 60085–60114 ———
28512hit_impact_energy_tail08_snd66234 60085–60114 ———
28513hit_impact_energy_tail09_snd66235 60085–60114 ———
28514hit_impact_energy_tail10_snd66236 60085–60114 ———
28515hit_impact_energy_tail11_snd66237 60085–60114 ———
28516hit_impact_energy_whoosh_snd66238 60085–60114 ———
28517hit_impact_whoosh_suck01_snd66239 60085–60114 ———
28518hit_impact_whoosh_suck02_snd66240 60085–60114 ———
28519hit_impact_whoosh_suck03_snd66241 60085–60114 ———
8936hit_leather_snd11689 60085–60114 ———
1446hit_metal_chainmail_snd1707 1–843 ———
8937hit_metal_chainmail_snd11690 60085–60114 ———
8938hit_metal_cloth_snd11691 60085–60114 ———
857hit_metal_leather_snd1047 1–843 ———
8939hit_metal_leather_snd11692 60085–60114 ———
858hit_metal_metal_snd1048 1–843 ———
8940hit_metal_metal_snd11693 60085–60114 ———
859hit_metal_skin_snd1049 1–843 ———
8941hit_metal_skin_snd11694 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.