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
7088cast_orbiting_rings22145 60085–60114 ———
2611cast_p2p_fire_013351 1–843 ———
7311cast_p2p_fire_013351 60085–60114 ———
2612cast_p2p_fire_023352 1–843 ———
7312cast_p2p_fire_023352 60085–60114 ———
2600cast_p2p_lightning_013337 1–843 ———
7300cast_p2p_lightning_013337 60085–60114 ———
2601cast_p2p_lightning_023338 1–843 ———
7301cast_p2p_lightning_023338 60085–60114 ———
1896cast_paladin2261 1–843 ———
7101cast_paladin2261 60085–60114 ———
17160cast_paladin_mythical_fx31240 60085–60114 ———
1160cast_pdswipe_01_snd1401 1–843 ———
8321cast_pdswipe_01_snd11064 60085–60114 ———
29267cast_pet_rock_blast92364 60085–60114 ———
415cast_pfx_dust_leaves_l154 1–843 ———
6682cast_pfx_dust_leaves_l154 60085–60114 ———
416cast_pfx_dust_leaves_r155 1–843 ———
6683cast_pfx_dust_leaves_r155 60085–60114 ———
417cast_pfx_glow_firepuff_l158 1–843 ———
6684cast_pfx_glow_firepuff_l158 60085–60114 ———
418cast_pfx_glow_firepuff_r159 1–843 ———
6685cast_pfx_glow_firepuff_r159 60085–60114 ———
419cast_pfx_glow_galv_l160 1–843 ———
6686cast_pfx_glow_galv_l160 60085–60114 ———
420cast_pfx_glow_galv_r161 1–843 ———
6687cast_pfx_glow_galv_r161 60085–60114 ———
1822cast_pfx_glow_galv_ws_l2139 1–843 ———
7084cast_pfx_glow_galv_ws_l2139 60085–60114 ———
1823cast_pfx_glow_galv_ws_r2140 1–843 ———
7085cast_pfx_glow_galv_ws_r2140 60085–60114 ———
421cast_pfx_glow_prism_l162 1–843 ———
6688cast_pfx_glow_prism_l162 60085–60114 ———
422cast_pfx_glow_prism_r163 1–843 ———
6689cast_pfx_glow_prism_r163 60085–60114 ———
1000cast_pfx_glow_trail_l1226 1–843 ———
6784cast_pfx_glow_trail_l1226 60085–60114 ———
1001cast_pfx_glow_trail_r1227 1–843 ———
6785cast_pfx_glow_trail_r1227 60085–60114 ———
423cast_pfx_l166 1–843 ———
6690cast_pfx_l166 60085–60114 ———
8322cast_pfx_magenuke_head11065 60085–60114 ———
424cast_pfx_magenuke_l167 1–843 ———
6691cast_pfx_magenuke_l167 60085–60114 ———
425cast_pfx_magenuke_r168 1–843 ———
6692cast_pfx_magenuke_r168 60085–60114 ———
10791cast_pfx_notes_l14242 60085–60114 ———
10792cast_pfx_notes_r14243 60085–60114 ———
2898cast_pfx_orbiting_rings_l4368 1–843 ———
7461cast_pfx_orbiting_rings_l4368 60085–60114 ———
2899cast_pfx_orbiting_rings_r4369 1–843 ———
7462cast_pfx_orbiting_rings_r4369 60085–60114 ———
426cast_pfx_r169 1–843 ———
6693cast_pfx_r169 60085–60114 ———
1506cast_pfx_trace_puffs_l1807 1–843 ———
6986cast_pfx_trace_puffs_l1807 60085–60114 ———
1507cast_pfx_trace_puffs_r1808 1–843 ———
6987cast_pfx_trace_puffs_r1808 60085–60114 ———
7603cast_pickpocket6975 60085–60114 ———
13337cast_pick_axe_throw20555 60085–60114 ———
2730cast_piercing_note3777 1–843 ———
7393cast_piercing_note3777 60085–60114 ———
1881cast_pillars2233 1–843 ———
8328cast_pillars11071 60085–60114 ———
1161cast_pillar_sound_011402 1–843 ———
8323cast_pillar_sound_0111066 60085–60114 ———
1162cast_pillar_sound_021403 1–843 ———
8324cast_pillar_sound_0211067 60085–60114 ———
1163cast_pillar_sound_031404 1–843 ———
8325cast_pillar_sound_0311068 60085–60114 ———
1164cast_pillar_sound_041405 1–843 ———
8326cast_pillar_sound_0411069 60085–60114 ———
1165cast_pillar_sound_051406 1–843 ———
8327cast_pillar_sound_0511070 60085–60114 ———
15892cast_pillar_spin26313 60085–60114 ———
427cast_placeholder_l172 1–843 ———
6694cast_placeholder_l172 60085–60114 ———
428cast_placeholder_r173 1–843 ———
6695cast_placeholder_r173 60085–60114 ———
13619cast_plague_spikes21122 60085–60114 ———
7592cast_plane_shift6844 60085–60114 ———
13124cast_poison_blast20030 60085–60114 ———
12598cast_poison_column_blast19138 60085–60114 ———
12606cast_poison_daggers19157 60085–60114 ———
1282cast_poison_dragon_breath1524 1–843 ———
6909cast_poison_dragon_breath1524 60085–60114 ———
3448cast_poison_dragon_breath_test6788 1–843 ———
11051cast_poison_dragon_breath_test15617 60085–60114 ———
14419cast_poison_sands23071 60085–60114 ———
16847cast_poison_spray_back30187 60085–60114 ———
16848cast_poison_spray_cone30188 60085–60114 ———
15116cast_pollen_spew25026 60085–60114 ———
17432cast_portal_energy_release32405 60085–60114 ———
13609cast_potion_hand_pattern_heal21097 60085–60114 ———
13610cast_potion_hand_sparks21098 60085–60114 ———
13611cast_potion_ring_cure21099 60085–60114 ———
15911cast_prestige_fx26358 60085–60114 ———
11052cast_pricecheck15618 60085–60114 ———
429cast_priest174 1–843 ———
6696cast_priest174 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.