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
19712kill_haste_sparkles_snd44439 60085–60114 ———
4937kill_haste_swirl_snd34815 1–843 ———
19713kill_haste_swirl_snd44440 60085–60114 ———
4938kill_haste_swords_snd34816 1–843 ———
19714kill_haste_swords_snd44441 60085–60114 ———
27881kill_head1_cauterize_fx63798 60085–60114 ———
27735kill_head1_grow_fx63447 60085–60114 ———
27736kill_head1_sever_fx63448 60085–60114 ———
27737kill_head1_spurt_fx63449 60085–60114 ———
27882kill_head2_cauterize_fx63799 60085–60114 ———
27738kill_head2_grow_fx63450 60085–60114 ———
27739kill_head2_sever_fx63451 60085–60114 ———
27740kill_head2_spurt_fx63452 60085–60114 ———
27883kill_head3_cauterize_fx63800 60085–60114 ———
27741kill_head3_grow_fx63453 60085–60114 ———
27742kill_head3_sever_fx63454 60085–60114 ———
27743kill_head3_spurt_fx63455 60085–60114 ———
27884kill_head4_cauterize_fx63801 60085–60114 ———
27744kill_head4_grow_fx63456 60085–60114 ———
27745kill_head4_sever_fx63457 60085–60114 ———
27746kill_head4_spurt_fx63458 60085–60114 ———
27885kill_head5_cauterize_fx63802 60085–60114 ———
27747kill_head5_grow_fx63459 60085–60114 ———
27748kill_head5_sever_fx63460 60085–60114 ———
27749kill_head5_spurt_fx63461 60085–60114 ———
27576kill_head_carry62561 60085–60114 ———
27544kill_head_four_dead62501 60085–60114 ———
27556kill_head_four_dead_enter62523 60085–60114 ———
27545kill_head_one_dead62502 60085–60114 ———
27546kill_head_one_dead_enter62503 60085–60114 ———
27547kill_head_one_dead_exit62504 60085–60114 ———
27548kill_head_three_dead62505 60085–60114 ———
27557kill_head_three_dead_enter62524 60085–60114 ———
27549kill_head_three_dead_exit62506 60085–60114 ———
4050kill_head_tracking_off_trigger33792 1–843 ———
19715kill_head_tracking_off_trigger44442 60085–60114 ———
27550kill_head_two_dead62507 60085–60114 ———
27558kill_head_two_dead_enter62525 60085–60114 ———
27551kill_head_two_dead_exit62508 60085–60114 ———
27552kill_head_zero_dead62509 60085–60114 ———
27553kill_head_zero_dead_enter62510 60085–60114 ———
27554kill_head_zero_dead_exit62511 60085–60114 ———
21365kill_heal_boss0146235 60085–60114 ———
23050kill_heal_lifetap_p2p51091 60085–60114 ———
3641kill_hearnoevil33082 1–843 ———
19716kill_hearnoevil44443 60085–60114 ———
3642kill_heartattack33083 1–843 ———
19717kill_heartattack44444 60085–60114 ———
5213kill_heat_shimmer35208 1–843 ———
19718kill_heat_shimmer44445 60085–60114 ———
5915kill_heavydamage_enter36505 1–843 ———
19719kill_heavydamage_enter44446 60085–60114 ———
5981kill_heavydamage_idle36644 1–843 ———
19720kill_heavydamage_idle44447 60085–60114 ———
30291kill_heavy_short_hit_impact_snd8454826 60085–60114 ———
3643kill_heckno33084 1–843 ———
19721kill_heckno44448 60085–60114 ———
3644kill_heelclick33085 1–843 ———
19722kill_heelclick44449 60085–60114 ———
3645kill_hello33086 1–843 ———
19723kill_hello44450 60085–60114 ———
5873kill_heroic_sound36327 1–843 ———
19724kill_heroic_sound44451 60085–60114 ———
3646kill_hide33087 1–843 ———
19725kill_hide44452 60085–60114 ———
5013kill_hide_melee_projectile_trigger34896 1–843 ———
19726kill_hide_melee_projectile_trigger44453 60085–60114 ———
21521kill_highelf_female_2h_sword_wild_swing46591 60085–60114 ———
21544kill_highelf_female_pike_charge_up46634 60085–60114 ———
21545kill_highelf_female_pike_defensive_buff46635 60085–60114 ———
21546kill_highelf_female_pike_offensive_buff46636 60085–60114 ———
27006kill_highelf_radiant_sparkles60338 60085–60114 ———
30292kill_high_energy_flame_whoosh_snd8454827 60085–60114 ———
30293kill_high_metallic_hit_snd8454828 60085–60114 ———
30294kill_hiss_energy_tail_snd8454829 60085–60114 ———
5513kill_hitonhead_sound35661 1–843 ———
19752kill_hitonhead_sound44479 60085–60114 ———
3999kill_hit_0233740 1–843 ———
19727kill_hit_0244454 60085–60114 ———
19728kill_hit_chainmail_snd44455 60085–60114 ———
19729kill_hit_cloth_snd44456 60085–60114 ———
30295kill_hit_impact_electric_blast_snd8454830 60085–60114 ———
30296kill_hit_impact_electric_zap01_snd8454831 60085–60114 ———
30297kill_hit_impact_electric_zap02_snd8454832 60085–60114 ———
30298kill_hit_impact_electric_zap03_snd8454833 60085–60114 ———
30299kill_hit_impact_electric_zap04_snd8454834 60085–60114 ———
30300kill_hit_impact_energy_tail01_snd8454835 60085–60114 ———
30301kill_hit_impact_energy_tail02_snd8454836 60085–60114 ———
30302kill_hit_impact_energy_tail03_snd8454837 60085–60114 ———
30303kill_hit_impact_energy_tail04_snd8454838 60085–60114 ———
30304kill_hit_impact_energy_tail05_snd8454839 60085–60114 ———
30305kill_hit_impact_energy_tail06_snd8454840 60085–60114 ———
30306kill_hit_impact_energy_tail07_snd8454841 60085–60114 ———
30307kill_hit_impact_energy_tail08_snd8454842 60085–60114 ———
30308kill_hit_impact_energy_tail09_snd8454843 60085–60114 ———
30309kill_hit_impact_energy_tail10_snd8454844 60085–60114 ———
30310kill_hit_impact_energy_tail11_snd8454845 60085–60114 ———
30311kill_hit_impact_energy_whoosh_snd8454846 60085–60114 ———
30312kill_hit_impact_whoosh_suck01_snd8454847 60085–60114 ———
30313kill_hit_impact_whoosh_suck02_snd8454848 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.