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
400cast_ball139 1–843 ———
6667cast_ball139 60085–60114 ———
1262cast_ball_fire1503 1–843 ———
6904cast_ball_fire1503 60085–60114 ———
10885cast_ball_lightning_damage14924 60085–60114 ———
1893cast_bard2258 1–843 ———
7098cast_bard2258 60085–60114 ———
16623cast_bard_bagpipes29255 60085–60114 ———
2193cast_bard_drum_end2739 1–843 ———
8242cast_bard_drum_end10982 60085–60114 ———
2194cast_bard_drum_loop2740 1–843 ———
8243cast_bard_drum_loop10983 60085–60114 ———
11014cast_bard_drum_persist15258 60085–60114 ———
2195cast_bard_drum_start2741 1–843 ———
2196cast_bard_flute_end2742 1–843 ———
8244cast_bard_flute_end10985 60085–60114 ———
2197cast_bard_flute_loop2743 1–843 ———
8245cast_bard_flute_loop10986 60085–60114 ———
11015cast_bard_flute_persist15259 60085–60114 ———
2198cast_bard_flute_start2744 1–843 ———
2199cast_bard_stringed_end2745 1–843 ———
8246cast_bard_stringed_end10988 60085–60114 ———
2200cast_bard_stringed_loop2746 1–843 ———
8247cast_bard_stringed_loop10989 60085–60114 ———
11016cast_bard_stringed_persist15260 60085–60114 ———
2201cast_bard_stringed_start2747 1–843 ———
8248cast_bard_stringed_start10990 60085–60114 ———
2202cast_bard_vocal_end2748 1–843 ———
8249cast_bard_vocal_end10991 60085–60114 ———
2203cast_bard_vocal_loop2749 1–843 ———
8250cast_bard_vocal_loop10992 60085–60114 ———
2204cast_bard_vocal_start2750 1–843 ———
11792cast_barnacle_blast17186 60085–60114 ———
11726cast_barnicle_blast16942 60085–60114 ———
29022cast_barrier_breath179796 60085–60114 ———
12274cast_base_rune_wheel18376 60085–60114 ———
17364cast_beastlord32132 60085–60114 ———
17145cast_beastlord_mythical_fx31225 60085–60114 ———
28290cast_beetle_reappear65618 60085–60114 ———
28291cast_beetle_wings65619 60085–60114 ———
15916cast_belly_blast26390 60085–60114 ———
15696cast_belly_flop25732 60085–60114 ———
17365cast_berserker32133 60085–60114 ———
17146cast_berserker_mythical_fx31226 60085–60114 ———
28863cast_blade_skulls72193 60085–60114 ———
29212cast_blade_tornado88375 60085–60114 ———
7645cast_blanket_of_eternal_night9754 60085–60114 ———
29622cast_bloody_frenzy96634 60085–60114 ———
29170cast_blood_spirits_summon85030 60085–60114 ———
28379cast_blood_spirit_vanish65870 60085–60114 ———
16334cast_blue_buff28106 60085–60114 ———
12265cast_boiling_energy18349 60085–60114 ———
2953cast_bone_blast_14561 1–843 ———
7476cast_bone_blast_14561 60085–60114 ———
2954cast_bone_blast_24562 1–843 ———
7477cast_bone_blast_24562 60085–60114 ———
2955cast_bone_blast_34563 1–843 ———
7478cast_bone_blast_34563 60085–60114 ———
11816cast_bone_blast_blend17245 60085–60114 ———
11824cast_bone_blast_notes17279 60085–60114 ———
29167cast_bone_shard_attack84830 60085–60114 ———
28810cast_bone_shredder69577 60085–60114 ———
29163cast_bone_summon_attack84432 60085–60114 ———
14160cast_bone_toss22403 60085–60114 ———
11653cast_boomerang16772 60085–60114 ———
29046cast_breath_deflected80617 60085–60114 ———
11344cast_breath_divine16304 60085–60114 ———
11345cast_breath_magic16305 60085–60114 ———
17366cast_brigand32134 60085–60114 ———
17147cast_brigand_mythical_fx31227 60085–60114 ———
401cast_bright_ring140 1–843 ———
6668cast_bright_ring140 60085–60114 ———
3033cast_bright_ring_blue4742 1–843 ———
7502cast_bright_ring_blue4742 60085–60114 ———
3034cast_bright_ring_red4743 1–843 ———
7503cast_bright_ring_red4743 60085–60114 ———
17367cast_bruiser32135 60085–60114 ———
17148cast_bruiser_mythical_fx31228 60085–60114 ———
11828cast_bubble_ward17290 60085–60114 ———
11835cast_bubble_ward_out17315 60085–60114 ———
3365cast_buff6469 1–843 ———
15868cast_burrow_dust_fx26268 60085–60114 ———
2914cast_call_of_power4493 1–843 ———
7464cast_call_of_power4493 60085–60114 ———
3431cast_call_of_storms6752 1–843 ———
7582cast_call_of_storms6752 60085–60114 ———
3366cast_celtic_circle6470 1–843 ———
7570cast_celtic_circle6470 60085–60114 ———
11460cast_chalice_descending16520 60085–60114 ———
17368cast_channeler32136 60085–60114 ———
28629cast_channeler_mythical_fx66755 60085–60114 ———
28479cast_channeler_portal01_snd66196 60085–60114 ———
28480cast_channeler_portal02_snd66197 60085–60114 ———
1138cast_chargeswordglint_sound1379 1–843 ———
8252cast_chargeswordglint_sound10995 60085–60114 ———
1137cast_charge_wind_01_sound1378 1–843 ———
8251cast_charge_wind_01_sound10994 60085–60114 ———
14974cast_claws_strike_targeted24593 60085–60114 ———
1317cast_cleric1563 1–843 ———
6922cast_cleric1563 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.