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
24912kill_vampire_nofx_whirling_attack55024 60085–60114 ———
24885kill_vampire_ouch54967 60085–60114 ———
24886kill_vampire_ouch0154968 60085–60114 ———
24887kill_vampire_parry54969 60085–60114 ———
24888kill_vampire_recoil54970 60085–60114 ———
24889kill_vampire_whirling_attack54971 60085–60114 ———
24913kill_vampire_whirling_nofx_attack55025 60085–60114 ———
5893kill_vamp_batattack_sound36412 1–843 ———
21185kill_vamp_batattack_sound45916 60085–60114 ———
5894kill_vamp_batflaps_sound36413 1–843 ———
21186kill_vamp_batflaps_sound45917 60085–60114 ———
5895kill_vamp_batsqueak_sound36414 1–843 ———
21187kill_vamp_batsqueak_sound45918 60085–60114 ———
24891kill_vamp_grab_slash54988 60085–60114 ———
24926kill_vamp_smoke_burst55060 60085–60114 ———
24872kill_vamp_smoke_trail54954 60085–60114 ———
22796kill_varsoon_crystal_150501 60085–60114 ———
22797kill_varsoon_crystal_250502 60085–60114 ———
22798kill_varsoon_crystal_350503 60085–60114 ———
22793kill_varsoon_portal_collapse50491 60085–60114 ———
22794kill_varsoon_void_portal50492 60085–60114 ———
30264kill_vasty_guardian_gold_attack_018454794 60085–60114 ———
30265kill_vasty_guardian_gold_attack_028454795 60085–60114 ———
30266kill_vasty_guardian_gold_cast8454796 60085–60114 ———
30267kill_vasty_guardian_gold_charge_up8454797 60085–60114 ———
30268kill_vasty_guardian_gold_missle_mode8454798 60085–60114 ———
30269kill_vasty_guardian_gold_spin8454799 60085–60114 ———
22457kill_vek_beam01_blue49599 60085–60114 ———
22458kill_vek_beam01_green49600 60085–60114 ———
22459kill_vek_beam01_red49601 60085–60114 ———
22460kill_vek_beam01_yellow49602 60085–60114 ———
22461kill_vek_beam02_blue49603 60085–60114 ———
22462kill_vek_beam02_green49604 60085–60114 ———
22463kill_vek_beam02_red49605 60085–60114 ———
22464kill_vek_beam02_yellow49606 60085–60114 ———
22465kill_vek_beam03_blue49607 60085–60114 ———
22466kill_vek_beam03_green49608 60085–60114 ———
22467kill_vek_beam03_red49609 60085–60114 ———
22468kill_vek_beam03_yellow49610 60085–60114 ———
22469kill_vek_beam04_blue49611 60085–60114 ———
22470kill_vek_beam04_green49612 60085–60114 ———
22471kill_vek_beam04_red49613 60085–60114 ———
22472kill_vek_beam04_yellow49614 60085–60114 ———
22620kill_vek_door_beam_blue50054 60085–60114 ———
22621kill_vek_door_beam_red50055 60085–60114 ———
22473kill_vek_map49615 60085–60114 ———
22474kill_vek_mapshine49616 60085–60114 ———
22475kill_vek_runes49617 60085–60114 ———
22476kill_vek_sunlight49618 60085–60114 ———
4488kill_ven_bkgrnd_slime_sound34298 1–843 ———
21188kill_ven_bkgrnd_slime_sound45919 60085–60114 ———
4489kill_ven_breath_0134299 1–843 ———
21189kill_ven_breath_0145920 60085–60114 ———
6226kill_ven_breath_0237490 1–843 ———
21190kill_ven_breath_0245921 60085–60114 ———
4490kill_ven_explode_sound34300 1–843 ———
21191kill_ven_explode_sound45922 60085–60114 ———
4491kill_ven_fire_0134301 1–843 ———
21192kill_ven_fire_0145923 60085–60114 ———
6227kill_ven_fire_0237491 1–843 ———
21193kill_ven_fire_0245924 60085–60114 ———
4492kill_ven_pulse_sound34302 1–843 ———
21194kill_ven_pulse_sound45925 60085–60114 ———
4493kill_ven_rumble_0134303 1–843 ———
21195kill_ven_rumble_0145926 60085–60114 ———
6228kill_ven_rumble_0237492 1–843 ———
21196kill_ven_rumble_0245927 60085–60114 ———
4494kill_ven_slime_0134304 1–843 ———
21197kill_ven_slime_0145928 60085–60114 ———
4495kill_ven_slime_0234305 1–843 ———
21198kill_ven_slime_0245929 60085–60114 ———
21199kill_verdict_cast_snd45930 60085–60114 ———
21200kill_verdict_gavel_snd45931 60085–60114 ———
30572kill_vevil_butterfly_1h_sword_combat_art_buff28456743 60085–60114 ———
4913kill_vg_healing_snd34790 1–843 ———
21201kill_vg_healing_snd45932 60085–60114 ———
4915kill_vg_leaveslp_snd34792 1–843 ———
21203kill_vg_leaveslp_snd45934 60085–60114 ———
4914kill_vg_leaves_snd34791 1–843 ———
21202kill_vg_leaves_snd45933 60085–60114 ———
27057kill_victory60625 60085–60114 ———
30872kill_violet_trail_fx8469901 60085–60114 ———
3875kill_violin33534 1–843 ———
21204kill_violin45935 60085–60114 ———
6499kill_visemes_a38935 1–843 ———
21252kill_visemes_a45983 60085–60114 ———
6500kill_visemes_c38936 1–843 ———
21253kill_visemes_c45984 60085–60114 ———
6501kill_visemes_e38937 1–843 ———
21254kill_visemes_e45985 60085–60114 ———
6502kill_visemes_f38938 1–843 ———
21255kill_visemes_f45986 60085–60114 ———
6503kill_visemes_l38939 1–843 ———
21256kill_visemes_l45987 60085–60114 ———
6504kill_visemes_m38940 1–843 ———
21257kill_visemes_m45988 60085–60114 ———
6505kill_visemes_o38941 1–843 ———
21258kill_visemes_o45989 60085–60114 ———
6506kill_visemes_rest38942 1–843 ———
21259kill_visemes_rest45990 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.