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
18446kill_result_laser_p2p42600 60085–60114 ———
21904kill_result_lava_burst48547 60085–60114 ———
22603kill_result_lava_column49989 60085–60114 ———
31409kill_result_lava_heal8485033 60085–60114 ———
31374kill_result_lava_melt8484100 60085–60114 ———
31375kill_result_lava_melt_puddle8484101 60085–60114 ———
31376kill_result_lava_reform8484102 60085–60114 ———
23191kill_result_leaf_blow_glow51388 60085–60114 ———
24129kill_result_leash_p2p53319 60085–60114 ———
24134kill_result_leash_p2p_static53331 60085–60114 ———
21696kill_result_leaves_sticky47776 60085–60114 ———
23865kill_result_lich_evil_drain_p2p52722 60085–60114 ———
23866kill_result_lich_good_drain_p2p52723 60085–60114 ———
27266kill_result_lifebringer_glade61567 60085–60114 ———
5791kill_result_lifetap36015 1–843 ———
18085kill_result_lifetap36015 60085–60114 ———
25551kill_result_lifetap_heart_p2p56844 60085–60114 ———
27332kill_result_life_statue_fx61770 60085–60114 ———
3733kill_result_lightning33269 1–843 ———
17533kill_result_lightning33269 60085–60114 ———
4260kill_result_lightning_bolt134066 1–843 ———
17610kill_result_lightning_bolt134066 60085–60114 ———
4274kill_result_lightning_bolt1_snd34081 1–843 ———
20165kill_result_lightning_bolt1_snd44894 60085–60114 ———
4264kill_result_lightning_bolt234071 1–843 ———
17614kill_result_lightning_bolt234071 60085–60114 ———
4265kill_result_lightning_bolt334072 1–843 ———
17615kill_result_lightning_bolt334072 60085–60114 ———
23300kill_result_lightning_bolt_blast51642 60085–60114 ———
18433kill_result_lightning_bolt_sub142422 60085–60114 ———
18434kill_result_lightning_bolt_sub242423 60085–60114 ———
22773kill_result_lightning_cage50431 60085–60114 ———
23478kill_result_lightning_cage_blast52109 60085–60114 ———
27116kill_result_lightning_floor_blast_blue60845 60085–60114 ———
27124kill_result_lightning_floor_blast_purple60865 60085–60114 ———
27117kill_result_lightning_floor_blast_red60846 60085–60114 ———
5256kill_result_lightning_shimmer35275 1–843 ———
17899kill_result_lightning_shimmer35275 60085–60114 ———
26831kill_result_light_explode59702 60085–60114 ———
24599kill_result_light_flare_p2p54332 60085–60114 ———
22266kill_result_light_slam_aoe49324 60085–60114 ———
5910kill_result_lioness_running36495 1–843 ———
18170kill_result_lioness_running36495 60085–60114 ———
4444kill_result_lion_attacking34251 1–843 ———
17686kill_result_lion_attacking34251 60085–60114 ———
6529kill_result_lion_paw_trails39097 1–843 ———
18355kill_result_lion_paw_trails39097 60085–60114 ———
4445kill_result_lion_roaring34252 1–843 ———
17687kill_result_lion_roaring34252 60085–60114 ———
4261kill_result_lion_spirit34067 1–843 ———
17611kill_result_lion_spirit34067 60085–60114 ———
3734kill_result_loot33270 1–843 ———
17534kill_result_loot33270 60085–60114 ———
3735kill_result_loot_ash33271 1–843 ———
17535kill_result_loot_ash33271 60085–60114 ———
28126kill_result_lucan_essense_suck_p2p64699 60085–60114 ———
25714kill_result_lucan_soul_suck_p2p57252 60085–60114 ———
5880kill_result_lucks_bite36373 1–843 ———
18153kill_result_lucks_bite36373 60085–60114 ———
25776kill_result_luclin_chunk_slam57377 60085–60114 ———
26495kill_result_lumpy_spit_p2p58511 60085–60114 ———
27229kill_result_magic_barrier_beam_p2p61342 60085–60114 ———
31003kill_result_magic_bullet_p2p8476594 60085–60114 ———
31044kill_result_magic_glass_shatter8479790 60085–60114 ———
30951kill_result_magic_mine_p2p8472653 60085–60114 ———
31377kill_result_magma_ball_p2p8484103 60085–60114 ———
18459kill_result_mana_burn42652 60085–60114 ———
18398kill_result_mana_channeling39748 60085–60114 ———
5911kill_result_mana_cloak36496 1–843 ———
18171kill_result_mana_cloak36496 60085–60114 ———
23301kill_result_mana_drain_p2p51643 60085–60114 ———
24964kill_result_mark_of_doom55212 60085–60114 ———
23583kill_result_meditate_rings52288 60085–60114 ———
23395kill_result_medusa_snake_attack_p2p51913 60085–60114 ———
23389kill_result_medusa_snake_strike51900 60085–60114 ———
22608kill_result_melee_lifetap_p2p50008 60085–60114 ———
22842kill_result_melee_swipe50609 60085–60114 ———
22843kill_result_melee_wild_swipe50610 60085–60114 ———
23175kill_result_melt51352 60085–60114 ———
4401kill_result_mend_synth_sound34208 1–843 ———
20166kill_result_mend_synth_sound44895 60085–60114 ———
22559kill_result_mesh_attack49869 60085–60114 ———
23457kill_result_mesh_blast52059 60085–60114 ———
30892kill_result_mesh_boiling_energy8470830 60085–60114 ———
30773kill_result_mesh_explode_dark8465873 60085–60114 ———
3736kill_result_mesmerize33272 1–843 ———
17536kill_result_mesmerize33272 60085–60114 ———
4750kill_result_metal_rusty_forced_shader34623 1–843 ———
17789kill_result_metal_rusty_forced_shader34623 60085–60114 ———
22819kill_result_meteor_storm50564 60085–60114 ———
22840kill_result_misty_snare50601 60085–60114 ———
5983kill_result_mist_clingy36678 1–843 ———
18215kill_result_mist_clingy36678 60085–60114 ———
21644kill_result_mist_clingy_sub47395 60085–60114 ———
31132kill_result_molotov_cocktail_p2p8482479 60085–60114 ———
18678kill_result_monk_fist_rings43161 60085–60114 ———
31451kill_result_moonlight_beam_p2p8485992 60085–60114 ———
6162kill_result_morph_to_dragon37339 1–843 ———
18276kill_result_morph_to_dragon37339 60085–60114 ———
6243kill_result_morph_to_elf37556 1–843 ———
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.