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
14164design_light_beam_fx22431 60085–60114 ———
13647design_light_column_grow21206 60085–60114 ———
29812design_light_fuse102899 60085–60114 ———
16233design_light_portal27676 60085–60114 ———
12462design_light_rays18793 60085–60114 ———
29630design_luclin_portal196930 60085–60114 ———
29631design_luclin_portal296931 60085–60114 ———
29632design_luclin_portal396932 60085–60114 ———
29633design_luclin_portal496933 60085–60114 ———
12467design_marr_godly_light18806 60085–60114 ———
12468design_marr_godly_teleport18807 60085–60114 ———
12545design_marr_sword_blast18972 60085–60114 ———
14179design_massive_rock_impact22494 60085–60114 ———
17117design_meditate_fx31181 60085–60114 ———
28814design_mega_aoe_bone_blast69586 60085–60114 ———
13606design_meteor_impact21091 60085–60114 ———
13607design_meteor_target21092 60085–60114 ———
29104design_mine_explode82733 60085–60114 ———
29823design_molasses_pipes_fx103401 60085–60114 ———
29824design_molasses_top_fx103402 60085–60114 ———
14295design_mount_explode22756 60085–60114 ———
13004design_murderball_debuff19850 60085–60114 ———
16801design_music_barrier29894 60085–60114 ———
13125design_mystic_barrier20034 60085–60114 ———
12133design_najena_barrier17994 60085–60114 ———
12143design_najena_electric_water18018 60085–60114 ———
12147design_najena_fire18028 60085–60114 ———
12148design_najena_lightning18029 60085–60114 ———
12149design_najena_poison18030 60085–60114 ———
12150design_najena_portals18031 60085–60114 ———
12151design_najena_snow18032 60085–60114 ———
12152design_najena_water18033 60085–60114 ———
28436design_nayad_essence_beam01_green66082 60085–60114 ———
28437design_nayad_essence_beam01_purple66083 60085–60114 ———
28438design_nayad_essence_beam01_white66084 60085–60114 ———
28439design_nayad_essence_beam01_yellow66085 60085–60114 ———
28440design_nayad_essence_beam02_green66086 60085–60114 ———
28441design_nayad_essence_beam02_purple66087 60085–60114 ———
28442design_nayad_essence_beam02_white66088 60085–60114 ———
28443design_nayad_essence_beam02_yellow66089 60085–60114 ———
28444design_nayad_essence_beam03_green66090 60085–60114 ———
28445design_nayad_essence_beam03_purple66091 60085–60114 ———
28446design_nayad_essence_beam03_white66092 60085–60114 ———
28447design_nayad_essence_beam03_yellow66093 60085–60114 ———
28448design_nayad_essence_beam04_green66094 60085–60114 ———
28449design_nayad_essence_beam04_purple66095 60085–60114 ———
28450design_nayad_essence_beam04_white66096 60085–60114 ———
28451design_nayad_essence_beam04_yellow66097 60085–60114 ———
29515design_necro_buff95139 60085–60114 ———
28579design_necro_fx66379 60085–60114 ———
29516design_necro_ooze_fx195140 60085–60114 ———
29517design_necro_ooze_fx295141 60085–60114 ———
29518design_necro_ooze_fx395142 60085–60114 ———
29519design_necro_ooze_fx495143 60085–60114 ———
11024design_neriak_opera_backdrop_moon15321 60085–60114 ———
11025design_neriak_opera_backdrop_palace15322 60085–60114 ———
11026design_neriak_opera_backdrop_sky15323 60085–60114 ———
11027design_neriak_opera_backdrop_trees15324 60085–60114 ———
28344design_nexus_door_fx_blue65803 60085–60114 ———
28345design_nexus_door_fx_green65804 60085–60114 ———
28346design_nexus_door_fx_red65805 60085–60114 ———
28358design_nexus_main_destruction_fx65830 60085–60114 ———
28361design_nexus_roof_chunk_blast65843 60085–60114 ———
28359design_nexus_side_destruction_fx65831 60085–60114 ———
28347design_nexus_tear0165806 60085–60114 ———
29008design_nexus_tear01_drop79125 60085–60114 ———
28348design_nexus_tear0265807 60085–60114 ———
28349design_nexus_tear0365808 60085–60114 ———
28350design_nexus_tear_energy_beam165809 60085–60114 ———
28351design_nexus_tear_energy_beam265810 60085–60114 ———
28352design_nexus_tear_energy_beam365811 60085–60114 ———
28353design_nexus_tear_energy_beams65812 60085–60114 ———
28354design_nexus_tear_explode65813 60085–60114 ———
28726design_nex_blue_ball_nokill67810 60085–60114 ———
28335design_nex_blue_switch65772 60085–60114 ———
28331design_nex_center_lost_fx65730 60085–60114 ———
28336design_nex_prongs_blast_fx65773 60085–60114 ———
28332design_nex_prongs_fx65731 60085–60114 ———
28337design_nex_prongs_nofx65774 60085–60114 ———
28727design_nex_red_barrier67811 60085–60114 ———
28343design_nex_switch_blast65802 60085–60114 ———
28338design_nex_yellow_switch65775 60085–60114 ———
28383design_nex_yellow_switch_dead65878 60085–60114 ———
16723design_night_eyes29637 60085–60114 ———
15750design_obelisk_broken25926 60085–60114 ———
15752design_obelisk_complete25938 60085–60114 ———
15753design_obelisk_fixed25939 60085–60114 ———
15751design_obelisk_repair125927 60085–60114 ———
15754design_obelisk_repair225940 60085–60114 ———
15758design_obelisk_repair325955 60085–60114 ———
15759design_obelisk_repair425956 60085–60114 ———
14573design_octopus_pet23580 60085–60114 ———
12897design_odus_dome_barrier19713 60085–60114 ———
29520design_oozing95144 60085–60114 ———
16315design_orange_light_beam28057 60085–60114 ———
13339design_orc_footprints20561 60085–60114 ———
16933design_othmir_spirit_rise30648 60085–60114 ———
16279design_oval_warning_zone27924 60085–60114 ———
16344design_oval_warning_zone_blue28163 60085–60114 ———
16345design_oval_warning_zone_gold28164 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.