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
11904eq2_music217487 60085–60114 ———
16221erudite_asteroid_belt27621 60085–60114 ———
16194erudite_book_hover_runes27498 60085–60114 ———
10721erudite_female_2h_sword_wild_swing13817 60085–60114 ———
10737erudite_female_pike_charge_up13853 60085–60114 ———
10738erudite_female_pike_defensive_buff13854 60085–60114 ———
10739erudite_female_pike_offensive_buff13855 60085–60114 ———
29885erudite_powerstaff_enter106364 60085–60114 ———
29886erudite_powerstaff_idle106365 60085–60114 ———
2755es_flutecast_sound3817 1–843 ———
8732es_flutecast_sound11485 60085–60114 ———
2756es_fluteresult_sound3818 1–843 ———
8733es_fluteresult_sound11486 60085–60114 ———
17119ethereal_construct_attack31193 60085–60114 ———
17120ethereal_construct_attack_0131194 60085–60114 ———
17121ethereal_construct_attack_0231195 60085–60114 ———
17122ethereal_construct_attack_0331196 60085–60114 ———
17123ethereal_construct_death_enter31197 60085–60114 ———
17124ethereal_construct_deffensive_buff31198 60085–60114 ———
17125ethereal_construct_fist_catch31199 60085–60114 ———
17126ethereal_construct_footsteps31200 60085–60114 ———
17127ethereal_construct_idle_0131201 60085–60114 ———
17128ethereal_construct_idle_0231202 60085–60114 ———
17118ethereal_construct_idle_base31192 60085–60114 ———
17129ethereal_construct_offensive_buff31203 60085–60114 ———
17130ethereal_construct_ouch31204 60085–60114 ———
17131ethereal_construct_ouch_backhand31205 60085–60114 ———
17132ethereal_construct_ouch_down31206 60085–60114 ———
17133ethereal_construct_ouch_knock_back31207 60085–60114 ———
17134ethereal_construct_ouch_knock_back_get_up31208 60085–60114 ———
17135ethereal_construct_sit_enter31209 60085–60114 ———
17136ethereal_construct_sit_exit31210 60085–60114 ———
17137ethereal_construct_weapon_attack_0131211 60085–60114 ———
17138ethereal_construct_weapon_attack_0331212 60085–60114 ———
17139ethereal_construct_weapon_combat_enter31213 60085–60114 ———
17140ethereal_construct_weapon_combat_exit31214 60085–60114 ———
17141ethereal_construct_weapon_death_enter31215 60085–60114 ———
28454ethereal_construct_weapon_superbuff66101 60085–60114 ———
17142ethereal_construct_weapon_super_buff31216 60085–60114 ———
17143ethereal_construct_wild_swing31217 60085–60114 ———
13710ettin_drink21372 60085–60114 ———
16085evil_bird_backup27121 60085–60114 ———
16086evil_bird_fall27122 60085–60114 ———
16087evil_bird_fly_backup27123 60085–60114 ———
16088evil_bird_fly_climb27124 60085–60114 ———
16089evil_bird_fly_dive27125 60085–60114 ———
16090evil_bird_fly_down27126 60085–60114 ———
16091evil_bird_fly_glide27127 60085–60114 ———
16092evil_bird_fly_glide_left27128 60085–60114 ———
16093evil_bird_fly_glide_right27129 60085–60114 ———
16094evil_bird_fly_idle27130 60085–60114 ———
16095evil_bird_fly_run27131 60085–60114 ———
16096evil_bird_fly_strafe_left27132 60085–60114 ———
16097evil_bird_fly_strafe_right27133 60085–60114 ———
16098evil_bird_fly_turn_left27134 60085–60114 ———
16099evil_bird_fly_turn_right27135 60085–60114 ———
16100evil_bird_fly_up27136 60085–60114 ———
16101evil_bird_fly_walk27137 60085–60114 ———
16102evil_bird_idle27138 60085–60114 ———
16103evil_bird_idle0127139 60085–60114 ———
16104evil_bird_idle0227140 60085–60114 ———
16105evil_bird_idle0327141 60085–60114 ———
16106evil_bird_idle0427142 60085–60114 ———
16379evil_bird_idle0528298 60085–60114 ———
16153evil_bird_idle_egg27326 60085–60114 ———
16107evil_bird_jump27143 60085–60114 ———
16108evil_bird_jump_substitute27144 60085–60114 ———
16109evil_bird_land27145 60085–60114 ———
16110evil_bird_long_fall27146 60085–60114 ———
16111evil_bird_run27147 60085–60114 ———
16112evil_bird_turn_left27148 60085–60114 ———
16113evil_bird_turn_right27149 60085–60114 ———
16114evil_bird_walk27150 60085–60114 ———
28754evil_butterfly_1h_sword_atack0267965 60085–60114 ———
28755evil_butterfly_1h_sword_attack67966 60085–60114 ———
28753evil_butterfly_1h_sword_combat_art_buff67964 60085–60114 ———
28756evil_butterfly_1h_sword_dead67967 60085–60114 ———
28757evil_butterfly_dodge_forehand67969 60085–60114 ———
28758evil_butterfly_dodge_thrust67970 60085–60114 ———
28759evil_butterfly_idle0167971 60085–60114 ———
12991evil_theer_energy_buff19829 60085–60114 ———
1830ew_castlp_snd2147 1–843 ———
8734ew_castlp_snd11487 60085–60114 ———
13838exit21684 60085–60114 ———
29640exit_statue96941 60085–60114 ———
1983explode012402 1–843 ———
8735explode0111488 60085–60114 ———
1984explode022403 1–843 ———
8736explode0211489 60085–60114 ———
1985explode032404 1–843 ———
8737explode0311490 60085–60114 ———
1998explode_big2427 1–843 ———
8738explode_big11491 60085–60114 ———
491explosion289 1–843 ———
8739explosion11492 60085–60114 ———
323eye0 1–843 raises an eyebrow.raises an eyebrow at %t.—
8742eyes11495 60085–60114 ———
15925eyes_rotate_down26480 60085–60114 ———
15926eyes_rotate_left26481 60085–60114 ———
15927eyes_rotate_right26482 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.