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
1543cast_enthralling_fetters_circling1849 1–843 ———
6990cast_enthralling_fetters_circling1849 60085–60114 ———
1544cast_enthralling_fetters_circling_ghostly1850 1–843 ———
6991cast_enthralling_fetters_circling_ghostly1850 60085–60114 ———
1511cast_es_arches_01_snd1814 1–843 ———
8276cast_es_arches_01_snd11019 60085–60114 ———
12465cast_exit18799 60085–60114 ———
1373cast_expanding_rings1630 1–843 ———
6953cast_expanding_rings1630 60085–60114 ———
2108cast_expand_ring_ws2624 1–843 ———
7141cast_expand_ring_ws2624 60085–60114 ———
2067cast_explosion_p52538 1–843 ———
7115cast_explosion_p52538 60085–60114 ———
28481cast_explosive_attack_snd66198 60085–60114 ———
15771cast_eye_blast26026 60085–60114 ———
14627cast_fae_flight_grant_fx23690 60085–60114 ———
17086cast_fang_fx31024 60085–60114 ———
3236cast_fast5634 1–843 ———
8277cast_fast11020 60085–60114 ———
14955cast_feral_fangs24559 60085–60114 ———
14968cast_feral_fangs_bite24585 60085–60114 ———
1191cast_fighter1432 1–843 ———
6875cast_fighter1432 60085–60114 ———
17289cast_fighter_aa_reassignment_fx31680 60085–60114 ———
29019cast_fireball_gather79624 60085–60114 ———
7653cast_firebreath_p2p9836 60085–60114 ———
15912cast_fire_blast26365 60085–60114 ———
28575cast_fire_blast_splash66371 60085–60114 ———
15919cast_fire_breath26393 60085–60114 ———
11853cast_fire_buff17375 60085–60114 ———
12173cast_fire_charge18089 60085–60114 ———
2091cast_fire_foot2595 1–843 ———
7132cast_fire_foot2595 60085–60114 ———
14690cast_fire_teleport23856 60085–60114 ———
1485cast_fire_trail1773 1–843 ———
6973cast_fire_trail1773 60085–60114 ———
2123cast_fire_weapon2652 1–843 ———
7151cast_fire_weapon2652 60085–60114 ———
1519cast_fire_whip_circling1823 1–843 ———
6988cast_fire_whip_circling1823 60085–60114 ———
17174cast_flame_emblem31288 60085–60114 ———
17175cast_flame_punchdown31289 60085–60114 ———
17176cast_flaming_sun_beams31290 60085–60114 ———
15924cast_flaming_wings26475 60085–60114 ———
1505cast_flasher1806 1–843 ———
6985cast_flasher1806 60085–60114 ———
12335cast_flash_jump_attack18479 60085–60114 ———
11857cast_flash_rune_buff17385 60085–60114 ———
14920cast_flurry_claws24478 60085–60114 ———
14956cast_flurry_claws_attack24560 60085–60114 ———
28268cast_flying_fire_breath65525 60085–60114 ———
14043cast_foot_crush_stomp22076 60085–60114 ———
15734cast_foot_vine_stomp25833 60085–60114 ———
1342cast_forced_flasher_diff_noise1594 1–843 ———
6945cast_forced_flasher_diff_noise1594 60085–60114 ———
1374cast_forced_flasher_fadein_diff_noise1631 1–843 ———
6954cast_forced_flasher_fadein_diff_noise1631 60085–60114 ———
1343cast_forced_flasher_oceanseamless1595 1–843 ———
6946cast_forced_flasher_oceanseamless1595 60085–60114 ———
1344cast_forced_flasher_streaks1596 1–843 ———
6947cast_forced_flasher_streaks1596 60085–60114 ———
7733cast_forced_flasher_stream_scroll10128 60085–60114 ———
7734cast_forced_flasher_stream_scroll_blend10129 60085–60114 ———
1345cast_forced_flasher_tiledfoam1597 1–843 ———
6948cast_forced_flasher_tiledfoam1597 60085–60114 ———
1346cast_forced_flasher_tiledfoam21598 1–843 ———
6949cast_forced_flasher_tiledfoam21598 60085–60114 ———
1347cast_forced_flasher_tiledfoam31599 1–843 ———
6950cast_forced_flasher_tiledfoam31599 60085–60114 ———
1684cast_forced_flasher_tiledfoam3_scroll1994 1–843 ———
7050cast_forced_flasher_tiledfoam3_scroll1994 60085–60114 ———
1348cast_forced_flasher_tiledfoam41600 1–843 ———
6951cast_forced_flasher_tiledfoam41600 60085–60114 ———
1821cast_force_snd2138 1–843 ———
8278cast_force_snd11021 60085–60114 ———
29228cast_forward_arc_blast89402 60085–60114 ———
12275cast_forward_rune_wheel18377 60085–60114 ———
15744cast_frog_eat25874 60085–60114 ———
16879cast_frog_spit_fx30417 60085–60114 ———
28780cast_frostfell_iceblock0168420 60085–60114 ———
28781cast_frostfell_iceblock0268421 60085–60114 ———
28782cast_frostfell_iceblock0368422 60085–60114 ———
28783cast_frostfell_iceblock0468423 60085–60114 ———
28784cast_frostfell_iceblock0568424 60085–60114 ———
2294cast_frosty_hand_l2872 1–843 ———
7224cast_frosty_hand_l2872 60085–60114 ———
2295cast_frosty_hand_r2873 1–843 ———
7225cast_frosty_hand_r2873 60085–60114 ———
1853cast_fuliginous2178 1–843 ———
7089cast_fuliginous2178 60085–60114 ———
1322cast_fury1568 1–843 ———
6926cast_fury1568 60085–60114 ———
17153cast_fury_mythical_fx31233 60085–60114 ———
3441cast_fusion6776 1–843 ———
7586cast_fusion6776 60085–60114 ———
12424cast_gathering_charge_up18706 60085–60114 ———
15125cast_gather_corruption25042 60085–60114 ———
15669cast_gather_flowers25624 60085–60114 ———
14726cast_gather_fx23946 60085–60114 ———
7649cast_gaze_of_obedience9773 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.