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
22087kill_sarnak_strafe_left_run48963 60085–60114 ———
22088kill_sarnak_strafe_right_run48964 60085–60114 ———
22430kill_sarnak_stretch49520 60085–60114 ———
22431kill_sarnak_sulk49521 60085–60114 ———
22089kill_sarnak_sway_l48965 60085–60114 ———
22090kill_sarnak_sway_r48966 60085–60114 ———
22432kill_sarnak_swear49522 60085–60114 ———
22248kill_sarnak_swim_backup49273 60085–60114 ———
22249kill_sarnak_swim_go49274 60085–60114 ———
22433kill_sarnak_tantrum49523 60085–60114 ———
22434kill_sarnak_tapfoot49524 60085–60114 ———
22435kill_sarnak_taunt49525 60085–60114 ———
22436kill_sarnak_thank49526 60085–60114 ———
22437kill_sarnak_thumbs49527 60085–60114 ———
22091kill_sarnak_untrained_idle48967 60085–60114 ———
22438kill_sarnak_violin49528 60085–60114 ———
22092kill_sarnak_walk48968 60085–60114 ———
22439kill_sarnak_wave49529 60085–60114 ———
22440kill_sarnak_whistle49530 60085–60114 ———
22441kill_sarnak_whome49531 60085–60114 ———
22442kill_sarnak_wince49532 60085–60114 ———
22443kill_sarnak_wink49533 60085–60114 ———
22444kill_sarnak_yawn49534 60085–60114 ———
22445kill_sarnak_yeah49535 60085–60114 ———
5113kill_saw0135057 1–843 ———
20211kill_saw0144941 60085–60114 ———
5114kill_saw0235058 1–843 ———
20212kill_saw0244942 60085–60114 ———
20213kill_saw_sparks_front44943 60085–60114 ———
20214kill_saw_sparks_inside44944 60085–60114 ———
20215kill_saw_sparks_outside44945 60085–60114 ———
6015kill_sa_bones_sound36728 1–843 ———
20194kill_sa_bones_sound44924 60085–60114 ———
6030kill_sa_flash01_snd36801 1–843 ———
20195kill_sa_flash01_snd44925 60085–60114 ———
6031kill_sa_flash02_snd36802 1–843 ———
20196kill_sa_flash02_snd44926 60085–60114 ———
6032kill_sa_flash03_snd36803 1–843 ———
20197kill_sa_flash03_snd44927 60085–60114 ———
4664kill_sa_rattle_01_snd34491 1–843 ———
20198kill_sa_rattle_01_snd44928 60085–60114 ———
6001kill_sa_skelattack_snd36708 1–843 ———
20199kill_sa_skelattack_snd44929 60085–60114 ———
6033kill_sa_skeldance_snd36804 1–843 ———
20200kill_sa_skeldance_snd44930 60085–60114 ———
4665kill_sa_snakespawn_snd34492 1–843 ———
20201kill_sa_snakespawn_snd44931 60085–60114 ———
6034kill_sa_spiritappear_snd36805 1–843 ———
20202kill_sa_spiritappear_snd44932 60085–60114 ———
4666kill_sa_strike_snd34493 1–843 ———
20203kill_sa_strike_snd44933 60085–60114 ———
5943kill_sb_skelcast_sound36559 1–843 ———
20216kill_sb_skelcast_sound44946 60085–60114 ———
5944kill_sb_skeleton_sound36560 1–843 ———
20217kill_sb_skeleton_sound44947 60085–60114 ———
27417kill_scaled_hands_attack0362030 60085–60114 ———
23187kill_scarecrow_post_idle51377 60085–60114 ———
27508kill_scared62326 60085–60114 ———
28067kill_scene0264382 60085–60114 ———
28139kill_scene02_enter_convo64764 60085–60114 ———
28073kill_scene02_intro64401 60085–60114 ———
28140kill_scene02_look_convo64765 60085–60114 ———
28094kill_scene02_shout64543 60085–60114 ———
28086kill_scene02_spawn64459 60085–60114 ———
28063kill_scene0464365 60085–60114 ———
28074kill_scene04_roar64402 60085–60114 ———
28068kill_scene0564383 60085–60114 ———
28075kill_scene06_flyleft64403 60085–60114 ———
28104kill_scene06_fly_left64579 60085–60114 ———
28069kill_scene0764384 60085–60114 ———
28105kill_scene08_belowground64580 60085–60114 ———
28070kill_scene08_flycircle64385 60085–60114 ———
28071kill_scene08_flyenter64386 60085–60114 ———
28076kill_scene08_flyexit64404 60085–60114 ———
28072kill_scene08_flyidle64387 60085–60114 ———
28078kill_scene08_long64419 60085–60114 ———
28080kill_scene08_long_alt64434 60085–60114 ———
28064kill_scene0964366 60085–60114 ———
28087kill_scene09_crash64460 60085–60114 ———
28077kill_scene09_flyover64405 60085–60114 ———
28065kill_scene1064367 60085–60114 ———
28060kill_scene_0464349 60085–60114 ———
28061kill_scene_0964350 60085–60114 ———
28062kill_scene_1064351 60085–60114 ———
3752kill_scheme33290 1–843 ———
20220kill_scheme44950 60085–60114 ———
4910kill_scims_scimitar_snd34787 1–843 ———
20221kill_scims_scimitar_snd44951 60085–60114 ———
4911kill_scims_swordswipe_snd34788 1–843 ———
20222kill_scims_swordswipe_snd44952 60085–60114 ———
4912kill_scims_whoosh_snd34789 1–843 ———
20223kill_scims_whoosh_snd44953 60085–60114 ———
5147kill_scissors0135104 1–843 ———
20224kill_scissors0144954 60085–60114 ———
3753kill_scold33291 1–843 ———
20225kill_scold44955 60085–60114 ———
5997kill_scorpa_scorpform_snd36698 1–843 ———
20227kill_scorpa_scorpform_snd44957 60085–60114 ———
6002kill_scorpa_scream01_snd36709 1–843 ———
20228kill_scorpa_scream01_snd44958 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.