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
19112kill_cast_new_qa_part143829 60085–60114 ———
4820kill_cast_new_qa_part234694 1–843 ———
19113kill_cast_new_qa_part243830 60085–60114 ———
4821kill_cast_new_qa_part334695 1–843 ———
19114kill_cast_new_qa_part343831 60085–60114 ———
24809kill_cast_nipik_spirits54775 60085–60114 ———
31088kill_cast_notes_building8481873 60085–60114 ———
5978kill_cast_notes_out_song36632 1–843 ———
18212kill_cast_notes_out_song36632 60085–60114 ———
26703kill_cast_noxious_breath59124 60085–60114 ———
22006kill_cast_no_target_blue_star48810 60085–60114 ———
3529kill_cast_nuke_mental32921 1–843 ———
17475kill_cast_nuke_mental32921 60085–60114 ———
26555kill_cast_obelisk_rock_summon58733 60085–60114 ———
26556kill_cast_obelisk_wisps_summon58734 60085–60114 ———
4190kill_cast_orbiting_rings33979 1–843 ———
17575kill_cast_orbiting_rings33979 60085–60114 ———
5030kill_cast_orbiting_rings234913 1–843 ———
17882kill_cast_orbiting_rings234913 60085–60114 ———
5814kill_cast_p2p_fire_0136119 1–843 ———
18105kill_cast_p2p_fire_0136119 60085–60114 ———
5815kill_cast_p2p_fire_0236120 1–843 ———
18106kill_cast_p2p_fire_0236120 60085–60114 ———
5803kill_cast_p2p_lightning_0136105 1–843 ———
18094kill_cast_p2p_lightning_0136105 60085–60114 ———
5804kill_cast_p2p_lightning_0236106 1–843 ———
18095kill_cast_p2p_lightning_0236106 60085–60114 ———
5098kill_cast_paladin35029 1–843 ———
17895kill_cast_paladin35029 60085–60114 ———
27953kill_cast_paladin_mythical_fx64008 60085–60114 ———
4362kill_cast_pdswipe_01_snd34169 1–843 ———
19115kill_cast_pdswipe_01_snd43832 60085–60114 ———
31060kill_cast_pet_rock_blast8480972 60085–60114 ———
3530kill_cast_pfx_dust_leaves_l32922 1–843 ———
17476kill_cast_pfx_dust_leaves_l32922 60085–60114 ———
3531kill_cast_pfx_dust_leaves_r32923 1–843 ———
17477kill_cast_pfx_dust_leaves_r32923 60085–60114 ———
3532kill_cast_pfx_glow_firepuff_l32926 1–843 ———
17478kill_cast_pfx_glow_firepuff_l32926 60085–60114 ———
3533kill_cast_pfx_glow_firepuff_r32927 1–843 ———
17479kill_cast_pfx_glow_firepuff_r32927 60085–60114 ———
3534kill_cast_pfx_glow_galv_l32928 1–843 ———
17480kill_cast_pfx_glow_galv_l32928 60085–60114 ———
3535kill_cast_pfx_glow_galv_r32929 1–843 ———
17481kill_cast_pfx_glow_galv_r32929 60085–60114 ———
5024kill_cast_pfx_glow_galv_ws_l34907 1–843 ———
17878kill_cast_pfx_glow_galv_ws_l34907 60085–60114 ———
5025kill_cast_pfx_glow_galv_ws_r34908 1–843 ———
17879kill_cast_pfx_glow_galv_ws_r34908 60085–60114 ———
3536kill_cast_pfx_glow_prism_l32930 1–843 ———
17482kill_cast_pfx_glow_prism_l32930 60085–60114 ———
3537kill_cast_pfx_glow_prism_r32931 1–843 ———
17483kill_cast_pfx_glow_prism_r32931 60085–60114 ———
4202kill_cast_pfx_glow_trail_l33994 1–843 ———
17578kill_cast_pfx_glow_trail_l33994 60085–60114 ———
4203kill_cast_pfx_glow_trail_r33995 1–843 ———
17579kill_cast_pfx_glow_trail_r33995 60085–60114 ———
3538kill_cast_pfx_l32934 1–843 ———
17484kill_cast_pfx_l32934 60085–60114 ———
19116kill_cast_pfx_magenuke_head43833 60085–60114 ———
3539kill_cast_pfx_magenuke_l32935 1–843 ———
17485kill_cast_pfx_magenuke_l32935 60085–60114 ———
3540kill_cast_pfx_magenuke_r32936 1–843 ———
17486kill_cast_pfx_magenuke_r32936 60085–60114 ———
21585kill_cast_pfx_notes_l47010 60085–60114 ———
21586kill_cast_pfx_notes_r47011 60085–60114 ———
6101kill_cast_pfx_orbiting_rings_l37136 1–843 ———
18255kill_cast_pfx_orbiting_rings_l37136 60085–60114 ———
6102kill_cast_pfx_orbiting_rings_r37137 1–843 ———
18256kill_cast_pfx_orbiting_rings_r37137 60085–60114 ———
3541kill_cast_pfx_r32937 1–843 ———
17487kill_cast_pfx_r32937 60085–60114 ———
4708kill_cast_pfx_trace_puffs_l34575 1–843 ———
17780kill_cast_pfx_trace_puffs_l34575 60085–60114 ———
4709kill_cast_pfx_trace_puffs_r34576 1–843 ———
17781kill_cast_pfx_trace_puffs_r34576 60085–60114 ———
18397kill_cast_pickpocket39743 60085–60114 ———
24131kill_cast_pick_axe_throw53323 60085–60114 ———
5933kill_cast_piercing_note36545 1–843 ———
18187kill_cast_piercing_note36545 60085–60114 ———
5083kill_cast_pillars35001 1–843 ———
19122kill_cast_pillars43839 60085–60114 ———
4363kill_cast_pillar_sound_0134170 1–843 ———
19117kill_cast_pillar_sound_0143834 60085–60114 ———
4364kill_cast_pillar_sound_0234171 1–843 ———
19118kill_cast_pillar_sound_0243835 60085–60114 ———
4365kill_cast_pillar_sound_0334172 1–843 ———
19119kill_cast_pillar_sound_0343836 60085–60114 ———
4366kill_cast_pillar_sound_0434173 1–843 ———
19120kill_cast_pillar_sound_0443837 60085–60114 ———
4367kill_cast_pillar_sound_0534174 1–843 ———
19121kill_cast_pillar_sound_0543838 60085–60114 ———
26685kill_cast_pillar_spin59081 60085–60114 ———
3542kill_cast_placeholder_l32940 1–843 ———
17488kill_cast_placeholder_l32940 60085–60114 ———
3543kill_cast_placeholder_r32941 1–843 ———
17489kill_cast_placeholder_r32941 60085–60114 ———
24413kill_cast_plague_spikes53890 60085–60114 ———
18386kill_cast_plane_shift39612 60085–60114 ———
23918kill_cast_poison_blast52798 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.