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
18299kill_result_morph_to_elf37556 60085–60114 ———
6150kill_result_morph_to_pet37313 1–843 ———
18266kill_result_morph_to_pet37313 60085–60114 ———
5459kill_result_motion_circles35582 1–843 ———
18013kill_result_motion_circles35582 60085–60114 ———
5444kill_result_motion_lines35561 1–843 ———
17999kill_result_motion_lines35561 60085–60114 ———
5449kill_result_motion_lines_flasher35569 1–843 ———
18004kill_result_motion_lines_flasher35569 60085–60114 ———
6058kill_result_motion_lines_flasher_aoe36899 1–843 ———
18237kill_result_motion_lines_flasher_aoe36899 60085–60114 ———
5450kill_result_motion_lines_sub35570 1–843 ———
18005kill_result_motion_lines_sub35570 60085–60114 ———
6059kill_result_motion_lines_sub_aoe36900 1–843 ———
18238kill_result_motion_lines_sub_aoe36900 60085–60114 ———
5087kill_result_mouth_in35016 1–843 ———
17889kill_result_mouth_in35016 60085–60114 ———
25111kill_result_mug_hit55611 60085–60114 ———
6300kill_result_mushrooms_growing37838 1–843 ———
18319kill_result_mushrooms_growing37838 60085–60114 ———
27596kill_result_music_barrier_beam_p2p62666 60085–60114 ———
24925kill_result_musky_object55051 60085–60114 ———
24924kill_result_musk_spray_p2p55050 60085–60114 ———
6642kill_result_mysticism39539 1–843 ———
18379kill_result_mysticism39539 60085–60114 ———
18722kill_result_mystic_cloudy_feet43353 60085–60114 ———
22501kill_result_napalm49681 60085–60114 ———
22546kill_result_napalm_aoe49825 60085–60114 ———
5849kill_result_natures_growth36191 1–843 ———
18131kill_result_natures_growth36191 60085–60114 ———
31410kill_result_nature_heal_p2p8485034 60085–60114 ———
5777kill_result_nature_res35994 1–843 ———
18072kill_result_nature_res35994 60085–60114 ———
22646kill_result_nature_storm50140 60085–60114 ———
30172kill_result_nayad_blood_essence_p2p8454470 60085–60114 ———
18705kill_result_necromancer_hand_skulls43310 60085–60114 ———
31036kill_result_necro_lightning_beam_p2p8479192 60085–60114 ———
22820kill_result_neg_flux50565 60085–60114 ———
22821kill_result_neg_flux_storm50566 60085–60114 ———
22455kill_result_netted49589 60085–60114 ———
30425kill_result_nexus_crystal_reform_p2p8455432 60085–60114 ———
30150kill_result_nexus_powerup8454425 60085–60114 ———
30151kill_result_nexus_switch_buff_wisp_p2p8454426 60085–60114 ———
30152kill_result_nexus_switch_lendiniara_p2p8454427 60085–60114 ———
30694kill_result_nightmare_explode8462614 60085–60114 ———
5940kill_result_notes_gathering36556 1–843 ———
18192kill_result_notes_gathering36556 60085–60114 ———
31093kill_result_notes_interrupted8481887 60085–60114 ———
5975kill_result_notes_spiral_chains36627 1–843 ———
18209kill_result_notes_spiral_chains36627 60085–60114 ———
22619kill_result_notes_spiral_frenzy50052 60085–60114 ———
5941kill_result_notes_spiral_off36557 1–843 ———
18193kill_result_notes_spiral_off36557 60085–60114 ———
5980kill_result_notes_tube_wavey36638 1–843 ———
18214kill_result_notes_tube_wavey36638 60085–60114 ———
5460kill_result_note_blast35583 1–843 ———
18014kill_result_note_blast35583 60085–60114 ———
5445kill_result_note_circle35562 1–843 ———
18000kill_result_note_circle35562 60085–60114 ———
5939kill_result_note_swarm36555 1–843 ———
18191kill_result_note_swarm36555 60085–60114 ———
5757kill_result_noxious_oozing_shield_buff35965 1–843 ———
18065kill_result_noxious_oozing_shield_buff35965 60085–60114 ———
23220kill_result_nuke_blast51480 60085–60114 ———
25538kill_result_object_sparkles_black56768 60085–60114 ———
22666kill_result_object_sparkles_blue50199 60085–60114 ———
25539kill_result_object_sparkles_gold56769 60085–60114 ———
22667kill_result_object_sparkles_green50200 60085–60114 ———
25540kill_result_object_sparkles_pink56770 60085–60114 ———
25541kill_result_object_sparkles_purple56771 60085–60114 ———
22668kill_result_object_sparkles_red50201 60085–60114 ———
22669kill_result_object_sparkles_white50202 60085–60114 ———
24915kill_result_object_sparkles_white_down55034 60085–60114 ———
23317kill_result_octopus_cannon_p2p51684 60085–60114 ———
23318kill_result_octopus_splat_grab51685 60085–60114 ———
4803kill_result_offering_of_vitae34677 1–843 ———
17819kill_result_offering_of_vitae34677 60085–60114 ———
4841kill_result_offering_of_vitae_234715 1–843 ———
17831kill_result_offering_of_vitae_234715 60085–60114 ———
30868kill_result_orange_fire_bones8469833 60085–60114 ———
22498kill_result_orange_glow49672 60085–60114 ———
5082kill_result_ot_lifetap34997 1–843 ———
17888kill_result_ot_lifetap34997 60085–60114 ———
28234kill_result_oxygen_tunnel65264 60085–60114 ———
21697kill_result_p2p_lightning_bolts47777 60085–60114 ———
18671kill_result_paladin_shoulder_streamers43144 60085–60114 ———
21913kill_result_pants_off48562 60085–60114 ———
27559kill_result_paper_scatter62528 60085–60114 ———
24509kill_result_paper_toss_p2p54164 60085–60114 ———
6547kill_result_pestilence39178 1–843 ———
18359kill_result_pestilence39178 60085–60114 ———
5785kill_result_petrify_stun_control36005 1–843 ———
18079kill_result_petrify_stun_control36005 60085–60114 ———
6140kill_result_pet_victory37288 1–843 ———
18265kill_result_pet_victory37288 60085–60114 ———
4275kill_result_phoenix_descending34082 1–843 ———
17618kill_result_phoenix_descending34082 60085–60114 ———
4262kill_result_phoenix_rising34068 1–843 ———
17612kill_result_phoenix_rising34068 60085–60114 ———
18400kill_result_pickpocket39779 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.