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
27231kill_cast_werewolf_hair61352 60085–60114 ———
27129kill_cast_white_buff60878 60085–60114 ———
4403kill_cast_wildcharge_sound34210 1–843 ———
19179kill_cast_wildcharge_sound43898 60085–60114 ———
4404kill_cast_wildswingwindsword_sound34211 1–843 ———
19180kill_cast_wildswingwindsword_sound43899 60085–60114 ———
31656kill_cast_wild_casting8493584 60085–60114 ———
21934kill_cast_wild_heart_buff48619 60085–60114 ———
22639kill_cast_wings50123 60085–60114 ———
26684kill_cast_wing_blast59074 60085–60114 ———
24618kill_cast_wing_buffet54413 60085–60114 ———
24102kill_cast_wing_buffet_snow53232 60085–60114 ———
24103kill_cast_wing_buffet_wind53233 60085–60114 ———
4057kill_cast_winkers33813 1–843 ———
17566kill_cast_winkers33813 60085–60114 ———
30064kill_cast_wisp_gather_fist8454136 60085–60114 ———
4534kill_cast_wizard34346 1–843 ———
17730kill_cast_wizard34346 60085–60114 ———
27961kill_cast_wizard_mythical_fx64018 60085–60114 ———
18430kill_cast_wizard_spires42294 60085–60114 ———
19181kill_cast_wuoshi_choking_vines_aoe43900 60085–60114 ———
19182kill_cast_wuoshi_fire_and_ice_aoe43901 60085–60114 ———
19183kill_cast_wuoshi_tree_morph43902 60085–60114 ———
23850kill_cast_wurm_breath52677 60085–60114 ———
23851kill_cast_wurm_crush_blast52678 60085–60114 ———
23852kill_cast_wurm_inhale52679 60085–60114 ———
23794kill_cast_wyvern_breath52613 60085–60114 ———
30065kill_cast_wyvern_fire_breath8454137 60085–60114 ———
23795kill_cast_wyvern_inhale52614 60085–60114 ———
30066kill_cast_wyvern_poison_breath8454138 60085–60114 ———
25098kill_cast_yelinak_ice_breath55546 60085–60114 ———
6513kill_cast_zombie_scare38987 1–843 ———
19184kill_cast_zombie_scare43903 60085–60114 ———
5998kill_cchains_resultchains_snd36702 1–843 ———
19185kill_cchains_resultchains_snd43904 60085–60114 ———
5999kill_cchains_sing_snd36703 1–843 ———
19186kill_cchains_sing_snd43905 60085–60114 ———
6081kill_cf_coinsfall_snd37025 1–843 ———
19191kill_cf_coinsfall_snd43910 60085–60114 ———
6077kill_cf_coins_bounce_background_snd37021 1–843 ———
19187kill_cf_coins_bounce_background_snd43906 60085–60114 ———
6078kill_cf_coins_bounce_bkgrnd_short_snd37022 1–843 ———
19188kill_cf_coins_bounce_bkgrnd_short_snd43907 60085–60114 ———
6079kill_cf_coins_lots_snd37023 1–843 ———
19189kill_cf_coins_lots_snd43908 60085–60114 ———
6080kill_cf_coins_many_snd37024 1–843 ———
19190kill_cf_coins_many_snd43909 60085–60114 ———
26714kill_ch59165 60085–60114 ———
30112kill_channeler_golem_attack8454312 60085–60114 ———
30113kill_channeler_golem_attack_018454313 60085–60114 ———
30114kill_channeler_golem_attack_028454314 60085–60114 ———
30115kill_channeler_golem_attack_038454315 60085–60114 ———
30116kill_channeler_golem_cast8454316 60085–60114 ———
30117kill_channeler_golem_combat_enter8454317 60085–60114 ———
30118kill_channeler_golem_combat_exit8454318 60085–60114 ———
30119kill_channeler_golem_dead_enter8454319 60085–60114 ———
30120kill_channeler_golem_footsteps8454320 60085–60114 ———
30121kill_channeler_golem_idle_028454321 60085–60114 ———
30122kill_channeler_golem_ouch8454322 60085–60114 ———
30123kill_channeler_golem_summon8454323 60085–60114 ———
30124kill_channeler_golem_swim8454324 60085–60114 ———
30818kill_channel_barrier8468407 60085–60114 ———
4376kill_charge34183 1–843 ———
19192kill_charge43911 60085–60114 ———
27097kill_chargeup60802 60085–60114 ———
27098kill_chargeup_enter60803 60085–60114 ———
27099kill_chargeup_exit60804 60085–60114 ———
27100kill_chargeup_idle60805 60085–60114 ———
4724kill_charge_burst_snd34594 1–843 ———
19193kill_charge_burst_snd43912 60085–60114 ———
23158kill_charge_mouth_fx51319 60085–60114 ———
28106kill_charge_of_silence64589 60085–60114 ———
4725kill_charge_rumble_snd34595 1–843 ———
19194kill_charge_rumble_snd43913 60085–60114 ———
5575kill_charge_up35735 1–843 ———
19195kill_charge_up43914 60085–60114 ———
4726kill_charge_whoosh_snd34596 1–843 ———
19196kill_charge_whoosh_snd43915 60085–60114 ———
5196kill_charm_cast_snd35191 1–843 ———
19197kill_charm_cast_snd43916 60085–60114 ———
5197kill_charm_flutes_snd35192 1–843 ———
19198kill_charm_flutes_snd43917 60085–60114 ———
21988kill_cha_beam_blast048762 60085–60114 ———
21989kill_cha_beam_blast148763 60085–60114 ———
21990kill_cha_beam_blast248764 60085–60114 ———
21991kill_cha_beam_blast_up48765 60085–60114 ———
3560kill_cheer32958 1–843 ———
19199kill_cheer43918 60085–60114 ———
5131kill_chimney0135083 1–843 ———
19200kill_chimney0143919 60085–60114 ———
25577kill_chop_ground_digging56881 60085–60114 ———
25578kill_chop_ground_success56882 60085–60114 ———
30852kill_chrono_tear_beam_fx8469576 60085–60114 ———
30541kill_chr_bolgin_rx_drinking_018456557 60085–60114 ———
30542kill_chr_bolgin_rx_idle8456558 60085–60114 ———
30543kill_chr_evil_butterfly_attack_018456559 60085–60114 ———
30544kill_chr_evil_butterfly_ouch_018456560 60085–60114 ———
30545kill_chr_evil_butterfly_wing_flap_018456561 60085–60114 ———
30546kill_chr_evil_butterly_dodge8456562 60085–60114 ———
30547kill_chr_horde_dragon_ouch_018456563 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.