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
25782kill_result_aa_icicle_spikes57433 60085–60114 ———
25065kill_result_aa_lightning_clash55427 60085–60114 ———
24854kill_result_aa_lightning_debuff54892 60085–60114 ———
24998kill_result_aa_manawall55315 60085–60114 ———
24999kill_result_aa_mesh_grow55316 60085–60114 ———
25012kill_result_aa_note_dagger_p2p55349 60085–60114 ———
25066kill_result_aa_power_convert55428 60085–60114 ———
25067kill_result_aa_protection_ward55429 60085–60114 ———
24991kill_result_aa_pulsing_ward55301 60085–60114 ———
18405kill_result_aa_pyramid40210 60085–60114 ———
25783kill_result_aa_quick_heal57434 60085–60114 ———
25000kill_result_aa_shadow_blob_p2p55317 60085–60114 ———
18396kill_result_aa_shaman_ghost_wolf39735 60085–60114 ———
25008kill_result_aa_slash_hit55338 60085–60114 ———
25068kill_result_aa_soul_burn55430 60085–60114 ———
25001kill_result_aa_swap_hate55318 60085–60114 ———
25778kill_result_aa_tameable_fx57415 60085–60114 ———
25097kill_result_aa_taunt55541 60085–60114 ———
24992kill_result_aa_totem_blast55302 60085–60114 ———
24855kill_result_aa_ward_column_blast54893 60085–60114 ———
25009kill_result_aa_watchful_eyes55339 60085–60114 ———
25784kill_result_aa_windy_ward57435 60085–60114 ———
25709kill_result_aa_wispy_ward57211 60085–60114 ———
21671kill_result_acid_rain_damage47663 60085–60114 ———
21672kill_result_acid_storm_damage47664 60085–60114 ———
27263kill_result_aggression_removal61564 60085–60114 ———
27264kill_result_aggression_removal_p2p61565 60085–60114 ———
5787kill_result_agility36011 1–843 ———
18081kill_result_agility36011 60085–60114 ———
31639kill_result_agitated_gather8492532 60085–60114 ———
5788kill_result_air_elemental_summon36012 1–843 ———
18082kill_result_air_elemental_summon36012 60085–60114 ———
31444kill_result_akheva_dark_smoke_p2p8485774 60085–60114 ———
31445kill_result_akheva_fireball_left_p2p8485775 60085–60114 ———
31446kill_result_akheva_fireball_right_p2p8485776 60085–60114 ———
23401kill_result_amputation51930 60085–60114 ———
23402kill_result_amputation_blast51931 60085–60114 ———
22831kill_result_anashti_curse50582 60085–60114 ———
22832kill_result_anashti_tempest50583 60085–60114 ———
5848kill_result_ancient_crucible36190 1–843 ———
18130kill_result_ancient_crucible36190 60085–60114 ———
6291kill_result_anim_mesh_genie_ps37788 1–843 ———
18317kill_result_anim_mesh_genie_ps37788 60085–60114 ———
21828kill_result_anvil_drop48177 60085–60114 ———
5852kill_result_arcane_chalice36200 1–843 ———
18134kill_result_arcane_chalice36200 60085–60114 ———
5805kill_result_arcane_fury36108 1–843 ———
18096kill_result_arcane_fury36108 60085–60114 ———
5806kill_result_archaic_shackles36109 1–843 ———
18097kill_result_archaic_shackles36109 60085–60114 ———
5807kill_result_archaic_shackles_b36110 1–843 ———
18098kill_result_archaic_shackles_b36110 60085–60114 ———
5789kill_result_arch_heal36013 1–843 ———
18083kill_result_arch_heal36013 60085–60114 ———
23064kill_result_arc_tether_p2p51131 60085–60114 ———
6413kill_result_arena_stone_gaze38339 1–843 ———
18329kill_result_arena_stone_gaze38339 60085–60114 ———
6441kill_result_arena_stone_gaze_flash38408 1–843 ———
18335kill_result_arena_stone_gaze_flash38408 60085–60114 ———
6450kill_result_arena_voidbeast_attack38739 1–843 ———
18336kill_result_arena_voidbeast_attack38739 60085–60114 ———
6451kill_result_arena_voidbeast_smoke38740 1–843 ———
18337kill_result_arena_voidbeast_smoke38740 60085–60114 ———
6452kill_result_arena_voidbeast_smoke_threads38741 1–843 ———
18338kill_result_arena_voidbeast_smoke_threads38741 60085–60114 ———
6414kill_result_arena_water_rain38340 1–843 ———
18330kill_result_arena_water_rain38340 60085–60114 ———
6427kill_result_arena_water_rain_bubbles38371 1–843 ———
18332kill_result_arena_water_rain_bubbles38371 60085–60114 ———
6371kill_result_arena_water_whirlpool38281 1–843 ———
18324kill_result_arena_water_whirlpool38281 60085–60114 ———
6372kill_result_arena_water_whirlpool_aoe38282 1–843 ———
18325kill_result_arena_water_whirlpool_aoe38282 60085–60114 ———
24526kill_result_arrow_ridden54230 60085–60114 ———
30057kill_result_arrow_shatter_rain8454121 60085–60114 ———
18674kill_result_assassin_star_cloud_hands43157 60085–60114 ———
4802kill_result_attract_bubbles34675 1–843 ———
17818kill_result_attract_bubbles34675 60085–60114 ———
17846kill_result_backdraft34768 60085–60114 ———
23787kill_result_balanced_judgement52600 60085–60114 ———
27676kill_result_ballista_fire_green_p2p63201 60085–60114 ———
23305kill_result_banish51653 60085–60114 ———
26576kill_result_banish_fx58859 60085–60114 ———
23306kill_result_banish_wisps_p2p51654 60085–60114 ———
5458kill_result_bard_zap35581 1–843 ———
18012kill_result_bard_zap35581 60085–60114 ———
22534kill_result_barrel_break49779 60085–60114 ———
24921kill_result_barrel_explode55047 60085–60114 ———
21691kill_result_barrier47764 60085–60114 ———
21996kill_result_barrier_blue48787 60085–60114 ———
22031kill_result_barrier_orange48880 60085–60114 ———
21997kill_result_barrier_red48788 60085–60114 ———
21998kill_result_barrier_yellow48789 60085–60114 ———
3722kill_result_bash33257 1–843 ———
17522kill_result_bash33257 60085–60114 ———
27220kill_result_bastion_beam_p2p61262 60085–60114 ———
5918kill_result_bat_flying36509 1–843 ———
18175kill_result_bat_flying36509 60085–60114 ———
22682kill_result_bat_scare50233 60085–60114 ———
5886kill_result_bat_swarm_appear36398 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.