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
11073result_rock_hands15675 60085–60114 ———
29271result_rock_return_p2p92377 60085–60114 ———
3012result_rock_shock_wave4702 1–843 ———
7495result_rock_shock_wave4702 60085–60114 ———
3030result_rock_shock_wave_ice4735 1–843 ———
7500result_rock_shock_wave_ice4735 60085–60114 ———
3021result_rock_shock_wave_lava4719 1–843 ———
7497result_rock_shock_wave_lava4719 60085–60114 ———
2866result_rock_toss_p2p4194 1–843 ———
7454result_rock_toss_p2p4194 60085–60114 ———
12341result_root_magic18489 60085–60114 ———
13336result_rope_root20552 60085–60114 ———
12271result_rose_petals18364 60085–60114 ———
28706result_rum_barrel_hit67457 60085–60114 ———
28707result_rum_drips67458 60085–60114 ———
3065result_runes_blast4850 1–843 ———
7509result_runes_blast4850 60085–60114 ———
2661result_runes_falling3450 1–843 ———
7352result_runes_falling3450 60085–60114 ———
2656result_runes_gathering3442 1–843 ———
7347result_runes_gathering3442 60085–60114 ———
1313result_runes_rising1558 1–843 ———
6920result_runes_rising1558 60085–60114 ———
9375result_rune_awakened12130 60085–60114 ———
11980result_rune_ethernaughts17664 60085–60114 ———
29285result_rune_farseas92787 60085–60114 ———
29029result_rune_shissar79977 60085–60114 ———
1690result_sanction_of_merit2001 1–843 ———
7053result_sanction_of_merit2001 60085–60114 ———
29030result_sarnak_horns79978 60085–60114 ———
29613result_scale_attack96211 60085–60114 ———
1595result_scale_skin_forced_shader1902 1–843 ———
7020result_scale_skin_forced_shader1902 60085–60114 ———
1021result_scimitar_approaching1261 1–843 ———
6795result_scimitar_approaching1261 60085–60114 ———
1022result_scimitar_explode1262 1–843 ———
6796result_scimitar_explode1262 60085–60114 ———
3053result_scintillating_tapestry4810 1–843 ———
7507result_scintillating_tapestry4810 60085–60114 ———
2709result_scorpion_attacking3729 1–843 ———
7378result_scorpion_attacking3729 60085–60114 ———
13926result_seafoam_dissolve21810 60085–60114 ———
2951result_searing_sun4556 1–843 ———
7474result_searing_sun4556 60085–60114 ———
12544result_sea_dragon_buff_aoe18966 60085–60114 ———
28264result_seeking_arrows65515 60085–60114 ———
12896result_seeping_energy19707 60085–60114 ———
3072result_serpents_intent4913 1–843 ———
7514result_serpents_intent4913 60085–60114 ———
12343result_shackles_void18497 60085–60114 ———
7916result_shadowknight_flame_horns10560 60085–60114 ———
17448result_shadow_bind32629 60085–60114 ———
29589result_shadow_blob_orbit95924 60085–60114 ———
13317result_shadow_curse20483 60085–60114 ———
14731result_shadow_shatter23963 60085–60114 ———
14732result_shadow_sphere_p2p23964 60085–60114 ———
14737result_shadow_streaks23976 60085–60114 ———
2583result_shadow_summon3238 1–843 ———
7286result_shadow_summon3238 60085–60114 ———
3106result_shadow_summon_25135 1–843 ———
7526result_shadow_summon_25135 60085–60114 ———
3113result_shadow_summon_2_aoe5149 1–843 ———
7527result_shadow_summon_2_aoe5149 60085–60114 ———
29003result_shatter78789 60085–60114 ———
16991result_shell_note_charm30807 60085–60114 ———
2071result_shield2545 1–843 ———
7117result_shield2545 60085–60114 ———
2634result_shield_silver_floating3393 1–843 ———
7329result_shield_silver_floating3393 60085–60114 ———
29643result_shissar_portal_lightning_p2p96947 60085–60114 ———
1656result_shockwave_sparkles1964 1–843 ———
7042result_shockwave_sparkles1964 60085–60114 ———
2839result_shockwave_sparkles_aoe4073 1–843 ———
7436result_shockwave_sparkles_aoe4073 60085–60114 ———
10851result_shout14628 60085–60114 ———
2614result_shower_of_daggers3355 1–843 ———
11248result_shroud_of_clouds16137 60085–60114 ———
11232result_sickly_aura_aoe16101 60085–60114 ———
11082result_silence15705 60085–60114 ———
2098result_silver_glow2604 1–843 ———
7139result_silver_glow2604 60085–60114 ———
3073result_singing_sword4914 1–843 ———
7515result_singing_sword4914 60085–60114 ———
12900result_singing_wind19717 60085–60114 ———
2764result_skeleton_attacking3827 1–843 ———
7409result_skeleton_attacking3827 60085–60114 ———
2722result_skeleton_bowing3754 1–843 ———
7388result_skeleton_bowing3754 60085–60114 ———
2710result_skeleton_dancing3730 1–843 ———
7379result_skeleton_dancing3730 60085–60114 ———
2897result_skeleton_hand4357 1–843 ———
7460result_skeleton_hand4357 60085–60114 ———
29166result_skull_arrow_p2p84641 60085–60114 ———
11869result_skull_attack_p2p17422 60085–60114 ———
2606result_skull_blast3344 1–843 ———
7306result_skull_blast3344 60085–60114 ———
2576result_skull_breath_poison_damage3228 1–843 ———
7280result_skull_breath_poison_damage3228 60085–60114 ———
2607result_skull_buff_limbs3345 1–843 ———
7307result_skull_buff_limbs3345 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.