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
8843footstep_leather_mud11596 60085–60114 ———
1269footstep_leather_sand1510 1–843 ———
8844footstep_leather_sand11597 60085–60114 ———
1270footstep_leather_snow1511 1–843 ———
8845footstep_leather_snow11598 60085–60114 ———
1489footstep_leather_stone1788 1–843 ———
8846footstep_leather_stone11599 60085–60114 ———
1271footstep_leather_water1512 1–843 ———
8847footstep_leather_water11600 60085–60114 ———
1272footstep_leather_wood1513 1–843 ———
8848footstep_leather_wood11601 60085–60114 ———
1490footstep_metal_carpet1789 1–843 ———
8849footstep_metal_carpet11602 60085–60114 ———
1273footstep_metal_dirt1514 1–843 ———
8850footstep_metal_dirt11603 60085–60114 ———
1274footstep_metal_grass1515 1–843 ———
8851footstep_metal_grass11604 60085–60114 ———
1491footstep_metal_gravel1790 1–843 ———
8852footstep_metal_gravel11605 60085–60114 ———
1275footstep_metal_ice1516 1–843 ———
8853footstep_metal_ice11606 60085–60114 ———
2218footstep_metal_metal2766 1–843 ———
8854footstep_metal_metal11607 60085–60114 ———
1492footstep_metal_mud1791 1–843 ———
8855footstep_metal_mud11608 60085–60114 ———
1276footstep_metal_sand1517 1–843 ———
8856footstep_metal_sand11609 60085–60114 ———
1277footstep_metal_snow1518 1–843 ———
8857footstep_metal_snow11610 60085–60114 ———
1493footstep_metal_stone1792 1–843 ———
8858footstep_metal_stone11611 60085–60114 ———
1278footstep_metal_water1519 1–843 ———
8859footstep_metal_water11612 60085–60114 ———
1279footstep_metal_wood1520 1–843 ———
8860footstep_metal_wood11613 60085–60114 ———
12093footstep_sound17918 60085–60114 ———
1333footstep_trigger1579 1–843 ———
8861footstep_trigger11614 60085–60114 ———
8823footste_trigger11576 60085–60114 ———
497foot_dust_left300 1–843 ———
8820foot_dust_left11573 60085–60114 ———
498foot_dust_right301 1–843 ———
8821foot_dust_right11574 60085–60114 ———
2908foot_shake4452 1–843 ———
8822foot_shake11575 60085–60114 ———
28362foo_dog_mount_backup65845 60085–60114 ———
28363foo_dog_mount_fall65846 60085–60114 ———
28364foo_dog_mount_idle65847 60085–60114 ———
28365foo_dog_mount_idle0165848 60085–60114 ———
28366foo_dog_mount_jump65849 60085–60114 ———
28367foo_dog_mount_jump_substitute65850 60085–60114 ———
28368foo_dog_mount_land65851 60085–60114 ———
28369foo_dog_mount_long_fall65852 60085–60114 ———
28370foo_dog_mount_run65853 60085–60114 ———
28371foo_dog_mount_turn_left65854 60085–60114 ———
28372foo_dog_mount_turn_right65855 60085–60114 ———
28373foo_dog_mount_walk65856 60085–60114 ———
2250forestry_chopping2807 1–843 ———
8863forestry_chopping11616 60085–60114 ———
2251forestry_success2808 1–843 ———
7213forestry_success2808 60085–60114 ———
3122forest_flare5213 1–843 ———
8862forest_flare11615 60085–60114 ———
2004four_rings2433 1–843 ———
8864four_rings11617 60085–60114 ———
2005four_rings_fail2434 1–843 ———
8865four_rings_fail11618 60085–60114 ———
16750four_to_five_enter29732 60085–60114 ———
16222freeblood_bat_swirls_mesh27622 60085–60114 ———
29365freeblood_glider_backup94104 60085–60114 ———
29366freeblood_glider_fall94105 60085–60114 ———
29367freeblood_glider_glide94106 60085–60114 ———
29368freeblood_glider_glide_left94107 60085–60114 ———
29369freeblood_glider_glide_right94108 60085–60114 ———
29370freeblood_glider_idle94109 60085–60114 ———
29371freeblood_glider_jump94110 60085–60114 ———
29372freeblood_glider_land94111 60085–60114 ———
29373freeblood_glider_long_fall94112 60085–60114 ———
29374freeblood_glider_run94113 60085–60114 ———
29375freeblood_glider_turn_left94114 60085–60114 ———
29376freeblood_glider_turn_right94115 60085–60114 ———
29377freeblood_glider_walk94116 60085–60114 ———
29378freeblood_leaper_backup94117 60085–60114 ———
29379freeblood_leaper_fall94118 60085–60114 ———
29380freeblood_leaper_fly_backup94119 60085–60114 ———
29381freeblood_leaper_fly_climb94120 60085–60114 ———
29382freeblood_leaper_fly_dive94121 60085–60114 ———
29383freeblood_leaper_fly_down94122 60085–60114 ———
29384freeblood_leaper_fly_glide94123 60085–60114 ———
29385freeblood_leaper_fly_glide_left94124 60085–60114 ———
29386freeblood_leaper_fly_glide_right94125 60085–60114 ———
29387freeblood_leaper_fly_idle94126 60085–60114 ———
29388freeblood_leaper_fly_run94127 60085–60114 ———
29389freeblood_leaper_fly_strafe_left94128 60085–60114 ———
29390freeblood_leaper_fly_strafe_right94129 60085–60114 ———
29391freeblood_leaper_fly_turn_left94130 60085–60114 ———
29392freeblood_leaper_fly_turn_right94131 60085–60114 ———
29393freeblood_leaper_fly_up94132 60085–60114 ———
29394freeblood_leaper_fly_walk94133 60085–60114 ———
29395freeblood_leaper_idle94134 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.