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
7567cast_dragonbreath6453 60085–60114 ———
28818cast_dragon_aa_rune_fx70044 60085–60114 ———
11377cast_dragon_breath_cold16365 60085–60114 ———
11378cast_dragon_breath_heat16366 60085–60114 ———
11379cast_dragon_breath_lightning16367 60085–60114 ———
11380cast_dragon_breath_poison16368 60085–60114 ———
2085cast_dragon_pbae_cold2589 1–843 ———
7126cast_dragon_pbae_cold2589 60085–60114 ———
2086cast_dragon_pbae_heat2590 1–843 ———
7127cast_dragon_pbae_heat2590 60085–60114 ———
2111cast_dragon_pbae_lightning2636 1–843 ———
7144cast_dragon_pbae_lightning2636 60085–60114 ———
11186cast_dragon_pbae_lightning_red15975 60085–60114 ———
2087cast_dragon_pbae_mental2591 1–843 ———
7128cast_dragon_pbae_mental2591 60085–60114 ———
2088cast_dragon_pbae_poison2592 1–843 ———
7129cast_dragon_pbae_poison2592 60085–60114 ———
2089cast_dragon_pbae_void2593 1–843 ———
7130cast_dragon_pbae_void2593 60085–60114 ———
2112cast_dragon_tae_lightning2637 1–843 ———
7145cast_dragon_tae_lightning2637 60085–60114 ———
2090cast_dragon_tae_mental2594 1–843 ———
7131cast_dragon_tae_mental2594 60085–60114 ———
11354cast_dragon_tail_trail16328 60085–60114 ———
11355cast_dragon_tail_trail_long16329 60085–60114 ———
11356cast_dragon_wing_buffet16330 60085–60114 ———
1407cast_dragon_wing_dust1667 1–843 ———
6962cast_dragon_wing_dust1667 60085–60114 ———
17431cast_draining_portal_fx32403 60085–60114 ———
11381cast_drake_breath_cold16369 60085–60114 ———
11382cast_drake_breath_lightning16370 60085–60114 ———
11383cast_drake_breath_magic_divine16371 60085–60114 ———
11384cast_drake_breath_poison16372 60085–60114 ———
8260cast_drake_fire_breath11003 60085–60114 ———
885cast_drone_01_snd1076 1–843 ———
8261cast_drone_01_snd11004 60085–60114 ———
886cast_drone_02_snd1077 1–843 ———
8262cast_drone_02_snd11005 60085–60114 ———
1065cast_drone_snd1306 1–843 ———
8263cast_drone_snd11006 60085–60114 ———
1142cast_drone_sound1383 1–843 ———
8264cast_drone_sound11007 60085–60114 ———
405cast_druid144 1–843 ———
6672cast_druid144 60085–60114 ———
15787cast_druid_light_beams26111 60085–60114 ———
2293cast_druid_ws2871 1–843 ———
7223cast_druid_ws2871 60085–60114 ———
7622cast_dryad_attack_aoe8502 60085–60114 ———
7620cast_dryad_teleport8482 60085–60114 ———
11187cast_dual_shards15976 60085–60114 ———
406cast_dustpuff145 1–843 ———
6673cast_dustpuff145 60085–60114 ———
8265cast_dustpuff_lefthand11008 60085–60114 ———
1303cast_dustpuff_lfoot1548 1–843 ———
6915cast_dustpuff_lfoot1548 60085–60114 ———
1075cast_dustpuff_rfoot1316 1–843 ———
6825cast_dustpuff_rfoot1316 60085–60114 ———
8266cast_dustpuff_righthand11009 60085–60114 ———
1304cast_dustpuff_weaponrootleft1549 1–843 ———
6916cast_dustpuff_weaponrootleft1549 60085–60114 ———
1305cast_dustpuff_weaponrootright1550 1–843 ———
6917cast_dustpuff_weaponrootright1550 60085–60114 ———
1143cast_dustpuff_ws1384 1–843 ———
6864cast_dustpuff_ws1384 60085–60114 ———
12172cast_earth_charge18088 60085–60114 ———
15743cast_eat_snowball25873 60085–60114 ———
2146cast_elec_feet2684 1–843 ———
7158cast_elec_feet2684 60085–60114 ———
3133cast_elec_feet_green5340 1–843 ———
8267cast_elec_feet_green11010 60085–60114 ———
994cast_elec_hands1218 1–843 ———
6783cast_elec_hands1218 60085–60114 ———
8268cast_elec_hands_four11011 60085–60114 ———
8269cast_elec_hands_four_up11012 60085–60114 ———
8270cast_elec_hands_up11013 60085–60114 ———
13958cast_elemental_converge21868 60085–60114 ———
15867cast_ember_breath26261 60085–60114 ———
1321cast_enchanter1567 1–843 ———
6925cast_enchanter1567 60085–60114 ———
12317cast_enchanter_wheel_back18440 60085–60114 ———
12318cast_enchanter_wheel_base18441 60085–60114 ———
12319cast_enchanter_wheel_forward18442 60085–60114 ———
3368cast_end6472 1–843 ———
887cast_endbang2_snd1078 1–843 ———
8272cast_endbang2_snd11015 60085–60114 ———
888cast_endbang_snd1079 1–843 ———
8273cast_endbang_snd11016 60085–60114 ———
889cast_endsparkle_snd1080 1–843 ———
8274cast_endsparkle_snd11017 60085–60114 ———
890cast_endthunder_snd1081 1–843 ———
8275cast_endthunder_snd11018 60085–60114 ———
1144cast_end_sound1385 1–843 ———
8271cast_end_sound11014 60085–60114 ———
11965cast_energy_blast_aoe17625 60085–60114 ———
11750cast_energy_blob17049 60085–60114 ———
11751cast_energy_blob_p2p17050 60085–60114 ———
11943cast_energy_charge_up17589 60085–60114 ———
29232cast_energy_transfer_barrier89789 60085–60114 ———
13927cast_enraged_flames21813 60085–60114 ———
12464cast_enter18798 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.