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
11256mount_combat_idle16158 60085–60114 ———
11257mount_ouch16159 60085–60114 ———
11258mount_ouch0116160 60085–60114 ———
14530mount_summon_komodo_snd23440 60085–60114 ———
14531mount_summon_raptor_snd23441 60085–60114 ———
14532mount_summon_terrorbird_snd23442 60085–60114 ———
14189mourn22512 60085–60114 ———
15940mouth_down26496 60085–60114 ———
15941mouth_open26497 60085–60114 ———
15942mouth_up26498 60085–60114 ———
11944mr_chargeup_sound17594 60085–60114 ———
833mr_chomp1007 1–843 ———
9106mr_chomp11860 60085–60114 ———
834mr_curl1008 1–843 ———
9107mr_curl11861 60085–60114 ———
835mr_death_yell1009 1–843 ———
9108mr_death_yell11862 60085–60114 ———
836mr_fall1010 1–843 ———
9109mr_fall11863 60085–60114 ———
837mr_growl1011 1–843 ———
9110mr_growl11864 60085–60114 ———
11878mr_lamp_fx_0117449 60085–60114 ———
11879mr_lamp_fx_0217450 60085–60114 ———
11880mr_lamp_fx_0317451 60085–60114 ———
11881mr_lamp_fx_0417452 60085–60114 ———
11882mr_lamp_fx_0517453 60085–60114 ———
11883mr_lamp_fx_0617454 60085–60114 ———
11884mr_lamp_ignite_sound17455 60085–60114 ———
11885mr_lamp_sounds_finish17456 60085–60114 ———
11886mr_lamp_sounds_start17457 60085–60114 ———
838mr_land1012 1–843 ———
9111mr_land11865 60085–60114 ———
11945mr_lightning_chargeup17595 60085–60114 ———
839mr_ouch_011013 1–843 ———
9112mr_ouch_0111866 60085–60114 ———
840mr_run_011014 1–843 ———
9113mr_run_0111867 60085–60114 ———
12157mushroom_buff18051 60085–60114 ———
9115myst_caststarsresult_snd11869 60085–60114 ———
9114myst_caststars_snd11868 60085–60114 ———
9116myst_stars_snd11870 60085–60114 ———
11794najena_dark_rune0117200 60085–60114 ———
11795najena_dark_rune0217201 60085–60114 ———
11796najena_dark_rune0317202 60085–60114 ———
11797najena_dark_rune0417203 60085–60114 ———
11798najena_dark_rune0517204 60085–60114 ———
11793najena_face_lava17193 60085–60114 ———
11810najena_lava_curtain17228 60085–60114 ———
11807najena_lava_god_hands17219 60085–60114 ———
11808najena_lava_god_skull17220 60085–60114 ———
11799najena_light_rune0117205 60085–60114 ———
11800najena_light_rune0217206 60085–60114 ———
11801najena_light_rune0317207 60085–60114 ———
11802najena_light_rune0417208 60085–60114 ———
11803najena_light_rune0517209 60085–60114 ———
11804najena_puzzle_complete17210 60085–60114 ———
11811najena_rune_key17229 60085–60114 ———
2311nbgroup_castmagic_snd2894 1–843 ———
9124nbgroup_castmagic_snd11878 60085–60114 ———
1353nb_burn_01_snd1609 1–843 ———
9117nb_burn_01_snd11871 60085–60114 ———
1354nb_burst_02_snd1610 1–843 ———
9118nb_burst_02_snd11872 60085–60114 ———
1355nb_burst_snd1611 1–843 ———
9119nb_burst_snd11873 60085–60114 ———
1356nb_castmagic_snd1612 1–843 ———
9120nb_castmagic_snd11874 60085–60114 ———
1357nb_handsparks_long_snd1613 1–843 ———
9121nb_handsparks_long_snd11875 60085–60114 ———
9122nb_handsparks_louder_snd11876 60085–60114 ———
1358nb_handsparks_snd1614 1–843 ———
9123nb_handsparks_snd11877 60085–60114 ———
16840necro_curse30136 60085–60114 ———
1941needle012328 1–843 ———
9125needle0111879 60085–60114 ———
264neener393 1–843 childishly taunts everyone.childishly taunts %t.—
9126neener11880 60085–60114 childishly taunts everyone.childishly taunts %t.—
28581neener_loop66480 60085–60114 ———
265no394 1–843 gives an emphatic NO!gives an emphatic no to %t.—
9127no11881 60085–60114 gives an emphatic NO!gives an emphatic no to %t.—
266nod395 1–843 nods.nods in agreement with %t.—
9128nod11882 60085–60114 nods.nods in agreement with %t.—
15943normalfv26499 60085–60114 ———
267notworthy396 1–843 appears not worthy.genuflects to %t.—
6724notworthy396 60085–60114 appears not worthy.genuflects to %t.—
1413o1673 1–843 ———
9129o11883 60085–60114 ———
2427offensive_buff3022 1–843 ———
9136offensive_buff11890 60085–60114 ———
9130off_combat11884 60085–60114 ———
9131off_enter11885 60085–60114 ———
9132off_exit11886 60085–60114 ———
9133off_idle11887 60085–60114 ———
9134off_peace11888 60085–60114 ———
9135off_sit11889 60085–60114 ———
10702ogre_1h_crush_ouch_forehand13789 60085–60114 ———
10703ogre_1h_pierce_ouch_forehand13790 60085–60114 ———
10704ogre_1h_sword_ouch_forehand13791 60085–60114 ———
10705ogre_1h_thrown_ouch_forehand13792 60085–60114 ———
10706ogre_2h_sword_dodge_backhand13793 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.