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
22017kill_sound_fall00148842 60085–60114 ———
3805kill_sound_fall0133355 1–843 ———
20711kill_sound_fall0145442 60085–60114 ———
3806kill_sound_fall0233356 1–843 ———
20712kill_sound_fall0245443 60085–60114 ———
6047kill_sound_fallmetal36847 1–843 ———
20713kill_sound_fallmetal45444 60085–60114 ———
22929kill_sound_fan_start50766 60085–60114 ———
24432kill_sound_feeding53951 60085–60114 ———
3807kill_sound_filler33357 1–843 ———
20714kill_sound_filler45445 60085–60114 ———
6258kill_sound_fire37581 1–843 ———
20715kill_sound_fire45446 60085–60114 ———
6259kill_sound_fireswoosh37582 1–843 ———
20716kill_sound_fireswoosh45447 60085–60114 ———
22949kill_sound_fire_vortex50811 60085–60114 ———
5090kill_sound_fishing_cast0135019 1–843 ———
20717kill_sound_fishing_cast0145448 60085–60114 ———
5091kill_sound_fishing_cast0235020 1–843 ———
20718kill_sound_fishing_cast0245449 60085–60114 ———
5092kill_sound_fishing_cast0335021 1–843 ———
20719kill_sound_fishing_cast0345450 60085–60114 ———
20720kill_sound_flame45451 60085–60114 ———
27697kill_sound_flames63296 60085–60114 ———
20721kill_sound_flamethrower45452 60085–60114 ———
3808kill_sound_flap33360 1–843 ———
20722kill_sound_flap45453 60085–60114 ———
20723kill_sound_flapup45454 60085–60114 ———
4987kill_sound_fleeflutter34870 1–843 ———
20724kill_sound_fleeflutter45455 60085–60114 ———
20725kill_sound_fluter45456 60085–60114 ———
6206kill_sound_fly_bite_rip37427 1–843 ———
20726kill_sound_fly_bite_rip45457 60085–60114 ———
4106kill_sound_foot33868 1–843 ———
20727kill_sound_foot45458 60085–60114 ———
5845kill_sound_footlayerleft36175 1–843 ———
20728kill_sound_footlayerleft45459 60085–60114 ———
5846kill_sound_footlayerright36176 1–843 ———
20729kill_sound_footlayerright45460 60085–60114 ———
22557kill_sound_footsrape49861 60085–60114 ———
4731kill_sound_footstep34603 1–843 ———
20730kill_sound_footstep45461 60085–60114 ———
23287kill_sound_footstep_deep51615 60085–60114 ———
23288kill_sound_footstep_small51616 60085–60114 ———
5334kill_sound_footstomp35431 1–843 ———
20731kill_sound_footstomp45462 60085–60114 ———
5463kill_sound_foresting35586 1–843 ———
20732kill_sound_foresting45463 60085–60114 ———
27474kill_sound_fs62231 60085–60114 ———
6260kill_sound_fuse37583 1–843 ———
20733kill_sound_fuse45464 60085–60114 ———
5464kill_sound_gathering35587 1–843 ———
20734kill_sound_gathering45465 60085–60114 ———
23543kill_sound_gazer_attack02_roar52230 60085–60114 ———
23544kill_sound_gazer_attack03_roar52231 60085–60114 ———
23545kill_sound_gazer_attack_roar52232 60085–60114 ———
23546kill_sound_gazer_attack_woosh52233 60085–60114 ———
23547kill_sound_gazer_attack_woosh_quiet52234 60085–60114 ———
23548kill_sound_gazer_bite_roar52235 60085–60114 ———
23549kill_sound_gazer_bodynoise52236 60085–60114 ———
23550kill_sound_gazer_bodynoise_fall52237 60085–60114 ———
23551kill_sound_gazer_bodynoise_fall_deep52238 60085–60114 ———
23552kill_sound_gazer_bodynoise_fall_dirt52239 60085–60114 ———
23553kill_sound_gazer_bodynoise_long52240 60085–60114 ———
23554kill_sound_gazer_breath52241 60085–60114 ———
23555kill_sound_gazer_breath_grunt52242 60085–60114 ———
23556kill_sound_gazer_combat_art_buff_roar52243 60085–60114 ———
23557kill_sound_gazer_crunch52244 60085–60114 ———
23558kill_sound_gazer_deadfall52245 60085–60114 ———
23559kill_sound_gazer_eyeball_gross52246 60085–60114 ———
23560kill_sound_gazer_eyeball_pop52247 60085–60114 ———
23561kill_sound_gazer_eyeball_pop_quiet52248 60085–60114 ———
23562kill_sound_gazer_eyeball_twirl52249 60085–60114 ———
23563kill_sound_gazer_growl_low52250 60085–60114 ———
23564kill_sound_gazer_grunt_short52251 60085–60114 ———
23565kill_sound_gazer_liddown52252 60085–60114 ———
23566kill_sound_gazer_swim52253 60085–60114 ———
23567kill_sound_gazer_swim_idle52254 60085–60114 ———
23568kill_sound_gazer_whip52255 60085–60114 ———
23569kill_sound_gazer_whip_impact52256 60085–60114 ———
23570kill_sound_gazer_whip_low52257 60085–60114 ———
6244kill_sound_getup37559 1–843 ———
20735kill_sound_getup45466 60085–60114 ———
24064kill_sound_giant_hill_attack53154 60085–60114 ———
24065kill_sound_giant_hill_buff53155 60085–60114 ———
24066kill_sound_giant_hill_cast53156 60085–60114 ———
24067kill_sound_giant_hill_death53157 60085–60114 ———
24068kill_sound_giant_hill_fall53158 60085–60114 ———
24069kill_sound_giant_hill_footstep53159 60085–60114 ———
24070kill_sound_giant_hill_grunt53160 60085–60114 ———
24071kill_sound_giant_hill_idle_cloth53161 60085–60114 ———
24072kill_sound_giant_hill_idle_grunt53162 60085–60114 ———
24073kill_sound_giant_hill_idle_yawn53163 60085–60114 ———
24074kill_sound_giant_hill_movement_cloth53164 60085–60114 ———
24075kill_sound_giant_hill_ouch53165 60085–60114 ———
24076kill_sound_giant_hill_rising_groan53166 60085–60114 ———
24077kill_sound_giant_hill_sit_groan53167 60085–60114 ———
24078kill_sound_giant_hill_swim53168 60085–60114 ———
24079kill_sound_giant_hill_swim_idle53169 60085–60114 ———
24080kill_sound_giant_hill_turn53170 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.