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
21776kill_fae_dark_dual_wield_wild_swing47955 60085–60114 ———
21777kill_fae_dark_idle47956 60085–60114 ———
21778kill_fae_dark_monk_attack47957 60085–60114 ———
21779kill_fae_dark_monk_attack0147958 60085–60114 ———
21780kill_fae_dark_monk_attack0247959 60085–60114 ———
21781kill_fae_dark_monk_attack0347960 60085–60114 ———
21782kill_fae_dark_monk_dodge_backhand47961 60085–60114 ———
21783kill_fae_dark_monk_dodge_down47962 60085–60114 ———
21784kill_fae_dark_monk_wild_swing47963 60085–60114 ———
21785kill_fae_dark_pike_attack47964 60085–60114 ———
21786kill_fae_dark_pike_attack0147965 60085–60114 ———
21787kill_fae_dark_pike_attack0247966 60085–60114 ———
21788kill_fae_dark_pike_kick47967 60085–60114 ———
21789kill_fae_dark_pike_whirling_attack47968 60085–60114 ———
21790kill_fae_dark_pike_wild_swing47969 60085–60114 ———
21791kill_fae_dark_pugilist_attack47970 60085–60114 ———
21792kill_fae_dark_pugilist_attack0247971 60085–60114 ———
21793kill_fae_dark_pugilist_kick47972 60085–60114 ———
21794kill_fae_dark_pugilist_whirling_attack47973 60085–60114 ———
21795kill_fae_dark_pugilist_wild_swing47974 60085–60114 ———
21796kill_fae_dark_run47975 60085–60114 ———
21797kill_fae_dark_sit_enter47976 60085–60114 ———
21798kill_fae_dark_sit_exit47977 60085–60114 ———
21799kill_fae_dark_sit_idle47978 60085–60114 ———
21800kill_fae_dark_untrained_ouch0147979 60085–60114 ———
26999kill_fae_fireflies_trail60321 60085–60114 ———
18468kill_fae_light_1h_sword_attack42787 60085–60114 ———
18469kill_fae_light_1h_sword_attack0142788 60085–60114 ———
18470kill_fae_light_1h_sword_attack0242789 60085–60114 ———
18471kill_fae_light_1h_sword_attack0342790 60085–60114 ———
18472kill_fae_light_1h_sword_death_blow42791 60085–60114 ———
18473kill_fae_light_1h_sword_death_blow0142792 60085–60114 ———
18474kill_fae_light_1h_sword_dodge_backhand42793 60085–60114 ———
18475kill_fae_light_1h_sword_dodge_down42794 60085–60114 ———
18476kill_fae_light_1h_sword_dodge_forehand42795 60085–60114 ———
18477kill_fae_light_1h_sword_dodge_thrust42796 60085–60114 ———
18478kill_fae_light_1h_sword_ouch_backhand42797 60085–60114 ———
18479kill_fae_light_1h_sword_ouch_down42798 60085–60114 ———
18480kill_fae_light_1h_sword_ouch_forehand42799 60085–60114 ———
18481kill_fae_light_1h_sword_ouch_thrust42800 60085–60114 ———
18482kill_fae_light_1h_sword_parry_backhand42801 60085–60114 ———
18483kill_fae_light_1h_sword_parry_down42802 60085–60114 ———
18484kill_fae_light_1h_sword_parry_forehand42803 60085–60114 ———
18485kill_fae_light_1h_sword_parry_thrust42804 60085–60114 ———
18486kill_fae_light_2h_sword_attack42805 60085–60114 ———
18487kill_fae_light_2h_sword_attack0142806 60085–60114 ———
18488kill_fae_light_2h_sword_attack0242807 60085–60114 ———
18489kill_fae_light_2h_sword_defensive_buff42808 60085–60114 ———
18490kill_fae_light_2h_sword_dodge_backhand42809 60085–60114 ———
18491kill_fae_light_2h_sword_dodge_down42810 60085–60114 ———
18492kill_fae_light_2h_sword_dodge_forehand42811 60085–60114 ———
18493kill_fae_light_2h_sword_enter42812 60085–60114 ———
18494kill_fae_light_2h_sword_kick42813 60085–60114 ———
18495kill_fae_light_2h_sword_ouch_backhand42814 60085–60114 ———
18496kill_fae_light_2h_sword_ouch_down42815 60085–60114 ———
18497kill_fae_light_2h_sword_ouch_forehand42816 60085–60114 ———
18498kill_fae_light_2h_sword_ouch_thrust42817 60085–60114 ———
21516kill_fae_light_2h_sword_whirling_attack46586 60085–60114 ———
21517kill_fae_light_2h_sword_wild_swing46587 60085–60114 ———
22869kill_fae_light_bear_backup50663 60085–60114 ———
22870kill_fae_light_bear_idle50664 60085–60114 ———
22871kill_fae_light_bear_jump50665 60085–60114 ———
22872kill_fae_light_bear_jump_substitute50666 60085–60114 ———
22873kill_fae_light_bear_run50667 60085–60114 ———
22874kill_fae_light_bear_sprint50668 60085–60114 ———
22875kill_fae_light_bear_turn_left50669 60085–60114 ———
22876kill_fae_light_bear_turn_right50670 60085–60114 ———
22877kill_fae_light_bear_walk50671 60085–60114 ———
18499kill_fae_light_bostaff_attack0142820 60085–60114 ———
18500kill_fae_light_bostaff_attack0242821 60085–60114 ———
18501kill_fae_light_bostaff_attack0342822 60085–60114 ———
18690kill_fae_light_bostaff_dodge_backhand43237 60085–60114 ———
18691kill_fae_light_bostaff_dodge_forehand43238 60085–60114 ———
18681kill_fae_light_climbing_backup43183 60085–60114 ———
18682kill_fae_light_climbing_enter_down_root43184 60085–60114 ———
18683kill_fae_light_climbing_exit_up_root43185 60085–60114 ———
18684kill_fae_light_climbing_idle43186 60085–60114 ———
18685kill_fae_light_climbing_strafe_left43187 60085–60114 ———
18686kill_fae_light_climbing_strafe_right43188 60085–60114 ———
18687kill_fae_light_climbing_walk43189 60085–60114 ———
21479kill_fae_light_dance46499 60085–60114 ———
18688kill_fae_light_dead43190 60085–60114 ———
18689kill_fae_light_dead_enter43191 60085–60114 ———
18502kill_fae_light_dual_wield_attack42849 60085–60114 ———
18503kill_fae_light_dual_wield_attack0142850 60085–60114 ———
18504kill_fae_light_dual_wield_attack0242851 60085–60114 ———
18505kill_fae_light_dual_wield_attack0342852 60085–60114 ———
18692kill_fae_light_dual_wield_dodge_backhand43239 60085–60114 ———
18693kill_fae_light_dual_wield_dodge_forehand43240 60085–60114 ———
18506kill_fae_light_dual_wield_kick42853 60085–60114 ———
18694kill_fae_light_dual_wield_ouch_backhand43241 60085–60114 ———
18695kill_fae_light_dual_wield_ouch_forehand43242 60085–60114 ———
18696kill_fae_light_dual_wield_parry_down43243 60085–60114 ———
18507kill_fae_light_dual_wield_whirling_attack42854 60085–60114 ———
18508kill_fae_light_dual_wield_wild_swing42855 60085–60114 ———
21518kill_fae_light_female_2h_sword_wild_swing46588 60085–60114 ———
21534kill_fae_light_female_pike_charge_up46624 60085–60114 ———
21535kill_fae_light_female_pike_defensive_buff46625 60085–60114 ———
21536kill_fae_light_female_pike_offensive_buff46626 60085–60114 ———
18458kill_fae_light_idle42649 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.