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
5392kill_spinningwheel_success0335501 1–843 ———
21013kill_spinningwheel_success0345744 60085–60114 ———
25379kill_spin_con156394 60085–60114 ———
25380kill_spin_con1056395 60085–60114 ———
25381kill_spin_con1156396 60085–60114 ———
25382kill_spin_con1256397 60085–60114 ———
25383kill_spin_con1356398 60085–60114 ———
25384kill_spin_con1456399 60085–60114 ———
25385kill_spin_con1556400 60085–60114 ———
25386kill_spin_con1656401 60085–60114 ———
25387kill_spin_con256402 60085–60114 ———
25388kill_spin_con356403 60085–60114 ———
25389kill_spin_con456404 60085–60114 ———
25390kill_spin_con556405 60085–60114 ———
25391kill_spin_con656406 60085–60114 ———
25392kill_spin_con756407 60085–60114 ———
25393kill_spin_con856408 60085–60114 ———
25394kill_spin_con956409 60085–60114 ———
30254kill_spin_idle8454778 60085–60114 ———
25100kill_spin_it55564 60085–60114 ———
6040kill_spiritascend_snd36812 1–843 ———
21014kill_spiritascend_snd45745 60085–60114 ———
27226kill_spit61326 60085–60114 ———
26541kill_splash_fx58682 60085–60114 ———
3837kill_square33398 1–843 ———
21015kill_square45746 60085–60114 ———
3838kill_squeal33399 1–843 ———
21016kill_squeal45747 60085–60114 ———
25395kill_squirrel_mount_backup56410 60085–60114 ———
25396kill_squirrel_mount_fall56411 60085–60114 ———
25397kill_squirrel_mount_glide56412 60085–60114 ———
25398kill_squirrel_mount_glide_left56413 60085–60114 ———
25399kill_squirrel_mount_glide_right56414 60085–60114 ———
25400kill_squirrel_mount_idle56415 60085–60114 ———
25401kill_squirrel_mount_idle0156416 60085–60114 ———
25514kill_squirrel_mount_idle0256694 60085–60114 ———
25402kill_squirrel_mount_jump56417 60085–60114 ———
25403kill_squirrel_mount_jump_substitute56418 60085–60114 ———
25404kill_squirrel_mount_land56419 60085–60114 ———
25405kill_squirrel_mount_long_fall56420 60085–60114 ———
25406kill_squirrel_mount_run56421 60085–60114 ———
25452kill_squirrel_mount_run0156556 60085–60114 ———
25407kill_squirrel_mount_turn_left56422 60085–60114 ———
25408kill_squirrel_mount_turn_right56423 60085–60114 ———
25409kill_squirrel_mount_walk56424 60085–60114 ———
6315kill_ss_singing_lp_snd37910 1–843 ———
21017kill_ss_singing_lp_snd45748 60085–60114 ———
25923kill_stalk57849 60085–60114 ———
30389kill_stand_01_duck_and_cover8455165 60085–60114 ———
30390kill_stand_02_get_hit8455166 60085–60114 ———
30600kill_stand_idle038457836 60085–60114 ———
30391kill_stand_idle_01_get_hit8455167 60085–60114 ———
30392kill_stand_idle_01_throw_food8455168 60085–60114 ———
30393kill_stand_idle_loop_018455169 60085–60114 ———
30394kill_stand_loop_028455170 60085–60114 ———
30395kill_stand_loop_02_throw_food8455171 60085–60114 ———
30491kill_stand_to_walk8455948 60085–60114 ———
3839kill_stare33400 1–843 ———
21020kill_stare45751 60085–60114 ———
4676kill_start34525 1–843 ———
21021kill_start45752 60085–60114 ———
4390kill_startburst_sound_0134197 1–843 ———
21023kill_startburst_sound_0145754 60085–60114 ———
4282kill_start_drone_sound34089 1–843 ———
21022kill_start_drone_sound45753 60085–60114 ———
4454kill_state_breath_cold34261 1–843 ———
17692kill_state_breath_cold34261 60085–60114 ———
6621kill_status_quest_completes39442 1–843 ———
18371kill_status_quest_completes39442 60085–60114 ———
27143kill_status_quest_completes_repeatable60991 60085–60114 ———
23972kill_status_quest_completes_storyline52906 60085–60114 ———
27144kill_status_quest_completes_tradeskill60992 60085–60114 ———
6622kill_status_quest_gives39443 1–843 ———
18372kill_status_quest_gives39443 60085–60114 ———
22530kill_status_quest_gives_gray49750 60085–60114 ———
27145kill_status_quest_gives_repeatable60993 60085–60114 ———
23973kill_status_quest_gives_storyline52907 60085–60114 ———
27146kill_status_quest_gives_tradeskill60994 60085–60114 ———
22482kill_status_quest_guide_gives49631 60085–60114 ———
6623kill_status_quest_updates39444 1–843 ———
18373kill_status_quest_updates39444 60085–60114 ———
27147kill_status_quest_updates_repeatable60995 60085–60114 ———
23974kill_status_quest_updates_storyline52908 60085–60114 ———
27148kill_status_quest_updates_tradeskill60996 60085–60114 ———
5156kill_steam0135114 1–843 ———
21024kill_steam0145755 60085–60114 ———
21025kill_steam_forearm_l45756 60085–60114 ———
21026kill_steam_forearm_r45757 60085–60114 ———
21027kill_steam_hip_l45758 60085–60114 ———
21028kill_steam_hip_l_death45759 60085–60114 ———
21029kill_steam_hip_r45760 60085–60114 ———
21030kill_steam_hip_r_death45761 60085–60114 ———
21031kill_steam_upperarm_l45762 60085–60114 ———
21032kill_steam_upperarm_r45763 60085–60114 ———
31370kill_steg_knockedtoback8483884 60085–60114 ———
5104kill_stifle_cast_arm_snd35039 1–843 ———
21033kill_stifle_cast_arm_snd45764 60085–60114 ———
5105kill_stifle_cast_lp_snd35040 1–843 ———
21034kill_stifle_cast_lp_snd45765 60085–60114 ———
5106kill_stifle_result_snd35041 1–843 ———
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.