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
29608cast_scale_shake_off96200 60085–60114 ———
1019cast_scimitar_toss1258 1–843 ———
6793cast_scimitar_toss1258 60085–60114 ———
1198cast_scout1439 1–843 ———
6877cast_scout1439 60085–60114 ———
17292cast_scout_aa_reassignment_fx31685 60085–60114 ———
13823cast_scream21644 60085–60114 ———
29047cast_scythe_shadow80620 60085–60114 ———
29048cast_scythe_shadow_sarnak80621 60085–60114 ———
12530cast_sea_dragon_breath18938 60085–60114 ———
12531cast_sea_dragon_inhale18939 60085–60114 ———
12532cast_sea_dragon_powerup18940 60085–60114 ———
15117cast_seed_spew25028 60085–60114 ———
1897cast_shadowknight2263 1–843 ———
7102cast_shadowknight2263 60085–60114 ———
17162cast_shadowknight_mythical_fx31244 60085–60114 ———
15780cast_shadow_appear26085 60085–60114 ———
16391cast_shadow_breath28354 60085–60114 ———
13806cast_shadow_gather21569 60085–60114 ———
14016cast_shadow_vortex22010 60085–60114 ———
1326cast_shaman1572 1–843 ———
6930cast_shaman1572 60085–60114 ———
11181cast_shards15966 60085–60114 ———
11182cast_shards_blast15967 60085–60114 ———
11191cast_shards_fusion15982 60085–60114 ———
11192cast_shards_merging15983 60085–60114 ———
11188cast_shard_cloud_blast15979 60085–60114 ———
11189cast_shard_lightning15980 60085–60114 ———
11190cast_shard_pulse15981 60085–60114 ———
16989cast_shell_note_gather30789 60085–60114 ———
11818cast_shield_buff17253 60085–60114 ———
11836cast_shield_deflect17318 60085–60114 ———
1468cast_shield_grow1751 1–843 ———
8342cast_shield_grow11087 60085–60114 ———
10853cast_shield_grow_blend14684 60085–60114 ———
14689cast_shield_slam_blast23853 60085–60114 ———
14687cast_shooting_axes23847 60085–60114 ———
14668cast_shoot_fire_arrows23817 60085–60114 ———
8343cast_shortbreath11088 60085–60114 ———
11830cast_shout_aoe17294 60085–60114 ———
29035cast_skull_crossbones_icon80210 60085–60114 ———
11078cast_skull_grow15699 60085–60114 ———
16231cast_skull_head_blast27672 60085–60114 ———
29168cast_skull_rain_area84833 60085–60114 ———
14688cast_slashing_axes23848 60085–60114 ———
14915cast_slashing_claws24439 60085–60114 ———
28423cast_slash_charge_up66044 60085–60114 ———
14669cast_slash_trail23818 60085–60114 ———
1240cast_snake_idling1481 1–843 ———
6890cast_snake_idling1481 60085–60114 ———
1426cast_snake_shrinking1686 1–843 ———
6965cast_snake_shrinking1686 60085–60114 ———
1170cast_sneak_sound1411 1–843 ———
8344cast_sneak_sound11089 60085–60114 ———
15920cast_sonic_blast26396 60085–60114 ———
11079cast_sonic_ring15700 60085–60114 ———
11080cast_sonic_ring_vertical15701 60085–60114 ———
17021cast_sonic_shout30894 60085–60114 ———
2147cast_soothe_burst2686 1–843 ———
7159cast_soothe_burst2686 60085–60114 ———
1327cast_sorcerer1573 1–843 ———
6931cast_sorcerer1573 60085–60114 ———
14670cast_soul_attack_blast23819 60085–60114 ———
29195cast_soul_hunt_aoe86995 60085–60114 ———
29196cast_soul_hunt_ranged_aoe86996 60085–60114 ———
7647cast_soul_paralysis9757 60085–60114 ———
2659cast_sparkle23448 1–843 ———
7350cast_sparkle23448 60085–60114 ———
1864cast_sparkles_in2198 1–843 ———
7091cast_sparkles_in2198 60085–60114 ———
893cast_sparklewave_01_snd1084 1–843 ———
8346cast_sparklewave_01_snd11091 60085–60114 ———
894cast_sparklewave_02_snd1085 1–843 ———
8347cast_sparklewave_02_snd11092 60085–60114 ———
895cast_sparklewave_03_snd1086 1–843 ———
8348cast_sparklewave_03_snd11093 60085–60114 ———
896cast_sparklewave_04_snd1087 1–843 ———
8349cast_sparklewave_04_snd11094 60085–60114 ———
897cast_sparklewave_05_snd1088 1–843 ———
8350cast_sparklewave_05_snd11095 60085–60114 ———
2149cast_sparkle_trail_fire_head2688 1–843 ———
7161cast_sparkle_trail_fire_head2688 60085–60114 ———
2208cast_sparkle_trail_fire_lefthand2755 1–843 ———
7182cast_sparkle_trail_fire_lefthand2755 60085–60114 ———
2509cast_sparkle_trail_fire_lhand_neg3112 1–843 ———
7257cast_sparkle_trail_fire_lhand_neg3112 60085–60114 ———
2510cast_sparkle_trail_fire_rhand_neg3113 1–843 ———
7258cast_sparkle_trail_fire_rhand_neg3113 60085–60114 ———
2209cast_sparkle_trail_fire_righthand2756 1–843 ———
7183cast_sparkle_trail_fire_righthand2756 60085–60114 ———
2210cast_sparkle_trail_fire_righttolefthand2757 1–843 ———
7184cast_sparkle_trail_fire_righttolefthand2757 60085–60114 ———
12050cast_sparkling_dust_aoe17847 60085–60114 ———
440cast_sparktrail_spiral185 1–843 ———
6706cast_sparktrail_spiral185 60085–60114 ———
8345cast_spark_burst_righthand11090 60085–60114 ———
2371cast_spark_burst_weaponrootright2966 1–843 ———
7246cast_spark_burst_weaponrootright2966 60085–60114 ———
2206cast_spark_cage2753 1–843 ———
7180cast_spark_cage2753 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.