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
27265kill_result_healing_trail_p2p61566 60085–60114 ———
28186kill_result_healing_wisps65075 60085–60114 ———
24639kill_result_healthdrain_p2p54470 60085–60114 ———
28189kill_result_heal_ball_p2p65091 60085–60114 ———
4386kill_result_heal_heart34193 1–843 ———
17667kill_result_heal_heart34193 60085–60114 ———
5443kill_result_heal_heart_blue35560 1–843 ———
17998kill_result_heal_heart_blue35560 60085–60114 ———
21568kill_result_heartbreak46779 60085–60114 ———
22265kill_result_hearts_red49323 60085–60114 ———
21579kill_result_heart_success46961 60085–60114 ———
21567kill_result_heart_vision46778 60085–60114 ———
21572kill_result_heart_vision_p2p46944 60085–60114 ———
24923kill_result_heat_shimmer_dots55049 60085–60114 ———
5834kill_result_helmet_silver_floating36149 1–843 ———
18121kill_result_helmet_silver_floating36149 60085–60114 ———
30221kill_result_honeycomb_sticky_mesh8454660 60085–60114 ———
30180kill_result_honey_melt8454491 60085–60114 ———
4443kill_result_horse_running34250 1–843 ———
17685kill_result_horse_running34250 60085–60114 ———
5836kill_result_ho_sphere36160 1–843 ———
18122kill_result_ho_sphere36160 60085–60114 ———
31646kill_result_hulking_enrage8492750 60085–60114 ———
30641kill_result_hydra_ice_beams_p2p8459649 60085–60114 ———
6561kill_result_hypnosis39227 1–843 ———
18363kill_result_hypnosis39227 60085–60114 ———
25750kill_result_ice_attack_p2p57334 60085–60114 ———
27095kill_result_ice_beam_p2p60780 60085–60114 ———
4761kill_result_ice_blast34634 1–843 ———
17797kill_result_ice_blast34634 60085–60114 ———
6068kill_result_ice_blast_from_mesh36940 1–843 ———
18247kill_result_ice_blast_from_mesh36940 60085–60114 ———
5299kill_result_ice_blast_rightfoot35371 1–843 ———
17932kill_result_ice_blast_rightfoot35371 60085–60114 ———
5372kill_result_ice_blast_weapon35477 1–843 ———
17960kill_result_ice_blast_weapon35477 60085–60114 ———
5800kill_result_ice_blast_weapon_center36027 1–843 ———
18091kill_result_ice_blast_weapon_center36027 60085–60114 ———
4762kill_result_ice_crystals_dropping34635 1–843 ———
17798kill_result_ice_crystals_dropping34635 60085–60114 ———
6486kill_result_ice_dagger_breath_p2p38836 1–843 ———
18346kill_result_ice_dagger_breath_p2p38836 60085–60114 ———
18393kill_result_ice_dagger_breath_small_p2p39649 60085–60114 ———
24674kill_result_ice_melt54522 60085–60114 ———
22549kill_result_ice_shackles49834 60085–60114 ———
24719kill_result_ice_shatter54577 60085–60114 ———
4776kill_result_ice_shields_burning34649 1–843 ———
17810kill_result_ice_shields_burning34649 60085–60114 ———
5808kill_result_ice_slam36111 1–843 ———
18099kill_result_ice_slam36111 60085–60114 ———
24626kill_result_ice_spikes_growing54437 60085–60114 ———
22041kill_result_ice_storm48904 60085–60114 ———
25127kill_result_ice_strike55647 60085–60114 ———
25168kill_result_ice_strike_targeted55741 60085–60114 ———
4833kill_result_ice_sword_breaking34707 1–843 ———
17826kill_result_ice_sword_breaking34707 60085–60114 ———
24865kill_result_ice_trap_dark54924 60085–60114 ———
24612kill_result_ice_trap_swirls54381 60085–60114 ———
24807kill_result_ice_vine_trap54764 60085–60114 ———
4769kill_result_icicles_breaking34642 1–843 ———
17805kill_result_icicles_breaking34642 60085–60114 ———
25914kill_result_icicle_blast_up57803 60085–60114 ———
23297kill_result_icicle_hit51631 60085–60114 ———
22550kill_result_icicle_impale49835 60085–60114 ———
5759kill_result_icicle_rain_damage35970 1–843 ———
18067kill_result_icicle_rain_damage35970 60085–60114 ———
23307kill_result_icicle_storm51655 60085–60114 ———
4763kill_result_icy_cage34636 1–843 ———
17799kill_result_icy_cage34636 60085–60114 ———
4766kill_result_icy_cage_blast_ring34639 1–843 ———
17802kill_result_icy_cage_blast_ring34639 60085–60114 ———
4770kill_result_icy_comet34643 1–843 ———
17806kill_result_icy_comet34643 60085–60114 ———
4771kill_result_icy_comet_exploding34644 1–843 ———
17807kill_result_icy_comet_exploding34644 60085–60114 ———
24104kill_result_icy_trap_shatter53237 60085–60114 ———
26951kill_result_idol_corruption_p2p60123 60085–60114 ———
31591kill_result_ignite8490587 60085–60114 ———
23134kill_result_iksar_statue_beam_p2p51256 60085–60114 ———
27707kill_result_illithid_chain_lightning_bolt_p2p63363 60085–60114 ———
27708kill_result_illithid_chain_lightning_p2p63364 60085–60114 ———
27041kill_result_illusionary_lights60494 60085–60114 ———
18670kill_result_illusionist_head_aura43143 60085–60114 ———
18466kill_result_illusionist_illuminate42754 60085–60114 ———
24976kill_result_indestructible55266 60085–60114 ———
27700kill_result_ink_zone63311 60085–60114 ———
5081kill_result_instant_lifetap34996 1–843 ———
17887kill_result_instant_lifetap34996 60085–60114 ———
24977kill_result_invincible55267 60085–60114 ———
6583kill_result_juggernaut39266 1–843 ———
18367kill_result_juggernaut39266 60085–60114 ———
31468kill_result_karana_lightning_p2p8486634 60085–60114 ———
31469kill_result_karana_lightning_slash8486635 60085–60114 ———
28100kill_result_kerafyrm_tear_runes_p2p64575 60085–60114 ———
3732kill_result_kick33268 1–843 ———
17532kill_result_kick33268 60085–60114 ———
5979kill_result_kirby_energy_p2p36637 1–843 ———
18213kill_result_kirby_energy_p2p36637 60085–60114 ———
6255kill_result_knighthood_bauble37577 1–843 ———
20164kill_result_knighthood_bauble44893 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.