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
17521kill_pugilist_idle33218 60085–60114 ———
24841kill_pugilist_idle0154857 60085–60114 ———
24853kill_pugilist_idle0254891 60085–60114 ———
5637kill_pugilist_kick35797 1–843 ———
18047kill_pugilist_kick35797 60085–60114 ———
5638kill_pugilist_knockdowntoknees35798 1–843 ———
20094kill_pugilist_knockdowntoknees44823 60085–60114 ———
5639kill_pugilist_knockedtoback35799 1–843 ———
20095kill_pugilist_knockedtoback44824 60085–60114 ———
5640kill_pugilist_knockedtoback_getup35800 1–843 ———
20096kill_pugilist_knockedtoback_getup44825 60085–60114 ———
5641kill_pugilist_offensive_buff35801 1–843 ———
20097kill_pugilist_offensive_buff44826 60085–60114 ———
6134kill_pugilist_ouch37282 1–843 ———
20098kill_pugilist_ouch44827 60085–60114 ———
6135kill_pugilist_ouch0137283 1–843 ———
20099kill_pugilist_ouch0144828 60085–60114 ———
4596kill_pugilist_ouch_backhand34421 1–843 ———
20100kill_pugilist_ouch_backhand44829 60085–60114 ———
4597kill_pugilist_ouch_down34422 1–843 ———
20101kill_pugilist_ouch_down44830 60085–60114 ———
4598kill_pugilist_ouch_forehand34423 1–843 ———
20102kill_pugilist_ouch_forehand44831 60085–60114 ———
6195kill_pugilist_ouch_thrust37415 1–843 ———
20103kill_pugilist_ouch_thrust44832 60085–60114 ———
6136kill_pugilist_parry37284 1–843 ———
20104kill_pugilist_parry44833 60085–60114 ———
4599kill_pugilist_parry_backhand34424 1–843 ———
20105kill_pugilist_parry_backhand44834 60085–60114 ———
4600kill_pugilist_parry_down34425 1–843 ———
20106kill_pugilist_parry_down44835 60085–60114 ———
4601kill_pugilist_parry_forehand34426 1–843 ———
20107kill_pugilist_parry_forehand44836 60085–60114 ———
6196kill_pugilist_parry_thrust37416 1–843 ———
20108kill_pugilist_parry_thrust44837 60085–60114 ———
6137kill_pugilist_recoil37285 1–843 ———
20109kill_pugilist_recoil44838 60085–60114 ———
3717kill_pugilist_strafe_left33235 1–843 ———
20110kill_pugilist_strafe_left44839 60085–60114 ———
3718kill_pugilist_strafe_right33236 1–843 ———
20111kill_pugilist_strafe_right44840 60085–60114 ———
5642kill_pugilist_super_buff35802 1–843 ———
20112kill_pugilist_super_buff44841 60085–60114 ———
5643kill_pugilist_taunt35803 1–843 ———
20113kill_pugilist_taunt44842 60085–60114 ———
3719kill_pugilist_walk33237 1–843 ———
20114kill_pugilist_walk44843 60085–60114 ———
5644kill_pugilist_whirling_attack35804 1–843 ———
18048kill_pugilist_whirling_attack35804 60085–60114 ———
5645kill_pugilist_wild_swing35805 1–843 ———
18049kill_pugilist_wild_swing35805 60085–60114 ———
23761kill_pulse_sound52566 60085–60114 ———
28024kill_puppeteer_enter64145 60085–60114 ———
28030kill_puppeteer_exit64170 60085–60114 ———
28025kill_puppeteer_idle64146 60085–60114 ———
28026kill_puppeter_exit64147 60085–60114 ———
22097kill_pus_splat48986 60085–60114 ———
24984kill_puzzle55281 60085–60114 ———
6222kill_pv_pet_victory_snd37485 1–843 ———
20115kill_pv_pet_victory_snd44844 60085–60114 ———
31098kill_pygmy_foley8482110 60085–60114 ———
5101kill_quality_down35033 1–843 ———
20116kill_quality_down44845 60085–60114 ———
5102kill_quality_up35034 1–843 ———
20117kill_quality_up44846 60085–60114 ———
3720kill_quest_complete33255 1–843 ———
20118kill_quest_complete44847 60085–60114 ———
23423kill_quick_summon_fx52005 60085–60114 ———
3948kill_rain33678 1–843 ———
20119kill_rain44848 60085–60114 ———
23217kill_rain_of_shinies51471 60085–60114 ———
30423kill_raised_hand8455355 60085–60114 ———
3721kill_raisehand33256 1–843 ———
20120kill_raisehand44849 60085–60114 ———
30319kill_ramp_whoosh_suck01_snd8454856 60085–60114 ———
30320kill_ramp_whoosh_suck02_snd8454857 60085–60114 ———
30321kill_ramp_whoosh_suck03_snd8454858 60085–60114 ———
25337kill_raptor_idle0156280 60085–60114 ———
31584kill_raptor_mount_1h_sword_enter8489958 60085–60114 ———
31585kill_raptor_mount_1h_sword_exit8489959 60085–60114 ———
31586kill_raptor_mount_1h_sword_idle8489960 60085–60114 ———
25268kill_raptor_mount_backup55994 60085–60114 ———
25269kill_raptor_mount_fall55995 60085–60114 ———
25296kill_raptor_mount_fly_glide_left56072 60085–60114 ———
25297kill_raptor_mount_fly_glide_right56073 60085–60114 ———
25298kill_raptor_mount_glide56074 60085–60114 ———
25299kill_raptor_mount_glide_left56075 60085–60114 ———
25300kill_raptor_mount_glide_right56076 60085–60114 ———
25270kill_raptor_mount_idle55996 60085–60114 ———
25338kill_raptor_mount_idle0256281 60085–60114 ———
25271kill_raptor_mount_jump55997 60085–60114 ———
25272kill_raptor_mount_jump_substitute55998 60085–60114 ———
25273kill_raptor_mount_land55999 60085–60114 ———
25274kill_raptor_mount_long_fall56000 60085–60114 ———
25275kill_raptor_mount_run56001 60085–60114 ———
25276kill_raptor_mount_turn_left56002 60085–60114 ———
25277kill_raptor_mount_turn_right56003 60085–60114 ———
25278kill_raptor_mount_walk56004 60085–60114 ———
27021kill_ratonga_brain_storm_text60398 60085–60114 ———
21525kill_ratonga_female_2h_sword_wild_swing46596 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.