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
21584kill_roxbury46996 60085–60114 ———
3745kill_royalwave33283 1–843 ———
20189kill_royalwave44918 60085–60114 ———
21835kill_royal_wave_short48304 60085–60114 ———
28032kill_ro_death_portal64185 60085–60114 ———
28033kill_ro_sun_beam64186 60085–60114 ———
5519kill_rt_drone_snd35671 1–843 ———
20190kill_rt_drone_snd44919 60085–60114 ———
5520kill_rt_tune_snd35672 1–843 ———
20191kill_rt_tune_snd44920 60085–60114 ———
3746kill_rude33284 1–843 ———
20192kill_rude44921 60085–60114 ———
27054kill_rumble_shake60591 60085–60114 ———
31013kill_rummage8477378 60085–60114 ———
30382kill_rummage_018455107 60085–60114 ———
30383kill_rummage_028455108 60085–60114 ———
31596kill_rum_guzzle_idle8491086 60085–60114 ———
3747kill_run33285 1–843 ———
17544kill_run33285 60085–60114 ———
21806kill_run0148014 60085–60114 ———
21807kill_run0248015 60085–60114 ———
5146kill_runes35103 1–843 ———
20193kill_runes44923 60085–60114 ———
22186kill_runes_shissar149159 60085–60114 ———
22187kill_runes_shissar249160 60085–60114 ———
22188kill_runes_shissar349161 60085–60114 ———
22189kill_runes_shissar449162 60085–60114 ———
22190kill_runes_shissar549163 60085–60114 ———
22191kill_runes_shissar649164 60085–60114 ———
22192kill_runes_shissar749165 60085–60114 ———
22193kill_runes_shissar849166 60085–60114 ———
3748kill_rune_fire_orbiting33286 1–843 ———
17545kill_rune_fire_orbiting33286 60085–60114 ———
30426kill_runic_boundary_fx8455433 60085–60114 ———
30399kill_runic_fx8455235 60085–60114 ———
30427kill_runic_shield_fx8455434 60085–60114 ———
30428kill_runic_storm_fx8455435 60085–60114 ———
18422kill_run_0341846 60085–60114 ———
30384kill_run_crazyarms8455109 60085–60114 ———
18423kill_run_down_idle41847 60085–60114 ———
25802kill_run_ground57518 60085–60114 ———
22788kill_run_sound50471 60085–60114 ———
31383kill_run_strafe_left8484533 60085–60114 ———
31384kill_run_strafe_right8484534 60085–60114 ———
21860kill_run_tail48430 60085–60114 ———
21960kill_run_tail_cloak48712 60085–60114 ———
24927kill_run_temp55068 60085–60114 ———
18424kill_run_up_idle41848 60085–60114 ———
26549kill_sacrifice58711 60085–60114 ———
3749kill_sad33287 1–843 ———
20204kill_sad44934 60085–60114 ———
3750kill_salute33288 1–843 ———
20205kill_salute44935 60085–60114 ———
4517kill_salute_freeport34328 1–843 ———
20206kill_salute_freeport44936 60085–60114 ———
5044kill_sanc_castlp_snd34934 1–843 ———
20207kill_sanc_castlp_snd44937 60085–60114 ———
4842kill_sanc_pulse_01_sound34716 1–843 ———
20208kill_sanc_pulse_01_sound44938 60085–60114 ———
4843kill_sanc_pulse_02_sound34717 1–843 ———
20209kill_sanc_pulse_02_sound44939 60085–60114 ———
3751kill_sarcasm33289 1–843 ———
20210kill_sarcasm44940 60085–60114 ———
22201kill_sarnak_1h_crush_attack49199 60085–60114 ———
22202kill_sarnak_1h_crush_attack0249200 60085–60114 ———
22203kill_sarnak_1h_crush_attack0349201 60085–60114 ———
22122kill_sarnak_1h_crush_enter49048 60085–60114 ———
22055kill_sarnak_1h_crush_idle48931 60085–60114 ———
22204kill_sarnak_1h_pierce_attack49202 60085–60114 ———
22123kill_sarnak_1h_pierce_enter49049 60085–60114 ———
22056kill_sarnak_1h_pierce_idle48932 60085–60114 ———
22124kill_sarnak_1h_sword_attack49050 60085–60114 ———
22231kill_sarnak_1h_sword_attack0149236 60085–60114 ———
22125kill_sarnak_1h_sword_attack0249051 60085–60114 ———
22126kill_sarnak_1h_sword_attack0349052 60085–60114 ———
22127kill_sarnak_1h_sword_death_blow49053 60085–60114 ———
22128kill_sarnak_1h_sword_death_blow0149054 60085–60114 ———
22280kill_sarnak_1h_sword_dodge_backhand49370 60085–60114 ———
22281kill_sarnak_1h_sword_dodge_down49371 60085–60114 ———
22282kill_sarnak_1h_sword_dodge_forehand49372 60085–60114 ———
22283kill_sarnak_1h_sword_dodge_thrust49373 60085–60114 ———
22129kill_sarnak_1h_sword_enter49055 60085–60114 ———
22130kill_sarnak_1h_sword_exit49056 60085–60114 ———
22057kill_sarnak_1h_sword_idle48933 60085–60114 ———
22284kill_sarnak_1h_sword_ouch_backhand49374 60085–60114 ———
22285kill_sarnak_1h_sword_ouch_down49375 60085–60114 ———
22286kill_sarnak_1h_sword_ouch_forehand49376 60085–60114 ———
22287kill_sarnak_1h_sword_ouch_thrust49377 60085–60114 ———
22288kill_sarnak_1h_sword_parry_backhand49378 60085–60114 ———
22289kill_sarnak_1h_sword_parry_down49379 60085–60114 ———
22290kill_sarnak_1h_sword_parry_forehand49380 60085–60114 ———
22291kill_sarnak_1h_sword_parry_thrust49381 60085–60114 ———
22131kill_sarnak_1h_thrown_enter49057 60085–60114 ———
22058kill_sarnak_1h_thrown_idle48934 60085–60114 ———
22132kill_sarnak_1h_wand_enter49058 60085–60114 ———
22133kill_sarnak_1h_wand_idle49059 60085–60114 ———
22143kill_sarnak_2h_sword_attack49089 60085–60114 ———
22144kill_sarnak_2h_sword_attack0149090 60085–60114 ———
22145kill_sarnak_2h_sword_attack0249091 60085–60114 ———
22292kill_sarnak_2h_sword_dodge_down49382 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.