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
5186kill_explode0235171 1–843 ———
19530kill_explode0244257 60085–60114 ———
5187kill_explode0335172 1–843 ———
19531kill_explode0344258 60085–60114 ———
5200kill_explode_big35195 1–843 ———
19532kill_explode_big44259 60085–60114 ———
3620kill_explosion33057 1–843 ———
19533kill_explosion44260 60085–60114 ———
19536kill_eyes44263 60085–60114 ———
26718kill_eyes_rotate_down59248 60085–60114 ———
26719kill_eyes_rotate_left59249 60085–60114 ———
26720kill_eyes_rotate_right59250 60085–60114 ———
26721kill_eyes_rotate_up59251 60085–60114 ———
19534kill_eye_beam44261 60085–60114 ———
22120kill_eye_beams49045 60085–60114 ———
19535kill_eye_beam_red_blue44262 60085–60114 ———
25522kill_eye_fx56728 60085–60114 ———
4612kill_f34438 1–843 ———
19537kill_f44264 60085–60114 ———
6144kill_face_combat37306 1–843 ———
19538kill_face_combat44265 60085–60114 ———
6145kill_face_idle37307 1–843 ———
19539kill_face_idle44266 60085–60114 ———
5353kill_facial_frown35458 1–843 ———
19540kill_facial_frown44267 60085–60114 ———
5354kill_facial_smile35459 1–843 ———
19541kill_facial_smile44268 60085–60114 ———
6647kill_fade_cast_sound39552 1–843 ———
21843kill_fade_cast_sound48383 60085–60114 ———
6648kill_fade_reverse_sound39553 1–843 ———
21844kill_fade_reverse_sound48384 60085–60114 ———
19542kill_fae_dance_spark_sphere44269 60085–60114 ———
21717kill_fae_dark_1h_sword_attack47896 60085–60114 ———
21718kill_fae_dark_1h_sword_attack0147897 60085–60114 ———
21719kill_fae_dark_1h_sword_attack0247898 60085–60114 ———
21720kill_fae_dark_1h_sword_attack0347899 60085–60114 ———
21721kill_fae_dark_1h_sword_death_blow47900 60085–60114 ———
21722kill_fae_dark_1h_sword_death_blow0147901 60085–60114 ———
21723kill_fae_dark_1h_sword_dodge_backhand47902 60085–60114 ———
21724kill_fae_dark_1h_sword_dodge_down47903 60085–60114 ———
21725kill_fae_dark_1h_sword_dodge_forehand47904 60085–60114 ———
21726kill_fae_dark_1h_sword_dodge_thrust47905 60085–60114 ———
21727kill_fae_dark_1h_sword_ouch_backhand47906 60085–60114 ———
21728kill_fae_dark_1h_sword_ouch_down47907 60085–60114 ———
21729kill_fae_dark_1h_sword_ouch_forehand47908 60085–60114 ———
21730kill_fae_dark_1h_sword_ouch_thrust47909 60085–60114 ———
21731kill_fae_dark_1h_sword_parry_backhand47910 60085–60114 ———
21732kill_fae_dark_1h_sword_parry_down47911 60085–60114 ———
21733kill_fae_dark_1h_sword_parry_forehand47912 60085–60114 ———
21734kill_fae_dark_1h_sword_parry_thrust47913 60085–60114 ———
21735kill_fae_dark_2h_sword_attack47914 60085–60114 ———
21736kill_fae_dark_2h_sword_attack0147915 60085–60114 ———
21737kill_fae_dark_2h_sword_attack0247916 60085–60114 ———
21738kill_fae_dark_2h_sword_defensive_buff47917 60085–60114 ———
21739kill_fae_dark_2h_sword_dodge_backhand47918 60085–60114 ———
21740kill_fae_dark_2h_sword_dodge_down47919 60085–60114 ———
21741kill_fae_dark_2h_sword_dodge_forehand47920 60085–60114 ———
21742kill_fae_dark_2h_sword_enter47921 60085–60114 ———
21743kill_fae_dark_2h_sword_kick47922 60085–60114 ———
21744kill_fae_dark_2h_sword_ouch_backhand47923 60085–60114 ———
21745kill_fae_dark_2h_sword_ouch_down47924 60085–60114 ———
21746kill_fae_dark_2h_sword_ouch_forehand47925 60085–60114 ———
21747kill_fae_dark_2h_sword_ouch_thrust47926 60085–60114 ———
21748kill_fae_dark_2h_sword_whirling_attack47927 60085–60114 ———
21749kill_fae_dark_2h_sword_wild_swing47928 60085–60114 ———
22860kill_fae_dark_bear_backup50654 60085–60114 ———
22861kill_fae_dark_bear_idle50655 60085–60114 ———
22862kill_fae_dark_bear_jump50656 60085–60114 ———
22863kill_fae_dark_bear_jump_substitute50657 60085–60114 ———
22864kill_fae_dark_bear_run50658 60085–60114 ———
22865kill_fae_dark_bear_sprint50659 60085–60114 ———
22866kill_fae_dark_bear_turn_left50660 60085–60114 ———
22867kill_fae_dark_bear_turn_right50661 60085–60114 ———
22868kill_fae_dark_bear_walk50662 60085–60114 ———
21750kill_fae_dark_bostaff_attack0147929 60085–60114 ———
21751kill_fae_dark_bostaff_attack0247930 60085–60114 ———
21752kill_fae_dark_bostaff_attack0347931 60085–60114 ———
21753kill_fae_dark_bostaff_dodge_backhand47932 60085–60114 ———
21754kill_fae_dark_bostaff_dodge_forehand47933 60085–60114 ———
21755kill_fae_dark_climbing_backup47934 60085–60114 ———
21756kill_fae_dark_climbing_enter_down_root47935 60085–60114 ———
21757kill_fae_dark_climbing_exit_up_root47936 60085–60114 ———
21758kill_fae_dark_climbing_idle47937 60085–60114 ———
21759kill_fae_dark_climbing_strafe_left47938 60085–60114 ———
21760kill_fae_dark_climbing_strafe_right47939 60085–60114 ———
21761kill_fae_dark_climbing_walk47940 60085–60114 ———
21762kill_fae_dark_dance47941 60085–60114 ———
21763kill_fae_dark_dead47942 60085–60114 ———
21764kill_fae_dark_dead_enter47943 60085–60114 ———
21765kill_fae_dark_dual_wield_attack47944 60085–60114 ———
21766kill_fae_dark_dual_wield_attack0147945 60085–60114 ———
21767kill_fae_dark_dual_wield_attack0247946 60085–60114 ———
21768kill_fae_dark_dual_wield_attack0347947 60085–60114 ———
21769kill_fae_dark_dual_wield_dodge_backhand47948 60085–60114 ———
21770kill_fae_dark_dual_wield_dodge_forehand47949 60085–60114 ———
21771kill_fae_dark_dual_wield_kick47950 60085–60114 ———
21772kill_fae_dark_dual_wield_ouch_backhand47951 60085–60114 ———
21773kill_fae_dark_dual_wield_ouch_forehand47952 60085–60114 ———
21774kill_fae_dark_dual_wield_parry_down47953 60085–60114 ———
21775kill_fae_dark_dual_wield_whirling_attack47954 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.