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
30832kill_result_weapon_appear_grow8468991 60085–60114 ———
30696kill_result_weapon_steal8462784 60085–60114 ———
5431kill_result_weapon_trail_fire35545 1–843 ———
17991kill_result_weapon_trail_fire35545 60085–60114 ———
24266kill_result_weapon_trail_music53601 60085–60114 ———
21570kill_result_weapon_trail_poison46792 60085–60114 ———
5861kill_result_weapon_trail_prism36212 1–843 ———
18143kill_result_weapon_trail_prism36212 60085–60114 ———
28197kill_result_weaving2_wisp65125 60085–60114 ———
28192kill_result_weaving_wisp65094 60085–60114 ———
18406kill_result_webby_canister40450 60085–60114 ———
21942kill_result_webby_root48635 60085–60114 ———
31300kill_result_webby_root_flat8483532 60085–60114 ———
30997kill_result_web_root_flat8476007 60085–60114 ———
21923kill_result_web_shooting_p2p48590 60085–60114 ———
24391kill_result_wellspring_ghosts_attack_p2p53822 60085–60114 ———
4894kill_result_white_radiance34771 1–843 ———
17849kill_result_white_radiance34771 60085–60114 ———
5384kill_result_white_radiance_weapon35491 1–843 ———
17972kill_result_white_radiance_weapon35491 60085–60114 ———
20179kill_result_windrazor44908 60085–60114 ———
5385kill_result_wind_smoke_head35492 1–843 ———
17973kill_result_wind_smoke_head35492 60085–60114 ———
5432kill_result_wind_smoke_p335546 1–843 ———
17992kill_result_wind_smoke_p335546 60085–60114 ———
23127kill_result_wings_grow51242 60085–60114 ———
18711kill_result_wizard_elemental_hands43329 60085–60114 ———
26532kill_result_wl_root_grow_trap58611 60085–60114 ———
6332kill_result_wood_chips38034 1–843 ———
20180kill_result_wood_chips44909 60085–60114 ———
4680kill_result_wood_forced_shader34534 1–843 ———
17765kill_result_wood_forced_shader34534 60085–60114 ———
4705kill_result_wood_roots_growing34570 1–843 ———
17777kill_result_wood_roots_growing34570 60085–60114 ———
4681kill_result_wood_spikes_growing34535 1–843 ———
17766kill_result_wood_spikes_growing34535 60085–60114 ———
6170kill_result_word_of_doom37369 1–843 ———
18281kill_result_word_of_doom37369 60085–60114 ———
6171kill_result_word_of_flame37370 1–843 ———
18282kill_result_word_of_flame37370 60085–60114 ———
6172kill_result_word_of_obedience37371 1–843 ———
18283kill_result_word_of_obedience37371 60085–60114 ———
6173kill_result_word_of_silence37372 1–843 ———
18284kill_result_word_of_silence37372 60085–60114 ———
18432kill_result_wuoshi_tree_morph42376 60085–60114 ———
31079kill_result_zav_lava_barrier_charge_p2p8481396 60085–60114 ———
31286kill_result_zav_lava_statue_charge_p2p8483251 60085–60114 ———
25079kill_result_zek_divine55468 60085–60114 ———
25080kill_result_zek_elemental55469 60085–60114 ———
25081kill_result_zek_noxious55470 60085–60114 ———
30326kill_result_zombie_disintegrate8454863 60085–60114 ———
6511kill_result_zombie_scare38953 1–843 ———
18350kill_result_zombie_scare38953 60085–60114 ———
24627kill_result_zombie_slash54438 60085–60114 ———
6633kill_result_zombie_summon39516 1–843 ———
4407kill_resurrect34214 1–843 ———
20181kill_resurrect44910 60085–60114 ———
21905kill_rhino_backup48548 60085–60114 ———
21916kill_rhino_fall48577 60085–60114 ———
21906kill_rhino_idle48549 60085–60114 ———
21917kill_rhino_jump48578 60085–60114 ———
21907kill_rhino_jump_substitute48550 60085–60114 ———
21918kill_rhino_land48579 60085–60114 ———
21957kill_rhino_long_fall48709 60085–60114 ———
21908kill_rhino_run48551 60085–60114 ———
22054kill_rhino_sprint48930 60085–60114 ———
21958kill_rhino_strafe_left48710 60085–60114 ———
21959kill_rhino_strafe_right48711 60085–60114 ———
21909kill_rhino_turn_left48552 60085–60114 ———
21910kill_rhino_turn_right48553 60085–60114 ———
21911kill_rhino_walk48554 60085–60114 ———
30876kill_rhoen_theer_skyshrine_attack01_kerafyrm8470413 60085–60114 ———
4572kill_righthand_impact34394 1–843 ———
20184kill_righthand_impact44913 60085–60114 ———
26738kill_right_blink59269 60085–60114 ———
26739kill_right_brow_down59270 60085–60114 ———
26740kill_right_brow_up59271 60085–60114 ———
26741kill_right_eye_wide59272 60085–60114 ———
26742kill_right_frown59273 60085–60114 ———
5647kill_right_hand_fist35807 1–843 ———
20182kill_right_hand_fist44911 60085–60114 ———
5648kill_right_hand_relaxed35808 1–843 ———
20183kill_right_hand_relaxed44912 60085–60114 ———
22027kill_ring48870 60085–60114 ———
5219kill_ring_glints35214 1–843 ———
20185kill_ring_glints44914 60085–60114 ———
5220kill_ring_glints235215 1–843 ———
20186kill_ring_glints244915 60085–60114 ———
5221kill_ring_glints_idle35216 1–843 ———
20187kill_ring_glints_idle44916 60085–60114 ———
24985kill_roar55282 60085–60114 ———
31413kill_roar_fx8485037 60085–60114 ———
27053kill_rocky_trail60590 60085–60114 ———
31583kill_rock_dust8489746 60085–60114 ———
26983kill_rock_fx60240 60085–60114 ———
3744kill_rofl33282 1–843 ———
20188kill_rofl44917 60085–60114 ———
25793kill_roll57467 60085–60114 ———
30701kill_roll_barrel8463187 60085–60114 ———
25159kill_roll_it55706 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.