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
13162crystaline_folk_tantrum_120100 60085–60114 ———
13163crystaline_folk_tantrum_220101 60085–60114 ———
13164crystaline_folk_tantrum_320102 60085–60114 ———
13165crystaline_folk_tantrum_body_120103 60085–60114 ———
13166crystaline_folk_tantrum_body_220104 60085–60114 ———
13167crystaline_folk_tantrum_body_320105 60085–60114 ———
28486crystalline_crackle_snd66207 60085–60114 ———
2753cr_choral01_sound3815 1–843 ———
8500cr_choral01_sound11250 60085–60114 ———
2754cr_choral02_sound3816 1–843 ———
8501cr_choral02_sound11251 60085–60114 ———
16439csat_werewolf_vanish28587 60085–60114 ———
1686cs_begin_snd1996 1–843 ———
8526cs_begin_snd11276 60085–60114 ———
1829cs_cast_lp_snd2146 1–843 ———
8527cs_cast_lp_snd11277 60085–60114 ———
1687cs_disco_lp01_snd1997 1–843 ———
8528cs_disco_lp01_snd11278 60085–60114 ———
1688cs_end_snd1998 1–843 ———
8529cs_end_snd11279 60085–60114 ———
1228cs_iceburst_sound1469 1–843 ———
8531cs_iceburst_sound11281 60085–60114 ———
1229cs_icetones_011470 1–843 ———
8532cs_icetones_0111282 60085–60114 ———
1230cs_icewind_sound1471 1–843 ———
8533cs_icewind_sound11283 60085–60114 ———
1227cs_ice_crackle_011468 1–843 ———
8530cs_ice_crackle_0111280 60085–60114 ———
2781cs_result_sound3916 1–843 ———
8534cs_result_sound11284 60085–60114 ———
220curse223 1–843 curses the gods!curses %t.—
8535curse11285 60085–60114 curses the gods!curses %t.—
17171cursed_nayad_attack31279 60085–60114 ———
17172cursed_nayad_death31280 60085–60114 ———
17173cursed_nayad_take_damage31281 60085–60114 ———
221curtsey224 1–843 curtsies.curtseys to %t.—
8536curtsey11286 60085–60114 curtsies.curtseys to %t.—
222cutthroat226 1–843 runs %g1 thumb across %g1 throat, threatening everyone!runs their thumb around their throat, threatening %t.—
8537cutthroat11287 60085–60114 runs %g1 thumb across %g1 throat, threatening everyone!runs their thumb around their throat, threatening %t.—
3046cv_candle01_snd4801 1–843 ———
8538cv_candle01_snd11288 60085–60114 ———
3047cv_candle02_snd4802 1–843 ———
8539cv_candle02_snd11289 60085–60114 ———
3048cv_darkcandle_snd4803 1–843 ———
8540cv_darkcandle_snd11290 60085–60114 ———
3049cv_drone_snd4804 1–843 ———
8541cv_drone_snd11291 60085–60114 ———
3050cv_handwave01_snd4805 1–843 ———
8542cv_handwave01_snd11292 60085–60114 ———
3051cv_handwave02_snd4806 1–843 ———
8543cv_handwave02_snd11293 60085–60114 ———
2673damage013598 1–843 ———
8544damage0111294 60085–60114 ———
2674damage023599 1–843 ———
8545damage0211295 60085–60114 ———
2675damage033600 1–843 ———
8546damage0311296 60085–60114 ———
8547damage_small11297 60085–60114 ———
223dance227 1–843 dances!dances with %t.—
8548dance11298 60085–60114 dances!dances with %t.—
8549dance0111299 60085–60114 ———
15102dance0224966 60085–60114 ———
15103dance0324967 60085–60114 ———
16131dance_a27178 60085–60114 ———
16132dance_base27179 60085–60114 ———
11218dance_enter16056 60085–60114 ———
11219dance_exit16057 60085–60114 ———
14749dance_female24010 60085–60114 ———
16252dance_short27771 60085–60114 ———
11481dance_synced16589 60085–60114 ———
10720darkelf_female_2h_sword_wild_swing13816 60085–60114 ———
10734darkelf_female_pike_charge_up13850 60085–60114 ———
10735darkelf_female_pike_defensive_buff13851 60085–60114 ———
10736darkelf_female_pike_offensive_buff13852 60085–60114 ———
16193dark_elf_splash_mist27497 60085–60114 ———
1982dark_smoke2401 1–843 ———
8550dark_smoke11300 60085–60114 ———
1996dark_smoke_up2425 1–843 ———
8551dark_smoke_up11301 60085–60114 ———
3015dbb_dragonbreathhiwav_snd4712 1–843 ———
8556dbb_dragonbreathhiwav_snd11306 60085–60114 ———
3014dbb_dragonbreath_snd4711 1–843 ———
8555dbb_dragonbreath_snd11305 60085–60114 ———
2281db_drone_sound2854 1–843 ———
8552db_drone_sound11302 60085–60114 ———
2282db_electricend_sound2855 1–843 ———
8553db_electricend_sound11303 60085–60114 ———
2283db_swordstickdirt_sound2856 1–843 ———
8554db_swordstickdirt_sound11304 60085–60114 ———
3105dcspid_spider_snd5133 1–843 ———
8558dcspid_spider_snd11308 60085–60114 ———
3104dcs_scarab_lp_snd5132 1–843 ———
8557dcs_scarab_lp_snd11307 60085–60114 ———
463dead228 1–843 ———
6714dead228 60085–60114 ———
16325dead0128089 60085–60114 ———
16293dead0227989 60085–60114 ———
15004dead_alt24738 60085–60114 ———
8559dead_dark_smoke11309 60085–60114 ———
8560dead_dark_smoke_head11310 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.