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
11707result_napalm16913 60085–60114 ———
11752result_napalm_aoe17057 60085–60114 ———
2646result_natures_growth3423 1–843 ———
7337result_natures_growth3423 60085–60114 ———
29617result_nature_heal_p2p96426 60085–60114 ———
2574result_nature_res3226 1–843 ———
7278result_nature_res3226 60085–60114 ———
11852result_nature_storm17372 60085–60114 ———
28377result_nayad_blood_essence_p2p65862 60085–60114 ———
7911result_necromancer_hand_skulls10542 60085–60114 ———
29243result_necro_lightning_beam_p2p90584 60085–60114 ———
12026result_neg_flux17797 60085–60114 ———
12027result_neg_flux_storm17798 60085–60114 ———
11661result_netted16821 60085–60114 ———
28630result_nexus_crystal_reform_p2p66824 60085–60114 ———
28355result_nexus_powerup65817 60085–60114 ———
28356result_nexus_switch_buff_wisp_p2p65818 60085–60114 ———
28357result_nexus_switch_lendiniara_p2p65819 60085–60114 ———
28899result_nightmare_explode74006 60085–60114 ———
2737result_notes_gathering3788 1–843 ———
7398result_notes_gathering3788 60085–60114 ———
29300result_notes_interrupted93279 60085–60114 ———
2772result_notes_spiral_chains3859 1–843 ———
7415result_notes_spiral_chains3859 60085–60114 ———
11825result_notes_spiral_frenzy17284 60085–60114 ———
2738result_notes_spiral_off3789 1–843 ———
7399result_notes_spiral_off3789 60085–60114 ———
2777result_notes_tube_wavey3870 1–843 ———
7420result_notes_tube_wavey3870 60085–60114 ———
2258result_note_blast2815 1–843 ———
7220result_note_blast2815 60085–60114 ———
2243result_note_circle2794 1–843 ———
7206result_note_circle2794 60085–60114 ———
2736result_note_swarm3787 1–843 ———
7397result_note_swarm3787 60085–60114 ———
2554result_noxious_oozing_shield_buff3197 1–843 ———
7271result_noxious_oozing_shield_buff3197 60085–60114 ———
12426result_nuke_blast18712 60085–60114 ———
14745result_object_sparkles_black24000 60085–60114 ———
11872result_object_sparkles_blue17431 60085–60114 ———
14746result_object_sparkles_gold24001 60085–60114 ———
11873result_object_sparkles_green17432 60085–60114 ———
14747result_object_sparkles_pink24002 60085–60114 ———
14748result_object_sparkles_purple24003 60085–60114 ———
11874result_object_sparkles_red17433 60085–60114 ———
11875result_object_sparkles_white17434 60085–60114 ———
14121result_object_sparkles_white_down22266 60085–60114 ———
12523result_octopus_cannon_p2p18916 60085–60114 ———
12524result_octopus_splat_grab18917 60085–60114 ———
1601result_offering_of_vitae1909 1–843 ———
7025result_offering_of_vitae1909 60085–60114 ———
1639result_offering_of_vitae_21947 1–843 ———
7037result_offering_of_vitae_21947 60085–60114 ———
29074result_orange_fire_bones81225 60085–60114 ———
11704result_orange_glow16904 60085–60114 ———
1880result_ot_lifetap2229 1–843 ———
7094result_ot_lifetap2229 60085–60114 ———
17441result_oxygen_tunnel32496 60085–60114 ———
10903result_p2p_lightning_bolts15009 60085–60114 ———
7877result_paladin_shoulder_streamers10376 60085–60114 ———
11119result_pants_off15794 60085–60114 ———
16766result_paper_scatter29760 60085–60114 ———
13715result_paper_toss_p2p21396 60085–60114 ———
3344result_pestilence6410 1–843 ———
7565result_pestilence6410 60085–60114 ———
2582result_petrify_stun_control3237 1–843 ———
7285result_petrify_stun_control3237 60085–60114 ———
2937result_pet_victory4520 1–843 ———
7471result_pet_victory4520 60085–60114 ———
1073result_phoenix_descending1314 1–843 ———
6824result_phoenix_descending1314 60085–60114 ———
1060result_phoenix_rising1300 1–843 ———
6818result_phoenix_rising1300 60085–60114 ———
7606result_pickpocket7011 60085–60114 ———
11406result_pie_splat16430 60085–60114 ———
12427result_pillar_blast18713 60085–60114 ———
12428result_pillar_slam18714 60085–60114 ———
580result_placeholder505 1–843 ———
6743result_placeholder505 60085–60114 ———
7593result_plane_shift6849 60085–60114 ———
11075result_plant_filaments15685 60085–60114 ———
12529result_plasma_bolt_p2p18933 60085–60114 ———
29158result_player_bonfire84046 60085–60114 ———
29028result_player_horns79976 60085–60114 ———
12602result_poisoned19146 60085–60114 ———
1255result_poison_breath1496 1–843 ———
6901result_poison_breath1496 60085–60114 ———
1758result_poison_cloud2073 1–843 ———
7066result_poison_cloud2073 60085–60114 ———
2826result_poison_cloud_aoe4032 1–843 ———
7434result_poison_cloud_aoe4032 60085–60114 ———
11867result_poison_cloud_explosion17420 60085–60114 ———
7610result_poison_cysts7104 60085–60114 ———
1280result_poison_cysts_blast1521 1–843 ———
6907result_poison_cysts_blast1521 60085–60114 ———
1256result_poison_cysts_growing1497 1–843 ———
6902result_poison_cysts_growing1497 60085–60114 ———
1341result_poison_cysts_growing_giant1593 1–843 ———
6944result_poison_cysts_growing_giant1593 60085–60114 ———
11081result_poison_cysts_popping15704 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.