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
26326kill_backpack_pike_attack_recoil0358254 60085–60114 ———
26327kill_backpack_pike_backup58255 60085–60114 ———
26328kill_backpack_pike_charge_up58256 60085–60114 ———
26329kill_backpack_pike_death_blow58257 60085–60114 ———
26330kill_backpack_pike_defensive_buff58258 60085–60114 ———
26331kill_backpack_pike_dodge_backhand58259 60085–60114 ———
26332kill_backpack_pike_dodge_down58260 60085–60114 ———
26333kill_backpack_pike_dodge_forehand58261 60085–60114 ———
26334kill_backpack_pike_dodge_thrust58262 60085–60114 ———
26335kill_backpack_pike_enter58263 60085–60114 ———
26336kill_backpack_pike_exit58264 60085–60114 ———
26337kill_backpack_pike_feint58265 60085–60114 ———
26338kill_backpack_pike_idle58266 60085–60114 ———
26339kill_backpack_pike_kick58267 60085–60114 ———
26340kill_backpack_pike_knockdowntoknees58268 60085–60114 ———
26341kill_backpack_pike_knockedtoback58269 60085–60114 ———
26342kill_backpack_pike_knockedtoback_getup58270 60085–60114 ———
26343kill_backpack_pike_offensive_buff58271 60085–60114 ———
26344kill_backpack_pike_ouch_backhand58272 60085–60114 ———
26345kill_backpack_pike_ouch_down58273 60085–60114 ———
26346kill_backpack_pike_ouch_forehand58274 60085–60114 ———
26347kill_backpack_pike_ouch_thrust58275 60085–60114 ———
26348kill_backpack_pike_parry_backhand58276 60085–60114 ———
26349kill_backpack_pike_parry_down58277 60085–60114 ———
26350kill_backpack_pike_parry_forehand58278 60085–60114 ———
26351kill_backpack_pike_parry_thrust58279 60085–60114 ———
26352kill_backpack_pike_strafe_left58280 60085–60114 ———
26353kill_backpack_pike_strafe_right58281 60085–60114 ———
26354kill_backpack_pike_super_buff58282 60085–60114 ———
26355kill_backpack_pike_taunt58283 60085–60114 ———
26356kill_backpack_pike_walk58284 60085–60114 ———
26357kill_backpack_pike_whirling_attack58285 60085–60114 ———
26358kill_backpack_pike_wild_swing58286 60085–60114 ———
26359kill_backpack_ponder58287 60085–60114 ———
26360kill_backpack_pugilist_attack58288 60085–60114 ———
26361kill_backpack_pugilist_attack0158289 60085–60114 ———
26362kill_backpack_pugilist_attack0258290 60085–60114 ———
26363kill_backpack_pugilist_attack0358291 60085–60114 ———
26364kill_backpack_pugilist_attack_recoil58292 60085–60114 ———
26365kill_backpack_pugilist_attack_recoil0158293 60085–60114 ———
26366kill_backpack_pugilist_attack_recoil0258294 60085–60114 ———
26367kill_backpack_pugilist_attack_recoil0358295 60085–60114 ———
26368kill_backpack_pugilist_backup58296 60085–60114 ———
26369kill_backpack_pugilist_charge_up58297 60085–60114 ———
26370kill_backpack_pugilist_defensive_buff58298 60085–60114 ———
26371kill_backpack_pugilist_dodge_backhand58299 60085–60114 ———
26372kill_backpack_pugilist_dodge_down58300 60085–60114 ———
26373kill_backpack_pugilist_dodge_forehand58301 60085–60114 ———
26374kill_backpack_pugilist_dodge_thrust58302 60085–60114 ———
26375kill_backpack_pugilist_enter58303 60085–60114 ———
26376kill_backpack_pugilist_exit58304 60085–60114 ———
26377kill_backpack_pugilist_feint58305 60085–60114 ———
26378kill_backpack_pugilist_idle58306 60085–60114 ———
26379kill_backpack_pugilist_kick58307 60085–60114 ———
26380kill_backpack_pugilist_knockdowntoknees58308 60085–60114 ———
26381kill_backpack_pugilist_knockedtoback58309 60085–60114 ———
26382kill_backpack_pugilist_knockedtoback_getup58310 60085–60114 ———
26383kill_backpack_pugilist_offensive_buff58311 60085–60114 ———
26384kill_backpack_pugilist_ouch_backhand58312 60085–60114 ———
26385kill_backpack_pugilist_ouch_down58313 60085–60114 ———
26386kill_backpack_pugilist_ouch_forehand58314 60085–60114 ———
26387kill_backpack_pugilist_ouch_thrust58315 60085–60114 ———
26388kill_backpack_pugilist_parry_backhand58316 60085–60114 ———
26389kill_backpack_pugilist_parry_down58317 60085–60114 ———
26390kill_backpack_pugilist_parry_forehand58318 60085–60114 ———
26391kill_backpack_pugilist_parry_thrust58319 60085–60114 ———
26392kill_backpack_pugilist_strafe_left58320 60085–60114 ———
26393kill_backpack_pugilist_strafe_right58321 60085–60114 ———
26394kill_backpack_pugilist_super_buff58322 60085–60114 ———
26395kill_backpack_pugilist_taunt58323 60085–60114 ———
26396kill_backpack_pugilist_walk58324 60085–60114 ———
26397kill_backpack_pugilist_whirling_attack58325 60085–60114 ———
26398kill_backpack_pugilist_wild_swing58326 60085–60114 ———
26399kill_backpack_resurrect58327 60085–60114 ———
26400kill_backpack_right_hand_fist58328 60085–60114 ———
26401kill_backpack_right_hand_relaxed58329 60085–60114 ———
26402kill_backpack_rude58330 60085–60114 ———
25847kill_backpack_run57596 60085–60114 ———
26403kill_backpack_sad58331 60085–60114 ———
26404kill_backpack_salute_freeport58332 60085–60114 ———
26405kill_backpack_scheme58333 60085–60114 ———
26406kill_backpack_scratch58334 60085–60114 ———
26407kill_backpack_scribing_idle58335 60085–60114 ———
26408kill_backpack_seenoevil58336 60085–60114 ———
26409kill_backpack_shame58337 60085–60114 ———
26410kill_backpack_shield_block_backhand58338 60085–60114 ———
26411kill_backpack_shield_block_down58339 60085–60114 ———
26412kill_backpack_shield_block_forehand58340 60085–60114 ———
26413kill_backpack_shield_block_thrust58341 60085–60114 ———
26414kill_backpack_shield_shove58342 60085–60114 ———
26415kill_backpack_shiver58343 60085–60114 ———
26416kill_backpack_sit_drink58344 60085–60114 ———
26417kill_backpack_sit_enter58345 60085–60114 ———
26418kill_backpack_sit_exit58346 60085–60114 ———
26419kill_backpack_sit_idle58347 60085–60114 ———
26420kill_backpack_sneeze58348 60085–60114 ———
26421kill_backpack_sniff58349 60085–60114 ———
26422kill_backpack_speaknoevil58350 60085–60114 ———
26423kill_backpack_square58351 60085–60114 ———
26424kill_backpack_stinky58352 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.