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
21556kill_ratonga_female_pike_charge_up46647 60085–60114 ———
21557kill_ratonga_female_pike_defensive_buff46648 60085–60114 ———
21558kill_ratonga_female_pike_offensive_buff46649 60085–60114 ———
26995kill_ratonga_forced_shader_bertox60276 60085–60114 ———
6475kill_rays38811 1–843 ———
20121kill_rays44850 60085–60114 ———
5994kill_rb_p2pcast_snd36695 1–843 ———
20122kill_rb_p2pcast_snd44851 60085–60114 ———
5995kill_rb_p2pstream_snd36696 1–843 ———
20123kill_rb_p2pstream_snd44852 60085–60114 ———
5996kill_rct_endblast_sound36697 1–843 ———
20126kill_rct_endblast_sound44855 60085–60114 ———
6014kill_rct_endtones_sound36727 1–843 ———
20127kill_rct_endtones_sound44856 60085–60114 ———
4662kill_rc_leaves_01_snd34489 1–843 ———
20124kill_rc_leaves_01_snd44853 60085–60114 ———
4663kill_rc_roots_grow_01_snd34490 1–843 ———
20125kill_rc_roots_grow_01_snd44854 60085–60114 ———
26839kill_read_book59744 60085–60114 ———
4382kill_rebirth_sound_0134189 1–843 ———
20128kill_rebirth_sound_0144857 60085–60114 ———
27595kill_recline_side62665 60085–60114 ———
27114kill_red_crystal_dead60843 60085–60114 ———
27115kill_red_crystal_on60844 60085–60114 ———
6627kill_red_nose39468 1–843 ———
20129kill_red_nose44858 60085–60114 ———
30866kill_red_trail_fx8469831 60085–60114 ———
25603kill_reforge_acid_tier0156963 60085–60114 ———
25604kill_reforge_acid_tier0256964 60085–60114 ———
25605kill_reforge_acid_tier0356965 60085–60114 ———
25606kill_reforge_acid_tier0456966 60085–60114 ———
25607kill_reforge_acid_tier0556967 60085–60114 ———
25597kill_reforge_blood_tier0156944 60085–60114 ———
25598kill_reforge_blood_tier0256945 60085–60114 ———
25599kill_reforge_blood_tier0356946 60085–60114 ———
25600kill_reforge_blood_tier0456947 60085–60114 ———
25601kill_reforge_blood_tier0556948 60085–60114 ———
25613kill_reforge_electricity_tier0156980 60085–60114 ———
25614kill_reforge_electricity_tier0256981 60085–60114 ———
25615kill_reforge_electricity_tier0356982 60085–60114 ———
25616kill_reforge_electricity_tier0456983 60085–60114 ———
25617kill_reforge_electricity_tier0556984 60085–60114 ———
25587kill_reforge_fire_tier0156920 60085–60114 ———
25588kill_reforge_fire_tier0256921 60085–60114 ———
25589kill_reforge_fire_tier0356922 60085–60114 ———
25590kill_reforge_fire_tier0456923 60085–60114 ———
25591kill_reforge_fire_tier0556924 60085–60114 ———
25592kill_reforge_ice_tier0156932 60085–60114 ———
25593kill_reforge_ice_tier0256933 60085–60114 ———
25594kill_reforge_ice_tier0356934 60085–60114 ———
25595kill_reforge_ice_tier0456935 60085–60114 ———
25596kill_reforge_ice_tier0556936 60085–60114 ———
25639kill_reforge_illusion_tier0157020 60085–60114 ———
25640kill_reforge_illusion_tier0257021 60085–60114 ———
25641kill_reforge_illusion_tier0357022 60085–60114 ———
25642kill_reforge_illusion_tier0457023 60085–60114 ———
25643kill_reforge_illusion_tier0557024 60085–60114 ———
25582kill_reforge_nature_tier0156908 60085–60114 ———
25583kill_reforge_nature_tier0256909 60085–60114 ———
25584kill_reforge_nature_tier0356910 60085–60114 ———
25585kill_reforge_nature_tier0456911 60085–60114 ———
25586kill_reforge_nature_tier0556912 60085–60114 ———
25633kill_reforge_pestilence_tier0157007 60085–60114 ———
25634kill_reforge_pestilence_tier0257008 60085–60114 ———
25635kill_reforge_pestilence_tier0357009 60085–60114 ———
25636kill_reforge_pestilence_tier0457010 60085–60114 ———
25637kill_reforge_pestilence_tier0557011 60085–60114 ———
25644kill_reforge_radiance_tier0157025 60085–60114 ———
25645kill_reforge_radiance_tier0257026 60085–60114 ———
25646kill_reforge_radiance_tier0357027 60085–60114 ———
25647kill_reforge_radiance_tier0457028 60085–60114 ———
25648kill_reforge_radiance_tier0557029 60085–60114 ———
25608kill_reforge_runic_tier0156968 60085–60114 ———
25609kill_reforge_runic_tier0256969 60085–60114 ———
25610kill_reforge_runic_tier0356970 60085–60114 ———
25611kill_reforge_runic_tier0456971 60085–60114 ———
25612kill_reforge_runic_tier0556972 60085–60114 ———
30617kill_reindeer_mount_fly_whoosh8459087 60085–60114 ———
30618kill_reindeer_mount_idle018459088 60085–60114 ———
30619kill_reindeer_mount_jump8459089 60085–60114 ———
30620kill_reindeer_mount_jump_substitute8459090 60085–60114 ———
30621kill_reindeer_mount_run8459091 60085–60114 ———
30622kill_reindeer_mount_snort8459092 60085–60114 ———
30623kill_reindeer_mount_snort_walk8459093 60085–60114 ———
30624kill_reindeer_mount_trot8459094 60085–60114 ———
30625kill_reindeer_mount_walk8459095 60085–60114 ———
24602kill_removemask_enter54342 60085–60114 ———
24603kill_removemask_exit54343 60085–60114 ———
24604kill_removemask_idle54344 60085–60114 ———
4383kill_resilt_end_sound34190 1–843 ———
20130kill_resilt_end_sound44859 60085–60114 ———
4616kill_rest34442 1–843 ———
20131kill_rest44860 60085–60114 ———
25737kill_result_aa_claw_marks57310 60085–60114 ———
24995kill_result_aa_cold_mesh_grow55312 60085–60114 ———
24996kill_result_aa_crush_blast55313 60085–60114 ———
31507kill_result_aa_dagger_storm_p2p8487502 60085–60114 ———
30056kill_result_aa_essence_channel_p2p8454120 60085–60114 ———
25096kill_result_aa_fire_comet55540 60085–60114 ———
24997kill_result_aa_focus_spark55314 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.