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
5924kill_persist_sparkles_clinging_soft_red36521 1–843 ———
18181kill_persist_sparkles_clinging_soft_red36521 60085–60114 ———
5442kill_persist_stone35559 1–843 ———
17997kill_persist_stone35559 60085–60114 ———
5429kill_persist_stunned35543 1–843 ———
17989kill_persist_stunned35543 60085–60114 ———
21936kill_persist_wild_heart_beating48623 60085–60114 ———
6013kill_pf_endsplash_snd36726 1–843 ———
20017kill_pf_endsplash_snd44746 60085–60114 ———
5992kill_pf_pwrcast_snd36693 1–843 ———
20018kill_pf_pwrcast_snd44747 60085–60114 ———
5993kill_pf_pwrrslt_snd36694 1–843 ———
20019kill_pf_pwrrslt_snd44748 60085–60114 ———
22194kill_pike_advance49173 60085–60114 ———
4188kill_pike_attack33974 1–843 ———
17574kill_pike_attack33974 60085–60114 ———
4777kill_pike_attack0134650 1–843 ———
17811kill_pike_attack0134650 60085–60114 ———
4778kill_pike_attack0234651 1–843 ———
17812kill_pike_attack0234651 60085–60114 ———
4779kill_pike_attack0334652 1–843 ———
20020kill_pike_attack0344749 60085–60114 ———
6167kill_pike_attack0437359 1–843 ———
20021kill_pike_attack0444750 60085–60114 ———
4189kill_pike_attack_recoil33975 1–843 ———
20022kill_pike_attack_recoil44751 60085–60114 ———
4780kill_pike_attack_recoil0134653 1–843 ———
20023kill_pike_attack_recoil0144752 60085–60114 ———
4781kill_pike_attack_recoil0234654 1–843 ———
20024kill_pike_attack_recoil0244753 60085–60114 ———
4782kill_pike_attack_recoil0334655 1–843 ———
20025kill_pike_attack_recoil0344754 60085–60114 ———
3701kill_pike_backup33180 1–843 ———
20026kill_pike_backup44755 60085–60114 ———
5362kill_pike_charge_up35467 1–843 ———
20027kill_pike_charge_up44756 60085–60114 ———
4783kill_pike_death_blow34656 1–843 ———
20028kill_pike_death_blow44757 60085–60114 ———
5363kill_pike_defensive_buff35468 1–843 ———
20029kill_pike_defensive_buff44758 60085–60114 ———
25692kill_pike_dodge57122 60085–60114 ———
4784kill_pike_dodge_backhand34657 1–843 ———
20030kill_pike_dodge_backhand44759 60085–60114 ———
4785kill_pike_dodge_down34658 1–843 ———
20031kill_pike_dodge_down44760 60085–60114 ———
4786kill_pike_dodge_forehand34659 1–843 ———
20032kill_pike_dodge_forehand44761 60085–60114 ———
4787kill_pike_dodge_thrust34660 1–843 ———
20033kill_pike_dodge_thrust44762 60085–60114 ———
3702kill_pike_enter33185 1–843 ———
20034kill_pike_enter44763 60085–60114 ———
3703kill_pike_exit33186 1–843 ———
20035kill_pike_exit44764 60085–60114 ———
5364kill_pike_feint35469 1–843 ———
20036kill_pike_feint44765 60085–60114 ———
3704kill_pike_idle33187 1–843 ———
17519kill_pike_idle33187 60085–60114 ———
20037kill_pike_idle0144766 60085–60114 ———
5365kill_pike_kick35470 1–843 ———
17956kill_pike_kick35470 60085–60114 ———
5631kill_pike_knockdowntoknees35791 1–843 ———
20038kill_pike_knockdowntoknees44767 60085–60114 ———
5632kill_pike_knockedtoback35792 1–843 ———
20039kill_pike_knockedtoback44768 60085–60114 ———
5633kill_pike_knockedtoback_getup35793 1–843 ———
20040kill_pike_knockedtoback_getup44769 60085–60114 ———
5366kill_pike_offensive_buff35471 1–843 ———
20041kill_pike_offensive_buff44770 60085–60114 ———
25693kill_pike_ouch57123 60085–60114 ———
6366kill_pike_ouch01_backhand38227 1–843 ———
20042kill_pike_ouch01_backhand44771 60085–60114 ———
6367kill_pike_ouch02_down38228 1–843 ———
20043kill_pike_ouch02_down44772 60085–60114 ———
4788kill_pike_ouch_backhand34661 1–843 ———
20044kill_pike_ouch_backhand44773 60085–60114 ———
4789kill_pike_ouch_down34662 1–843 ———
20045kill_pike_ouch_down44774 60085–60114 ———
4790kill_pike_ouch_forehand34663 1–843 ———
20046kill_pike_ouch_forehand44775 60085–60114 ———
4791kill_pike_ouch_thrust34664 1–843 ———
20047kill_pike_ouch_thrust44776 60085–60114 ———
4792kill_pike_parry_backhand34665 1–843 ———
20048kill_pike_parry_backhand44777 60085–60114 ———
4793kill_pike_parry_down34666 1–843 ———
20049kill_pike_parry_down44778 60085–60114 ———
4794kill_pike_parry_forehand34667 1–843 ———
20050kill_pike_parry_forehand44779 60085–60114 ———
4795kill_pike_parry_thrust34668 1–843 ———
20051kill_pike_parry_thrust44780 60085–60114 ———
27537kill_pike_run62484 60085–60114 ———
3705kill_pike_strafe_left33194 1–843 ———
20052kill_pike_strafe_left44781 60085–60114 ———
3706kill_pike_strafe_right33195 1–843 ———
20053kill_pike_strafe_right44782 60085–60114 ———
5367kill_pike_super_buff35472 1–843 ———
20054kill_pike_super_buff44783 60085–60114 ———
5368kill_pike_taunt35473 1–843 ———
20055kill_pike_taunt44784 60085–60114 ———
26479kill_pike_twirl58434 60085–60114 ———
3707kill_pike_walk33196 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.