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
8485converse_male0311235 60085–60114 ———
2388converse_male042983 1–843 ———
7247converse_male042983 60085–60114 ———
2389converse_male052984 1–843 ———
8486converse_male0511236 60085–60114 ———
2390converse_male062985 1–843 ———
8487converse_male0611237 60085–60114 ———
2391converse_male072986 1–843 ———
8488converse_male0711238 60085–60114 ———
2392converse_male082987 1–843 ———
8489converse_male0811239 60085–60114 ———
2393converse_male092988 1–843 ———
8490converse_male0911240 60085–60114 ———
2394converse_male102989 1–843 ———
8491converse_male1011241 60085–60114 ———
2395converse_male112990 1–843 ———
8492converse_male1111242 60085–60114 ———
2396converse_male122991 1–843 ———
7248converse_male122991 60085–60114 ———
13980converse_sit21912 60085–60114 ———
14029converse_sit0122044 60085–60114 ———
14030converse_sit0222045 60085–60114 ———
12437cooked18733 60085–60114 ———
16713cookie_gumdrop_fx29553 60085–60114 ———
16651cookie_ouch_fx29384 60085–60114 ———
1930cooking_failure2317 1–843 ———
8493cooking_failure11243 60085–60114 ———
1931cooking_idle2318 1–843 ———
8494cooking_idle11244 60085–60114 ———
1932cooking_success2319 1–843 ———
8495cooking_success11245 60085–60114 ———
3148corpse5442 1–843 ———
8496corpse11246 60085–60114 ———
8497cos_call_storm_snd11247 60085–60114 ———
8498cos_storm_space_snd11248 60085–60114 ———
14161count22407 60085–60114 ———
2889cp_charge_snd4305 1–843 ———
8499cp_charge_snd11249 60085–60114 ———
28483crackle_whoosh01_snd66203 60085–60114 ———
28484crackle_whoosh02_snd66204 60085–60114 ———
8502cracks11252 60085–60114 ———
29290crafting93060 60085–60114 ———
17244crash31439 60085–60114 ———
2918crash_enter4500 1–843 ———
8503crash_enter11253 60085–60114 ———
2919crash_exit4501 1–843 ———
8504crash_exit11254 60085–60114 ———
14123crate_break_snd22273 60085–60114 ———
217crazy217 1–843 rambles insanely!rambles insanely at %t.—
8505crazy11255 60085–60114 rambles insanely!rambles insanely at %t.—
218cringe218 1–843 cringes.cringes away from %t.—
8506cringe11256 60085–60114 cringes.cringes away from %t.—
921croak_011126 1–843 ———
8507croak_0111257 60085–60114 ———
922croak_021127 1–843 ———
8508croak_0211258 60085–60114 ———
923croak_031128 1–843 ———
8509croak_0311259 60085–60114 ———
924croak_041129 1–843 ———
8510croak_0411260 60085–60114 ———
925croak_051130 1–843 ———
8511croak_0511261 60085–60114 ———
926croak_061131 1–843 ———
8512croak_0611262 60085–60114 ———
927croak_071132 1–843 ———
8513croak_0711263 60085–60114 ———
928croak_081133 1–843 ———
8514croak_0811264 60085–60114 ———
929croak_091134 1–843 ———
8515croak_0911265 60085–60114 ———
1874crouch_backup2214 1–843 ———
8516crouch_backup11266 60085–60114 ———
460crouch_enter219 1–843 ———
6711crouch_enter219 60085–60114 ———
461crouch_exit220 1–843 ———
6712crouch_exit220 60085–60114 ———
462crouch_idle221 1–843 ———
6713crouch_idle221 60085–60114 ———
8517crouch_run11267 60085–60114 ———
1868crouch_strafe_left2202 1–843 ———
8518crouch_strafe_left11268 60085–60114 ———
1869crouch_strafe_right2203 1–843 ———
8519crouch_strafe_right11269 60085–60114 ———
2296crouch_tail2875 1–843 ———
8520crouch_tail11270 60085–60114 ———
8521crouch_tail_cloak11271 60085–60114 ———
1870crouch_turn_left2204 1–843 ———
8522crouch_turn_left11272 60085–60114 ———
1871crouch_turn_right2205 1–843 ———
8523crouch_turn_right11273 60085–60114 ———
1875crouch_walk2215 1–843 ———
8524crouch_walk11274 60085–60114 ———
28485crust_crackle_energy_whoosh_snd66205 60085–60114 ———
219cry222 1–843 cries.cries over %t.—
8525cry11275 60085–60114 cries.cries over %t.—
16167crying27395 60085–60114 ———
13159crystaline_folk_footstep_big20097 60085–60114 ———
13160crystaline_folk_footstep_crunch20098 60085–60114 ———
13158crystaline_folk_lf20096 60085–60114 ———
13161crystaline_folk_stone_debris20099 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.