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
6821result_lightning_bolt31304 60085–60114 ———
12506result_lightning_bolt_blast18874 60085–60114 ———
7639result_lightning_bolt_sub19654 60085–60114 ———
7640result_lightning_bolt_sub29655 60085–60114 ———
11979result_lightning_cage17663 60085–60114 ———
12684result_lightning_cage_blast19341 60085–60114 ———
16323result_lightning_floor_blast_blue28077 60085–60114 ———
16331result_lightning_floor_blast_purple28097 60085–60114 ———
16324result_lightning_floor_blast_red28078 60085–60114 ———
2054result_lightning_shimmer2507 1–843 ———
7105result_lightning_shimmer2507 60085–60114 ———
16038result_light_explode26934 60085–60114 ———
13805result_light_flare_p2p21564 60085–60114 ———
11472result_light_slam_aoe16556 60085–60114 ———
2707result_lioness_running3727 1–843 ———
7376result_lioness_running3727 60085–60114 ———
1242result_lion_attacking1483 1–843 ———
6892result_lion_attacking1483 60085–60114 ———
3326result_lion_paw_trails6329 1–843 ———
7561result_lion_paw_trails6329 60085–60114 ———
1243result_lion_roaring1484 1–843 ———
6893result_lion_roaring1484 60085–60114 ———
1059result_lion_spirit1299 1–843 ———
6817result_lion_spirit1299 60085–60114 ———
577result_loot502 1–843 ———
6740result_loot502 60085–60114 ———
578result_loot_ash503 1–843 ———
6741result_loot_ash503 60085–60114 ———
17333result_lucan_essense_suck_p2p31931 60085–60114 ———
14921result_lucan_soul_suck_p2p24484 60085–60114 ———
2677result_lucks_bite3605 1–843 ———
7359result_lucks_bite3605 60085–60114 ———
14983result_luclin_chunk_slam24609 60085–60114 ———
15702result_lumpy_spit_p2p25743 60085–60114 ———
16436result_magic_barrier_beam_p2p28574 60085–60114 ———
29057result_magic_blast_shockwave80804 60085–60114 ———
29210result_magic_bullet_p2p87986 60085–60114 ———
29251result_magic_glass_shatter91182 60085–60114 ———
29157result_magic_mine_p2p84045 60085–60114 ———
29584result_magma_ball_p2p95495 60085–60114 ———
7665result_mana_burn9884 60085–60114 ———
7604result_mana_channeling6980 60085–60114 ———
2708result_mana_cloak3728 1–843 ———
7377result_mana_cloak3728 60085–60114 ———
12507result_mana_drain_p2p18875 60085–60114 ———
14170result_mark_of_doom22444 60085–60114 ———
12789result_meditate_rings19520 60085–60114 ———
12601result_medusa_snake_attack_p2p19145 60085–60114 ———
12595result_medusa_snake_strike19132 60085–60114 ———
11814result_melee_lifetap_p2p17240 60085–60114 ———
12048result_melee_swipe17841 60085–60114 ———
12049result_melee_wild_swipe17842 60085–60114 ———
12381result_melt18584 60085–60114 ———
1199result_mend_synth_sound1440 1–843 ———
9372result_mend_synth_sound12127 60085–60114 ———
11765result_mesh_attack17101 60085–60114 ———
12663result_mesh_blast19291 60085–60114 ———
29098result_mesh_boiling_energy82222 60085–60114 ———
28978result_mesh_explode_dark77265 60085–60114 ———
579result_mesmerize504 1–843 ———
6742result_mesmerize504 60085–60114 ———
1548result_metal_rusty_forced_shader1855 1–843 ———
6995result_metal_rusty_forced_shader1855 60085–60114 ———
12025result_meteor_storm17796 60085–60114 ———
12046result_misty_snare17833 60085–60114 ———
2780result_mist_clingy3910 1–843 ———
7421result_mist_clingy3910 60085–60114 ———
10850result_mist_clingy_sub14627 60085–60114 ———
29339result_molotov_cocktail_p2p93871 60085–60114 ———
7884result_monk_fist_rings10393 60085–60114 ———
29660result_moonlight_beam_p2p97384 60085–60114 ———
2959result_morph_to_dragon4571 1–843 ———
7482result_morph_to_dragon4571 60085–60114 ———
3040result_morph_to_elf4788 1–843 ———
7505result_morph_to_elf4788 60085–60114 ———
2947result_morph_to_pet4545 1–843 ———
7472result_morph_to_pet4545 60085–60114 ———
2257result_motion_circles2814 1–843 ———
7219result_motion_circles2814 60085–60114 ———
2242result_motion_lines2793 1–843 ———
7205result_motion_lines2793 60085–60114 ———
2247result_motion_lines_flasher2801 1–843 ———
7210result_motion_lines_flasher2801 60085–60114 ———
2855result_motion_lines_flasher_aoe4131 1–843 ———
7443result_motion_lines_flasher_aoe4131 60085–60114 ———
2248result_motion_lines_sub2802 1–843 ———
7211result_motion_lines_sub2802 60085–60114 ———
2856result_motion_lines_sub_aoe4132 1–843 ———
7444result_motion_lines_sub_aoe4132 60085–60114 ———
1885result_mouth_in2248 1–843 ———
7095result_mouth_in2248 60085–60114 ———
14317result_mug_hit22843 60085–60114 ———
3097result_mushrooms_growing5070 1–843 ———
7525result_mushrooms_growing5070 60085–60114 ———
16803result_music_barrier_beam_p2p29898 60085–60114 ———
14131result_musky_object22283 60085–60114 ———
14130result_musk_spray_p2p22282 60085–60114 ———
3439result_mysticism6771 1–843 ———
7585result_mysticism6771 60085–60114 ———
7928result_mystic_cloudy_feet10585 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.