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
31673kill__wyvern_mount_idle018494508 60085–60114 ———
28694kinocktobackexit67274 60085–60114 ———
521kiss348 1–843 ———
9008kiss11762 60085–60114 ———
13316kneel20482 1–60114 kneels.kneels before %t.—
12520kneel_enter18913 60085–60114 ———
12521kneel_exit18914 60085–60114 ———
12522kneel_idle18915 60085–60114 ———
1310knockdowntoknees1555 1–843 ———
9010knockdowntoknees11764 60085–60114 ———
16134knockdowntoknees_enter27192 60085–60114 ———
16135knockdowntoknees_exit27193 60085–60114 ———
16136knockdowntoknees_idle27194 60085–60114 ———
3146knockdowntokness5399 1–843 ———
9011knockdowntokness11765 60085–60114 ———
1309knockdown_attack1554 1–843 ———
9009knockdown_attack11763 60085–60114 ———
3147knockdwontoknees5400 1–843 ———
9012knockdwontoknees11766 60085–60114 ———
3295knockeddowntoknees6165 1–843 ———
11776knockeddowntoknees17155 60085–60114 ———
28984knockedout_enter77772 60085–60114 ———
28985knockedout_exit77773 60085–60114 ———
28986knockedout_idle77774 60085–60114 ———
1350knockedtoback1606 1–843 ———
9013knockedtoback11767 60085–60114 ———
14309knockedtoback_enter22808 60085–60114 ———
14310knockedtoback_exit22809 60085–60114 ———
1351knockedtoback_getup1607 1–843 ———
9014knockedtoback_getup11768 60085–60114 ———
14144knockedtoback_idle22352 60085–60114 ———
1352knockedtoback_onbackidle1608 1–843 ———
9015knockedtoback_onbackidle11769 60085–60114 ———
2871knockedtoknees4216 1–843 ———
9016knockedtoknees11770 60085–60114 ———
16042knockedtoknees_dead26959 60085–60114 ———
28981knockedtoknees_enter77601 60085–60114 ———
28982knockedtoknees_exit77602 60085–60114 ———
28983knockedtoknees_idle77603 60085–60114 ———
3134knockedtokness5345 1–843 ———
9017knockedtokness11771 60085–60114 ———
16033knocked_to_back26907 60085–60114 ———
16034knocked_to_back_getup26908 60085–60114 ———
16035knocked_to_back_idle26909 60085–60114 ———
11684knocktoback_enter16858 60085–60114 ———
11685knocktoback_exit16859 60085–60114 ———
29611knocktoback_getup96208 60085–60114 ———
11686knocktoback_idle16860 60085–60114 ———
9018knocktoknees11772 60085–60114 ———
13644knocktoknees_enter21197 60085–60114 ———
15704knocktoknees_exit25752 60085–60114 ———
13645knocktoknees_idle21198 60085–60114 ———
28992knockwsrobacks_idle78273 60085–60114 ———
30031kobold_howl108666 60085–60114 ———
14463komodo_mount_backup23215 60085–60114 ———
14464komodo_mount_fall23216 60085–60114 ———
14500komodo_mount_fly_glide_left23301 60085–60114 ———
14501komodo_mount_fly_glide_right23302 60085–60114 ———
14502komodo_mount_glide23303 60085–60114 ———
14510komodo_mount_glide_left23351 60085–60114 ———
14511komodo_mount_glide_right23352 60085–60114 ———
14465komodo_mount_idle23217 60085–60114 ———
14466komodo_mount_jump23218 60085–60114 ———
14467komodo_mount_jump_substitute23219 60085–60114 ———
14468komodo_mount_land23220 60085–60114 ———
14469komodo_mount_long_fall23221 60085–60114 ———
14470komodo_mount_run23222 60085–60114 ———
14471komodo_mount_turn_left23223 60085–60114 ———
14472komodo_mount_turn_right23224 60085–60114 ———
14473komodo_mount_walk23225 60085–60114 ———
16399komodo_npc_glide28375 60085–60114 ———
11871korsha_lift_blast17430 60085–60114 ———
29703krassnok_pointing98467 60085–60114 ———
1411l1671 1–843 ———
9019l11773 60085–60114 ———
522land349 1–843 ———
9022land11776 60085–60114 ———
3443landing6782 1–843 ———
9024landing11778 60085–60114 ———
15737land_enter25841 60085–60114 ———
15738land_exit25842 60085–60114 ———
1856land_thud2184 1–843 ———
9023land_thud11777 60085–60114 ———
6658laugh191 1–843 laughs.laughs at %t.—
13354laugh20601 60085–60114 laughs.laughs at %t.—
16899launch30484 60085–60114 ———
16900launch230485 60085–60114 ———
16901launch330486 60085–60114 ———
16902launch430487 60085–60114 ———
16903launch530488 60085–60114 ———
1812launch_melee_projectile_trigger2129 1–843 ———
9025launch_melee_projectile_trigger11779 60085–60114 ———
29131lava_pygmy_attack01_f83940 60085–60114 ———
29132lava_pygmy_attack02_f83941 60085–60114 ———
29133lava_pygmy_attack03_f83942 60085–60114 ———
29134lava_pygmy_attack_f83943 60085–60114 ———
29135lava_pygmy_cast_f83944 60085–60114 ———
29136lava_pygmy_charge_up_f83945 60085–60114 ———
29137lava_pygmy_combat_enter_f83946 60085–60114 ———
29138lava_pygmy_combat_exit_f83947 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.