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
19523kill_end_snarl_sound44250 60085–60114 ———
23664kill_energy_blobs_kick_blast52427 60085–60114 ———
31033kill_energy_discharge_fx8478802 60085–60114 ———
30286kill_energy_emitter_snd8454820 60085–60114 ———
22767kill_energy_flow_sound50424 60085–60114 ———
30287kill_energy_hit_impact_snd8454821 60085–60114 ———
30288kill_energy_hit_whoosh_snd8454822 60085–60114 ———
31830kill_engine8498111 60085–60114 ———
19525kill_enter44252 60085–60114 ———
31658kill_epic_prayer_enter8493793 60085–60114 ———
31659kill_epic_prayer_exit8493794 60085–60114 ———
31660kill_epic_prayer_idle8493795 60085–60114 ———
22697kill_eq2_music150254 60085–60114 ———
22698kill_eq2_music250255 60085–60114 ———
27014kill_erudite_asteroid_belt60389 60085–60114 ———
26987kill_erudite_book_hover_runes60266 60085–60114 ———
21515kill_erudite_female_2h_sword_wild_swing46585 60085–60114 ———
21531kill_erudite_female_pike_charge_up46621 60085–60114 ———
21532kill_erudite_female_pike_defensive_buff46622 60085–60114 ———
21533kill_erudite_female_pike_offensive_buff46623 60085–60114 ———
31676kill_erudite_powerstaff_enter8494972 60085–60114 ———
31677kill_erudite_powerstaff_idle8494973 60085–60114 ———
5958kill_es_flutecast_sound36585 1–843 ———
19526kill_es_flutecast_sound44253 60085–60114 ———
5959kill_es_fluteresult_sound36586 1–843 ———
19527kill_es_fluteresult_sound44254 60085–60114 ———
27912kill_ethereal_construct_attack63961 60085–60114 ———
27913kill_ethereal_construct_attack_0163962 60085–60114 ———
27914kill_ethereal_construct_attack_0263963 60085–60114 ———
27915kill_ethereal_construct_attack_0363964 60085–60114 ———
27916kill_ethereal_construct_death_enter63965 60085–60114 ———
27917kill_ethereal_construct_deffensive_buff63966 60085–60114 ———
27918kill_ethereal_construct_fist_catch63967 60085–60114 ———
27919kill_ethereal_construct_footsteps63968 60085–60114 ———
27920kill_ethereal_construct_idle_0163969 60085–60114 ———
27921kill_ethereal_construct_idle_0263970 60085–60114 ———
27911kill_ethereal_construct_idle_base63960 60085–60114 ———
27922kill_ethereal_construct_offensive_buff63971 60085–60114 ———
27923kill_ethereal_construct_ouch63972 60085–60114 ———
27924kill_ethereal_construct_ouch_backhand63973 60085–60114 ———
27925kill_ethereal_construct_ouch_down63974 60085–60114 ———
27926kill_ethereal_construct_ouch_knock_back63975 60085–60114 ———
27927kill_ethereal_construct_ouch_knock_back_get_up63976 60085–60114 ———
27928kill_ethereal_construct_sit_enter63977 60085–60114 ———
27929kill_ethereal_construct_sit_exit63978 60085–60114 ———
27930kill_ethereal_construct_weapon_attack_0163979 60085–60114 ———
27931kill_ethereal_construct_weapon_attack_0363980 60085–60114 ———
27932kill_ethereal_construct_weapon_combat_enter63981 60085–60114 ———
27933kill_ethereal_construct_weapon_combat_exit63982 60085–60114 ———
27934kill_ethereal_construct_weapon_death_enter63983 60085–60114 ———
30249kill_ethereal_construct_weapon_superbuff8454709 60085–60114 ———
27935kill_ethereal_construct_weapon_super_buff63984 60085–60114 ———
27936kill_ethereal_construct_wild_swing63985 60085–60114 ———
24504kill_ettin_drink54140 60085–60114 ———
26878kill_evil_bird_backup59889 60085–60114 ———
26879kill_evil_bird_fall59890 60085–60114 ———
26880kill_evil_bird_fly_backup59891 60085–60114 ———
26881kill_evil_bird_fly_climb59892 60085–60114 ———
26882kill_evil_bird_fly_dive59893 60085–60114 ———
26883kill_evil_bird_fly_down59894 60085–60114 ———
26884kill_evil_bird_fly_glide59895 60085–60114 ———
26885kill_evil_bird_fly_glide_left59896 60085–60114 ———
26886kill_evil_bird_fly_glide_right59897 60085–60114 ———
26887kill_evil_bird_fly_idle59898 60085–60114 ———
26888kill_evil_bird_fly_run59899 60085–60114 ———
26889kill_evil_bird_fly_strafe_left59900 60085–60114 ———
26890kill_evil_bird_fly_strafe_right59901 60085–60114 ———
26891kill_evil_bird_fly_turn_left59902 60085–60114 ———
26892kill_evil_bird_fly_turn_right59903 60085–60114 ———
26893kill_evil_bird_fly_up59904 60085–60114 ———
26894kill_evil_bird_fly_walk59905 60085–60114 ———
26895kill_evil_bird_idle59906 60085–60114 ———
26896kill_evil_bird_idle0159907 60085–60114 ———
26897kill_evil_bird_idle0259908 60085–60114 ———
26898kill_evil_bird_idle0359909 60085–60114 ———
26899kill_evil_bird_idle0459910 60085–60114 ———
27172kill_evil_bird_idle0561066 60085–60114 ———
26946kill_evil_bird_idle_egg60094 60085–60114 ———
26900kill_evil_bird_jump59911 60085–60114 ———
26901kill_evil_bird_jump_substitute59912 60085–60114 ———
26902kill_evil_bird_land59913 60085–60114 ———
26903kill_evil_bird_long_fall59914 60085–60114 ———
26904kill_evil_bird_run59915 60085–60114 ———
26905kill_evil_bird_turn_left59916 60085–60114 ———
26906kill_evil_bird_turn_right59917 60085–60114 ———
26907kill_evil_bird_walk59918 60085–60114 ———
30549kill_evil_butterfly_1h_sword_atack028456573 60085–60114 ———
30550kill_evil_butterfly_1h_sword_attack8456574 60085–60114 ———
30548kill_evil_butterfly_1h_sword_combat_art_buff8456572 60085–60114 ———
30551kill_evil_butterfly_1h_sword_dead8456575 60085–60114 ———
30552kill_evil_butterfly_dodge_forehand8456577 60085–60114 ———
30553kill_evil_butterfly_dodge_thrust8456578 60085–60114 ———
30554kill_evil_butterfly_idle018456579 60085–60114 ———
23785kill_evil_theer_energy_buff52597 60085–60114 ———
5032kill_ew_castlp_snd34915 1–843 ———
19528kill_ew_castlp_snd44255 60085–60114 ———
24632kill_exit54452 60085–60114 ———
31433kill_exit_statue8485549 60085–60114 ———
5185kill_explode0135170 1–843 ———
19529kill_explode0144256 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.