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
26023kill_backpack_1h_wand_attack0157951 60085–60114 ———
26024kill_backpack_1h_wand_attack0257952 60085–60114 ———
26025kill_backpack_1h_wand_attack0357953 60085–60114 ———
26026kill_backpack_1h_wand_attack_recoil57954 60085–60114 ———
26027kill_backpack_1h_wand_attack_recoil0157955 60085–60114 ———
26028kill_backpack_1h_wand_attack_recoil0257956 60085–60114 ———
26029kill_backpack_1h_wand_attack_recoil0357957 60085–60114 ———
26030kill_backpack_1h_wand_backup57958 60085–60114 ———
26031kill_backpack_1h_wand_dodge_backhand57959 60085–60114 ———
26032kill_backpack_1h_wand_dodge_down57960 60085–60114 ———
26033kill_backpack_1h_wand_dodge_forehand57961 60085–60114 ———
26034kill_backpack_1h_wand_dodge_thrust57962 60085–60114 ———
26035kill_backpack_1h_wand_enter57963 60085–60114 ———
26036kill_backpack_1h_wand_exit57964 60085–60114 ———
26037kill_backpack_1h_wand_idle57965 60085–60114 ———
26038kill_backpack_1h_wand_ouch_backhand57966 60085–60114 ———
26039kill_backpack_1h_wand_ouch_down57967 60085–60114 ———
26040kill_backpack_1h_wand_ouch_forehand57968 60085–60114 ———
26041kill_backpack_1h_wand_ouch_thrust57969 60085–60114 ———
26042kill_backpack_1h_wand_parry_backhand57970 60085–60114 ———
26043kill_backpack_1h_wand_parry_down57971 60085–60114 ———
26044kill_backpack_1h_wand_parry_forehand57972 60085–60114 ———
26045kill_backpack_1h_wand_parry_thrust57973 60085–60114 ———
26046kill_backpack_1h_wand_strafe_left57974 60085–60114 ———
26047kill_backpack_1h_wand_strafe_right57975 60085–60114 ———
26048kill_backpack_1h_wand_walk57976 60085–60114 ———
26049kill_backpack_2h_sword_attack57977 60085–60114 ———
26050kill_backpack_2h_sword_attack0157978 60085–60114 ———
26051kill_backpack_2h_sword_attack0257979 60085–60114 ———
26052kill_backpack_2h_sword_attack0357980 60085–60114 ———
26053kill_backpack_2h_sword_attack_recoil57981 60085–60114 ———
26054kill_backpack_2h_sword_attack_recoil0157982 60085–60114 ———
26055kill_backpack_2h_sword_attack_recoil0257983 60085–60114 ———
26056kill_backpack_2h_sword_attack_recoil0357984 60085–60114 ———
26057kill_backpack_2h_sword_backup57985 60085–60114 ———
26058kill_backpack_2h_sword_charge_up57986 60085–60114 ———
26059kill_backpack_2h_sword_defensive_buff57987 60085–60114 ———
26060kill_backpack_2h_sword_dodge_backhand57988 60085–60114 ———
26061kill_backpack_2h_sword_dodge_down57989 60085–60114 ———
26062kill_backpack_2h_sword_dodge_forehand57990 60085–60114 ———
26063kill_backpack_2h_sword_dodge_thrust57991 60085–60114 ———
26064kill_backpack_2h_sword_enter57992 60085–60114 ———
26065kill_backpack_2h_sword_exit57993 60085–60114 ———
26066kill_backpack_2h_sword_feint57994 60085–60114 ———
26067kill_backpack_2h_sword_idle57995 60085–60114 ———
26068kill_backpack_2h_sword_kick57996 60085–60114 ———
26069kill_backpack_2h_sword_offensive_buff57997 60085–60114 ———
26070kill_backpack_2h_sword_ouch_backhand57998 60085–60114 ———
26071kill_backpack_2h_sword_ouch_down57999 60085–60114 ———
26072kill_backpack_2h_sword_ouch_forehand58000 60085–60114 ———
26073kill_backpack_2h_sword_ouch_thrust58001 60085–60114 ———
26074kill_backpack_2h_sword_parry_backhand58002 60085–60114 ———
26075kill_backpack_2h_sword_parry_down58003 60085–60114 ———
26076kill_backpack_2h_sword_parry_forehand58004 60085–60114 ———
26077kill_backpack_2h_sword_parry_thrust58005 60085–60114 ———
26078kill_backpack_2h_sword_strafe_left58006 60085–60114 ———
26079kill_backpack_2h_sword_strafe_right58007 60085–60114 ———
26080kill_backpack_2h_sword_super_buff58008 60085–60114 ———
26081kill_backpack_2h_sword_taunt58009 60085–60114 ———
26082kill_backpack_2h_sword_taunt_combat_art58010 60085–60114 ———
26083kill_backpack_2h_sword_walk58011 60085–60114 ———
26084kill_backpack_2h_sword_whirling_attack58012 60085–60114 ———
26085kill_backpack_2h_sword_wild_swing58013 60085–60114 ———
26086kill_backpack_alchemy_failure58014 60085–60114 ———
26087kill_backpack_alchemy_idle58015 60085–60114 ———
26088kill_backpack_alchemy_success58016 60085–60114 ———
26089kill_backpack_applaude58017 60085–60114 ———
26090kill_backpack_artificing_failure58018 60085–60114 ———
26091kill_backpack_artificing_idle58019 60085–60114 ———
26092kill_backpack_artificing_success58020 60085–60114 ———
26093kill_backpack_attack58021 60085–60114 ———
25830kill_backpack_backup57579 60085–60114 ———
25856kill_backpack_backup_run57611 60085–60114 ———
26094kill_backpack_bostaff_attack58022 60085–60114 ———
26095kill_backpack_bostaff_attack0158023 60085–60114 ———
26096kill_backpack_bostaff_attack0258024 60085–60114 ———
26097kill_backpack_bostaff_attack0358025 60085–60114 ———
26098kill_backpack_bostaff_attack_recoil58026 60085–60114 ———
26099kill_backpack_bostaff_attack_recoil0158027 60085–60114 ———
26100kill_backpack_bostaff_attack_recoil0258028 60085–60114 ———
26101kill_backpack_bostaff_attack_recoil0358029 60085–60114 ———
26102kill_backpack_bostaff_backup58030 60085–60114 ———
26103kill_backpack_bostaff_charge_up58031 60085–60114 ———
26104kill_backpack_bostaff_defensive_buff58032 60085–60114 ———
26105kill_backpack_bostaff_dodge_backhand58033 60085–60114 ———
26106kill_backpack_bostaff_dodge_down58034 60085–60114 ———
26107kill_backpack_bostaff_dodge_forehand58035 60085–60114 ———
26108kill_backpack_bostaff_dodge_thrust58036 60085–60114 ———
26109kill_backpack_bostaff_enter58037 60085–60114 ———
26110kill_backpack_bostaff_exit58038 60085–60114 ———
26111kill_backpack_bostaff_feint58039 60085–60114 ———
26112kill_backpack_bostaff_idle58040 60085–60114 ———
26113kill_backpack_bostaff_kick58041 60085–60114 ———
26114kill_backpack_bostaff_knockdowntoknees58042 60085–60114 ———
26115kill_backpack_bostaff_knockedtoback58043 60085–60114 ———
26116kill_backpack_bostaff_knockedtoback_getup58044 60085–60114 ———
26117kill_backpack_bostaff_offensive_buff58045 60085–60114 ———
26118kill_backpack_bostaff_ouch_backhand58046 60085–60114 ———
26119kill_backpack_bostaff_ouch_down58047 60085–60114 ———
26120kill_backpack_bostaff_ouch_forehand58048 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.