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
9360result_fog_poison_low12115 60085–60114 ———
3333result_fog_poison_low_small6357 1–843 ———
9361result_fog_poison_low_small12116 60085–60114 ———
3323result_fog_poison_small6284 1–843 ———
9362result_fog_poison_small12117 60085–60114 ———
3334result_fog_small6358 1–843 ———
9363result_fog_small12118 60085–60114 ———
28602result_food_fight_hit66624 60085–60114 ———
15109result_forced_shader_bugs24974 60085–60114 ———
16164result_forced_shader_burnt27373 60085–60114 ———
3288result_forced_shader_dark_dragon6109 1–843 ———
9364result_forced_shader_dark_dragon12119 60085–60114 ———
2685result_forced_shader_electric3632 1–843 ———
7362result_forced_shader_electric3632 60085–60114 ———
3257result_forced_shader_electric_dragon6009 1–843 ———
9365result_forced_shader_electric_dragon12120 60085–60114 ———
16630result_forced_shader_ethernere29292 60085–60114 ———
3277result_forced_shader_fire_dragon6055 1–843 ———
9366result_forced_shader_fire_dragon12121 60085–60114 ———
11822result_forced_shader_glass17275 60085–60114 ———
11820result_forced_shader_hologram17267 60085–60114 ———
3282result_forced_shader_ice_dragon6067 1–843 ———
9367result_forced_shader_ice_dragon12122 60085–60114 ———
14017result_forced_shader_lichen22014 60085–60114 ———
2858result_forced_shader_rock4141 1–843 ———
7446result_forced_shader_rock4141 60085–60114 ———
12336result_forced_shader_rock_blue18484 60085–60114 ———
12337result_forced_shader_rock_green18485 60085–60114 ———
12338result_forced_shader_rock_purple18486 60085–60114 ———
13183result_forced_shader_rock_red20159 60085–60114 ———
12339result_forced_shader_rock_yellow18487 60085–60114 ———
12456result_forced_shader_shadow18781 60085–60114 ———
12217result_forced_shader_soot18224 60085–60114 ———
13843result_forced_shader_web21700 60085–60114 ———
13175result_forced_shader_white20126 60085–60114 ———
28902result_forsee_death74345 60085–60114 ———
14875result_fprt_ghosts_attack_p2p24288 60085–60114 ———
2531result_fraxflame_p2p3143 1–843 ———
7263result_fraxflame_p2p3143 60085–60114 ———
11482result_frisbee_p2p16591 60085–60114 ———
2994result_froglok_bauble4649 1–843 ———
9368result_froglok_bauble12123 60085–60114 ———
2977result_froglok_buff4625 1–843 ———
7492result_froglok_buff4625 60085–60114 ———
10572result_fruitcake_explosion13469 60085–60114 ———
3096result_fungusman_breath_attack_p2p5069 1–843 ———
7524result_fungusman_breath_attack_p2p5069 60085–60114 ———
11083result_gangrene15712 60085–60114 ———
570result_gather_mana1495 1–843 ———
6733result_gather_mana1495 60085–60114 ———
11470result_gavel_drop16554 60085–60114 ———
11238result_gavel_pound16113 60085–60114 ———
16443result_gazer_flame_eye_beam_p2p28604 60085–60114 ———
571result_ghost496 1–843 ———
6734result_ghost496 60085–60114 ———
12632result_ghostly_possession_p2p19253 60085–60114 ———
11312result_ghosts16234 60085–60114 ———
3252result_ghost_fadeout5983 1–843 ———
7545result_ghost_fadeout5983 60085–60114 ———
1557result_ghost_fish_circling1864 1–843 ———
7001result_ghost_fish_circling1864 60085–60114 ———
1497result_ghost_forced_shader1796 1–843 ———
6977result_ghost_forced_shader1796 60085–60114 ———
3309result_ghost_forced_shader_46193 1–843 ———
7557result_ghost_forced_shader_46193 60085–60114 ———
29263result_ghost_forced_shader_4_gold91784 60085–60114 ———
11200result_ghost_forced_shader_4_green16011 60085–60114 ———
11201result_ghost_forced_shader_4_red16012 60085–60114 ———
29099result_ghost_shader_blue_aura82394 60085–60114 ———
11220result_ghost_shadow16059 60085–60114 ———
1183result_ghost_shield1424 1–843 ———
6872result_ghost_shield1424 60085–60114 ———
10842result_ghost_shield_p2p14561 60085–60114 ———
2267result_ghost_spider2837 1–843 ———
7221result_ghost_spider2837 60085–60114 ———
1638result_ghost_sword_breaking1946 1–843 ———
7036result_ghost_sword_breaking1946 60085–60114 ———
12457result_ghost_trap18782 60085–60114 ———
7613result_ghost_undo7747 60085–60114 ———
29182result_giant_bone_impale_p2p85901 60085–60114 ———
29224result_giant_fireball_p2p89011 60085–60114 ———
14175result_giant_icicle_drop22464 60085–60114 ———
29056result_giant_magic_blast_shockwave80803 60085–60114 ———
14176result_giant_spear_p2p22465 60085–60114 ———
1572result_glacial_wall1879 1–843 ———
7014result_glacial_wall1879 60085–60114 ———
1573result_glacial_wall_sparkles1880 1–843 ———
7015result_glacial_wall_sparkles1880 60085–60114 ———
11246result_glade16135 60085–60114 ———
16330result_glass_blast28096 60085–60114 ———
7668result_glass_shattering9960 60085–60114 ———
1203result_glint21444 1–843 ———
6879result_glint21444 60085–60114 ———
1472result_glint2_sh1755 1–843 ———
9369result_glint2_sh12124 60085–60114 ———
12353result_gloop_root18518 60085–60114 ———
2547result_glow_weapon_red3181 1–843 ———
7265result_glow_weapon_red3181 60085–60114 ———
10849result_glow_weapon_tan14626 60085–60114 ———
12051result_gnollslayer17854 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.