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
12095result_fireworks_foamy_burst17926 60085–60114 ———
12096result_fireworks_rainbow17927 60085–60114 ———
3317result_fireworks_ring6271 1–843 ———
7560result_fireworks_ring6271 60085–60114 ———
12557result_fireworks_rose_petals19020 60085–60114 ———
16786result_fireworks_shamrock_sparkle_burst29808 60085–60114 ———
12518result_fireworks_shinies18905 60085–60114 ———
12568result_fireworks_snowflakes19056 60085–60114 ———
569result_firews493 1–843 ———
6732result_firews493 60085–60114 ———
14671result_fire_arrow_storm23823 60085–60114 ———
16581result_fire_attack_p2p29147 60085–60114 ———
16301result_fire_beam_p2p28011 60085–60114 ———
3020result_fire_blast4718 1–843 ———
7496result_fire_blast4718 60085–60114 ———
2695result_fire_blue_white3679 1–843 ———
7366result_fire_blue_white3679 60085–60114 ———
2768result_fire_dark3849 1–843 ———
7411result_fire_dark3849 60085–60114 ———
29723result_fire_ember_rain99570 60085–60114 ———
1369result_fire_engulf1625 1–843 ———
6952result_fire_engulf1625 60085–60114 ———
13613result_fire_engulfed21105 60085–60114 ———
14736result_fire_engulfed_dark23975 60085–60114 ———
2853result_fire_engulf_aoe4129 1–843 ———
7441result_fire_engulf_aoe4129 60085–60114 ———
14515result_fire_frostfell_candy23363 60085–60114 ———
14516result_fire_frosty_swirls23364 60085–60114 ———
1340result_fire_green1592 1–843 ———
6943result_fire_green1592 60085–60114 ———
2516result_fire_negative3119 1–843 ———
7260result_fire_negative3119 60085–60114 ———
11162result_fire_object15934 60085–60114 ———
2517result_fire_objects3120 1–843 ———
7261result_fire_objects3120 60085–60114 ———
29724result_fire_pillar_slam99571 60085–60114 ———
7619result_fire_purple8179 60085–60114 ———
1311result_fire_ring_green_medium1556 1–843 ———
6918result_fire_ring_green_medium1556 60085–60114 ———
1400result_fire_slam1659 1–843 ———
6957result_fire_slam1659 60085–60114 ———
17041result_fist_counter30950 60085–60114 ———
17042result_fist_pound30951 60085–60114 ———
17043result_fist_pound_blast30952 60085–60114 ———
12615result_fist_rain19183 60085–60114 ———
12352result_flame_burst18517 60085–60114 ———
1553result_flash1860 1–843 ———
6997result_flash1860 60085–60114 ———
1061result_flash11302 1–843 ———
6819result_flash11302 60085–60114 ———
2854result_flash_aoe4130 1–843 ———
7442result_flash_aoe4130 60085–60114 ———
14788result_flash_bomb_appear24132 60085–60114 ———
14757result_flash_bomb_vanish24075 60085–60114 ———
3281result_flash_dragon6066 1–843 ———
9354result_flash_dragon12109 60085–60114 ———
3076result_flash_flood_wave_cross_line4924 1–843 ———
7517result_flash_flood_wave_cross_line4924 60085–60114 ———
3077result_flash_flood_wave_spray4925 1–843 ———
7518result_flash_flood_wave_spray4925 60085–60114 ———
3078result_flash_flood_wave_tube4926 1–843 ———
7519result_flash_flood_wave_tube4926 60085–60114 ———
13614result_flash_heal21106 60085–60114 ———
10846result_flash_weapon_brown14623 60085–60114 ———
16358result_flash_weapon_green28243 60085–60114 ———
10847result_flash_weapon_purple14624 60085–60114 ———
2070result_flash_weapon_red2544 1–843 ———
7116result_flash_weapon_red2544 60085–60114 ———
2095result_flash_weapon_red_min2601 1–843 ———
7136result_flash_weapon_red_min2601 60085–60114 ———
2168result_flash_weapon_sat_blue2707 1–843 ———
7164result_flash_weapon_sat_blue2707 60085–60114 ———
2169result_flash_weapon_sat_red2708 1–843 ———
7165result_flash_weapon_sat_red2708 60085–60114 ———
10848result_flash_weapon_silver14625 60085–60114 ———
11358result_fleas16336 60085–60114 ———
11933result_flesh_peel17559 60085–60114 ———
10775result_flies14023 60085–60114 ———
16247result_floating_chain_root27725 60085–60114 ———
13070result_floor_pie19947 60085–60114 ———
15671result_flowers_spew25631 60085–60114 ———
13334result_flower_trail20550 60085–60114 ———
11865result_fly_breath17412 60085–60114 ———
11866result_fly_swarm17413 60085–60114 ———
3321result_fog6282 1–843 ———
9355result_fog12110 60085–60114 ———
3212result_fogger5573 1–843 ———
7537result_fogger5573 60085–60114 ———
3330result_fog_low6354 1–843 ———
9356result_fog_low12111 60085–60114 ———
3331result_fog_low_small6355 1–843 ———
9357result_fog_low_small12112 60085–60114 ———
3322result_fog_poison6283 1–843 ———
9358result_fog_poison12113 60085–60114 ———
3325result_fog_poison_4x106293 1–843 ———
9359result_fog_poison_4x1012114 60085–60114 ———
10787result_fog_poison_billboards14225 60085–60114 ———
10788result_fog_poison_billboards_small14226 60085–60114 ———
10789result_fog_poison_billboards_thinner14227 60085–60114 ———
3332result_fog_poison_low6356 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.