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
24115kill_sound_vrewwx_attack_roar_353273 60085–60114 ———
24136kill_sound_vrewwx_body_fall53335 60085–60114 ———
24149kill_sound_vrewwx_buff53372 60085–60114 ———
24116kill_sound_vrewwx_cast_roar53274 60085–60114 ———
24150kill_sound_vrewwx_chomp53373 60085–60114 ———
24144kill_sound_vrewwx_death53358 60085–60114 ———
24151kill_sound_vrewwx_death_fall53383 60085–60114 ———
24125kill_sound_vrewwx_idle02_roar53299 60085–60114 ———
24126kill_sound_vrewwx_idle1_breathing_253309 60085–60114 ———
24145kill_sound_vrewwx_ouch53359 60085–60114 ———
3991kill_sound_walk33731 1–843 ———
20950kill_sound_walk45681 60085–60114 ———
20951kill_sound_walk00145682 60085–60114 ———
20952kill_sound_walk00245683 60085–60114 ———
3967kill_sound_walk0133697 1–843 ———
20953kill_sound_walk0145684 60085–60114 ———
3968kill_sound_walk0233698 1–843 ———
20954kill_sound_walk0245685 60085–60114 ———
6616kill_sound_walk139430 1–843 ———
20955kill_sound_walk145686 60085–60114 ———
22525kill_sound_walkbounce49727 60085–60114 ———
4885kill_sound_walkbubble34760 1–843 ———
20956kill_sound_walkbubble45687 60085–60114 ———
6580kill_sound_walkclaw39257 1–843 ———
20957kill_sound_walkclaw45688 60085–60114 ———
3969kill_sound_walkflap33699 1–843 ———
20958kill_sound_walkflap45689 60085–60114 ———
3832kill_sound_walkflap0133387 1–843 ———
20959kill_sound_walkflap0145690 60085–60114 ———
6545kill_sound_walkleft39163 1–843 ———
20960kill_sound_walkleft45691 60085–60114 ———
5029kill_sound_walkpiercer34912 1–843 ———
20961kill_sound_walkpiercer45692 60085–60114 ———
6546kill_sound_walkright39164 1–843 ———
20962kill_sound_walkright45693 60085–60114 ———
5021kill_sound_walkrock34904 1–843 ———
20963kill_sound_walkrock45694 60085–60114 ———
20964kill_sound_walkservo45695 60085–60114 ———
20965kill_sound_walkservoleft45696 60085–60114 ———
20966kill_sound_walkservoright45697 60085–60114 ———
3833kill_sound_water33388 1–843 ———
20967kill_sound_water45698 60085–60114 ———
5171kill_sound_waterstep35137 1–843 ———
20968kill_sound_waterstep45699 60085–60114 ———
23467kill_sound_whip_hit52076 60085–60114 ———
20969kill_sound_whirl45700 60085–60114 ———
20970kill_sound_whirlmotor45701 60085–60114 ———
20971kill_sound_whirlwhoosh45702 60085–60114 ———
27306kill_sound_whoosh61696 60085–60114 ———
20972kill_sound_wildspring45703 60085–60114 ———
20973kill_sound_wildswing45704 60085–60114 ———
22526kill_sound_wildswingenter49728 60085–60114 ———
20974kill_sound_wildswinghit00145705 60085–60114 ———
20975kill_sound_wildswinghit00245706 60085–60114 ———
25156kill_sound_win55695 60085–60114 ———
22930kill_sound_wind_blast50767 60085–60114 ———
5049kill_sound_wing34939 1–843 ———
20976kill_sound_wing45707 60085–60114 ———
20977kill_sound_wingbuffet45708 60085–60114 ———
5534kill_sound_wingflap35687 1–843 ———
20978kill_sound_wingflap45709 60085–60114 ———
5050kill_sound_wingfold34940 1–843 ———
20979kill_sound_wingfold45710 60085–60114 ———
5040kill_sound_wingmove34923 1–843 ———
20980kill_sound_wingmove45711 60085–60114 ———
5041kill_sound_wingopen34924 1–843 ———
20981kill_sound_wingopen45712 60085–60114 ———
6640kill_sound_wings39531 1–843 ———
20982kill_sound_wings45713 60085–60114 ———
20983kill_sound_wingwind45714 60085–60114 ———
24513kill_sound_wolfmount_bare_pant54186 60085–60114 ———
24514kill_sound_wolfmount_bare_roar_354187 60085–60114 ———
24515kill_sound_wolfmount_footstep_quiet54188 60085–60114 ———
24516kill_sound_wolfmount_idle54189 60085–60114 ———
24583kill_sound_wolfmount_idle0154296 60085–60114 ———
24517kill_sound_wolfmount_jump_substitute54190 60085–60114 ———
24518kill_sound_wolfmount_land54191 60085–60114 ———
24584kill_sound_wolfmount_turn_left54297 60085–60114 ———
24585kill_sound_wolfmount_turn_right54298 60085–60114 ———
24761kill_sound_wolfpup_angry54662 60085–60114 ———
24762kill_sound_wolfpup_attack54663 60085–60114 ———
24760kill_sound_wolfpup_bf54661 60085–60114 ———
24763kill_sound_wolfpup_confused54664 60085–60114 ———
24764kill_sound_wolfpup_eat54665 60085–60114 ———
24765kill_sound_wolfpup_footstep54666 60085–60114 ———
24766kill_sound_wolfpup_hungry54667 60085–60114 ———
24767kill_sound_wolfpup_idle0154668 60085–60114 ———
24768kill_sound_wolfpup_idle0254669 60085–60114 ———
24769kill_sound_wolfpup_ouch54670 60085–60114 ———
24770kill_sound_wolfpup_sick54671 60085–60114 ———
24771kill_sound_wolfpup_trick54672 60085–60114 ———
22047kill_sound_yawn48917 60085–60114 ———
5535kill_sound_yawn00135688 1–843 ———
20984kill_sound_yawn00145715 60085–60114 ———
20985kill_sound_zap45716 60085–60114 ———
5226kill_sparkle0135221 1–843 ———
20994kill_sparkle0145725 60085–60114 ———
5227kill_sparkle0235222 1–843 ———
20995kill_sparkle0245726 60085–60114 ———
5228kill_sparkle0335223 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.