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
22743kill_zepplin_idle50368 60085–60114 ———
22744kill_zepplin_jump50369 60085–60114 ———
22745kill_zepplin_land50370 60085–60114 ———
22746kill_zepplin_run50371 60085–60114 ———
22747kill_zepplin_walk50372 60085–60114 ———
30725kill_zipline_idle8464392 60085–60114 ———
30972kill_zipline_run8474308 60085–60114 ———
30973kill_zipline_walk8474309 60085–60114 ———
30984kill_zombie_bone_cyclone_gather_fx8475209 60085–60114 ———
27629kill_zombie_eat62846 60085–60114 ———
24433kill_zombie_feeding_fx53953 60085–60114 ———
31606kill_zombie_fem_vox_attack8491587 60085–60114 ———
31607kill_zombie_fem_vox_death8491588 60085–60114 ———
31608kill_zombie_fem_vox_idle8491589 60085–60114 ———
31609kill_zombie_fem_vox_long8491590 60085–60114 ———
31610kill_zombie_fem_vox_ouch8491591 60085–60114 ———
27631kill_zombie_sleep62891 60085–60114 ———
27632kill_zombie_sleep_exit62892 60085–60114 ———
31678kill__1h_crush_attack8495177 60085–60114 ———
31679kill__1h_crush_attack018495178 60085–60114 ———
31680kill__1h_crush_attack028495179 60085–60114 ———
31681kill__1h_crush_attack038495180 60085–60114 ———
31682kill__1h_crush_enter8495181 60085–60114 ———
31683kill__1h_crush_exit8495182 60085–60114 ———
31684kill__1h_crush_idle8495183 60085–60114 ———
31685kill__1h_pierce_attack8495184 60085–60114 ———
31686kill__1h_pierce_attack018495185 60085–60114 ———
31687kill__1h_pierce_attack028495186 60085–60114 ———
31688kill__1h_pierce_attack038495187 60085–60114 ———
31689kill__1h_pierce_enter8495188 60085–60114 ———
31690kill__1h_pierce_exit8495189 60085–60114 ———
31691kill__1h_pierce_idle8495190 60085–60114 ———
31692kill__1h_sword_attack8495191 60085–60114 ———
31693kill__1h_sword_attack018495192 60085–60114 ———
31694kill__1h_sword_attack028495193 60085–60114 ———
31695kill__1h_sword_attack038495194 60085–60114 ———
31696kill__1h_sword_enter8495195 60085–60114 ———
31697kill__1h_sword_exit8495196 60085–60114 ———
31698kill__1h_sword_idle8495197 60085–60114 ———
31699kill__2h_sword_attack8495198 60085–60114 ———
31700kill__2h_sword_attack018495199 60085–60114 ———
31701kill__2h_sword_attack028495200 60085–60114 ———
31702kill__2h_sword_attack038495201 60085–60114 ———
31703kill__2h_sword_enter8495202 60085–60114 ———
31704kill__2h_sword_exit8495203 60085–60114 ———
31705kill__2h_sword_idle8495204 60085–60114 ———
31706kill__attack8495205 60085–60114 ———
31707kill__attack018495206 60085–60114 ———
31708kill__attack028495207 60085–60114 ———
31709kill__attack038495208 60085–60114 ———
27775kill__combat_enter63525 60085–60114 ———
27776kill__combat_exit63526 60085–60114 ———
31710kill__combat_idle8495209 60085–60114 ———
27780kill__combat_idle0163547 60085–60114 ———
27781kill__combat_idle0263548 60085–60114 ———
30043kill__converse8454100 60085–60114 ———
30044kill__converse018454101 60085–60114 ———
30045kill__converse028454102 60085–60114 ———
26689kill__dodge_backhand59110 60085–60114 ———
26690kill__dodge_down59111 60085–60114 ———
26691kill__dodge_forehand59112 60085–60114 ———
26692kill__dodge_thrust59113 60085–60114 ———
27571kill__dont_use_dead62552 60085–60114 ———
27572kill__dont_use_dead_enter62553 60085–60114 ———
31711kill__dual_wield_attack8495210 60085–60114 ———
31712kill__dual_wield_attack018495211 60085–60114 ———
31713kill__dual_wield_attack028495212 60085–60114 ———
31714kill__dual_wield_attack038495213 60085–60114 ———
31715kill__dual_wield_enter8495214 60085–60114 ———
31716kill__dual_wield_exit8495215 60085–60114 ———
31717kill__dual_wield_idle8495216 60085–60114 ———
30046kill__habitat018454103 60085–60114 ———
30047kill__habitat028454104 60085–60114 ———
30048kill__habitat038454105 60085–60114 ———
26471kill__idle0158421 60085–60114 ———
26472kill__idle0258422 60085–60114 ———
27521kill__idle0362434 60085–60114 ———
30757kill__idle048465616 60085–60114 ———
26693kill__knockeddowntoknees59114 60085–60114 ———
26694kill__knockedtoback59115 60085–60114 ———
26695kill__knockedtoback_getup59116 60085–60114 ———
26696kill__knockedtoback_onbackidle59117 60085–60114 ———
26813kill__left_eye_wide59535 60085–60114 ———
26697kill__ouch59118 60085–60114 ———
26698kill__ouch_backhand59119 60085–60114 ———
26699kill__ouch_down59120 60085–60114 ———
26700kill__ouch_forehand59121 60085–60114 ———
26701kill__ouch_thrust59122 60085–60114 ———
31718kill__pugilist_attack8495217 60085–60114 ———
31719kill__pugilist_attack018495218 60085–60114 ———
31720kill__pugilist_attack028495219 60085–60114 ———
31721kill__pugilist_attack038495220 60085–60114 ———
31722kill__pugilist_enter8495221 60085–60114 ———
31723kill__pugilist_exit8495222 60085–60114 ———
31724kill__pugilist_idle8495223 60085–60114 ———
26814kill__right_eye_wide59536 60085–60114 ———
30173kill__skyshrine_drake_idle018454477 60085–60114 ———
31725kill__wyvern_mount_1h_sword_enter8495224 60085–60114 ———
31726kill__wyvern_mount_1h_sword_exit8495225 60085–60114 ———
31727kill__wyvern_mount_1h_sword_idle8495226 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.