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
26811kill_lower_lip_right_down59517 60085–60114 ———
5988kill_lr_castlion_snd36689 1–843 ———
19837kill_lr_castlion_snd44565 60085–60114 ———
4656kill_lr_growl_snd34483 1–843 ———
19838kill_lr_growl_snd44566 60085–60114 ———
6011kill_lt_suck2_snd36724 1–843 ———
19839kill_lt_suck2_snd44567 60085–60114 ———
6012kill_lt_suck_snd36725 1–843 ———
19840kill_lt_suck_snd44568 60085–60114 ———
25715kill_lucan_cast_enter57260 60085–60114 ———
25716kill_lucan_cast_exit57261 60085–60114 ———
25717kill_lucan_cast_idle57262 60085–60114 ———
5723kill_lucan_lightning_bolt35894 1–843 ———
19841kill_lucan_lightning_bolt44569 60085–60114 ———
27779kill_lure_fx63540 60085–60114 ———
19842kill_lvlup_achievment_snd44570 60085–60114 ———
23603kill_lynx_backup52335 60085–60114 ———
23604kill_lynx_fall52336 60085–60114 ———
23605kill_lynx_idle52337 60085–60114 ———
23661kill_lynx_idle0152419 60085–60114 ———
23606kill_lynx_jump52338 60085–60114 ———
23607kill_lynx_jump_substitute52339 60085–60114 ———
23608kill_lynx_land52340 60085–60114 ———
23609kill_lynx_long_fall52341 60085–60114 ———
23610kill_lynx_run52342 60085–60114 ———
23611kill_lynx_turn_left52343 60085–60114 ———
23612kill_lynx_turn_right52344 60085–60114 ———
23613kill_lynx_walk52345 60085–60114 ———
4614kill_m34440 1–843 ———
19843kill_m44571 60085–60114 ———
27052kill_mace_blast60588 60085–60114 ———
23455kill_mage_combo_trigger52057 60085–60114 ———
30806kill_magic_shield8467739 60085–60114 ———
30340kill_male_female_bixie_attack8454943 60085–60114 ———
30341kill_male_female_bixie_attack_018454944 60085–60114 ———
30342kill_male_female_bixie_attack_028454945 60085–60114 ———
30343kill_male_female_bixie_attack_038454946 60085–60114 ———
30344kill_male_female_bixie_charge_up8454947 60085–60114 ———
30345kill_male_female_bixie_combat_enter8454948 60085–60114 ———
30346kill_male_female_bixie_combat_exit8454949 60085–60114 ———
30347kill_male_female_bixie_dead_enter8454950 60085–60114 ———
30348kill_male_female_bixie_dodge8454951 60085–60114 ———
30349kill_male_female_bixie_dodge_backhand8454952 60085–60114 ———
30350kill_male_female_bixie_dodge_forehand8454953 60085–60114 ———
30351kill_male_female_bixie_dual_wield_attack8454954 60085–60114 ———
30352kill_male_female_bixie_dual_wield_attack_038454955 60085–60114 ———
30353kill_male_female_bixie_dual_wield_dodge_ba8454956 60085–60114 ———
30354kill_male_female_bixie_dual_wield_enter8454957 60085–60114 ———
30355kill_male_female_bixie_dual_wield_exit8454958 60085–60114 ———
30356kill_male_female_bixie_dual_wield_ouch_bac8454959 60085–60114 ———
30357kill_male_female_bixie_fs8454960 60085–60114 ———
30358kill_male_female_bixie_knock_back8454961 60085–60114 ———
30359kill_male_female_bixie_knock_back_get_up8454962 60085–60114 ———
30360kill_male_female_bixie_knock_to_knees8454963 60085–60114 ———
30361kill_male_female_bixie_magic_cast_end8454964 60085–60114 ———
30362kill_male_female_bixie_magic_cast_start8454965 60085–60114 ———
30363kill_male_female_bixie_ouch8454966 60085–60114 ———
30364kill_male_female_bixie_ouch_backhand8454967 60085–60114 ———
30365kill_male_female_bixie_ouch_forehand8454968 60085–60114 ———
30366kill_male_female_bixie_shield_shove8454969 60085–60114 ———
30367kill_male_female_bixie_whirling_attack8454970 60085–60114 ———
30368kill_male_female_bixie_wild_swing8454971 60085–60114 ———
30369kill_male_female_bixie_wing_flap8454972 60085–60114 ———
30581kill_mana_drain_ring8457041 60085–60114 ———
22117kill_manipulate49030 60085–60114 ———
30137kill_manipulate_idle8454399 60085–60114 ———
19848kill_mcp_shield44576 60085–60114 ———
5989kill_mc_castend_snd36690 1–843 ———
19844kill_mc_castend_snd44572 60085–60114 ———
5990kill_mc_castopen_snd36691 1–843 ———
19845kill_mc_castopen_snd44573 60085–60114 ———
19846kill_mc_manna_channel_snd44574 60085–60114 ———
5991kill_mc_resultwhip_snd36692 1–843 ———
19847kill_mc_resultwhip_snd44575 60085–60114 ———
24942kill_measure55145 60085–60114 ———
22571kill_meditate49924 60085–60114 ———
5917kill_mediumdamage_enter36508 1–843 ———
19849kill_mediumdamage_enter44577 60085–60114 ———
5936kill_mediumdamage_idle36552 1–843 ———
19850kill_mediumdamage_idle44578 60085–60114 ———
5214kill_metalworking_failure35209 1–843 ———
19851kill_metalworking_failure44579 60085–60114 ———
4711kill_metalworking_idle34578 1–843 ———
19852kill_metalworking_idle44580 60085–60114 ———
5215kill_metalworking_success35210 1–843 ———
19853kill_metalworking_success44581 60085–60114 ———
26716kill_mid59185 60085–60114 ———
26731kill_mid_brows_down59262 60085–60114 ———
26732kill_mid_brows_up59263 60085–60114 ———
31086kill_mining8481675 60085–60114 ———
5456kill_mining_digging35579 1–843 ———
18010kill_mining_digging35579 60085–60114 ———
5457kill_mining_success35580 1–843 ———
18011kill_mining_success35580 60085–60114 ———
22575kill_miragul_puzzle_blue_flasher49941 60085–60114 ———
22576kill_miragul_puzzle_blue_runes49942 60085–60114 ———
22577kill_miragul_puzzle_green_flasher49943 60085–60114 ———
22578kill_miragul_puzzle_green_runes49944 60085–60114 ———
22579kill_miragul_puzzle_lightning_orb49945 60085–60114 ———
22580kill_miragul_puzzle_red_flasher49946 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.