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
29139lava_pygmy_death_f83948 60085–60114 ———
29140lava_pygmy_dodge_backhand_f83949 60085–60114 ———
29141lava_pygmy_dodge_forehand_f83950 60085–60114 ———
29142lava_pygmy_dodge_thrust_f83951 60085–60114 ———
29303lava_pygmy_foley93455 60085–60114 ———
29143lava_pygmy_jump_f83952 60085–60114 ———
29289lava_pygmy_male_cast92965 60085–60114 ———
29144lava_pygmy_ouch_backhand_f83953 60085–60114 ———
29145lava_pygmy_ouch_down_f83954 60085–60114 ———
29146lava_pygmy_ouch_forehand_f83955 60085–60114 ———
29147lava_pygmy_ouch_thrust_f83956 60085–60114 ———
29148lava_pygmy_pike_attack_01_f83957 60085–60114 ———
29149lava_pygmy_pike_attack_02_f83958 60085–60114 ———
29150lava_pygmy_pike_attack_enter_f83959 60085–60114 ———
29151lava_pygmy_pike_attack_exit_f83960 60085–60114 ———
29152lava_pygmy_pike_attack_f83961 60085–60114 ———
29153lava_pygmy_shield_shove_f83962 60085–60114 ———
29154lava_pygmy_swim_f83963 60085–60114 ———
29304lava_pygmy_throw_molotov93471 60085–60114 ———
29155lava_pygmy_whirling_attack_f83964 60085–60114 ———
29156lava_pygmy_wild_swing83965 60085–60114 ———
16348lay_egg_hatch28178 60085–60114 ———
1444la_lion_roar_02_snd1704 1–843 ———
9020la_lion_roar_02_snd11774 60085–60114 ———
1445la_lion_roar_snd1705 1–843 ———
9021la_lion_roar_snd11775 60085–60114 ———
1515lb2_zap_snd1818 1–843 ———
9026lb2_zap_snd11780 60085–60114 ———
1516lb_cloud_sound1819 1–843 ———
9027lb_cloud_sound11781 60085–60114 ———
1517lb_volts_sound1820 1–843 ———
9028lb_volts_sound11782 60085–60114 ———
13982leap_enter21916 60085–60114 ———
13983leap_exit21917 60085–60114 ———
13984leap_idle21918 60085–60114 ———
2410leatherworking_failure3005 1–843 ———
9029leatherworking_failure11783 60085–60114 ———
2411leatherworking_idle3006 1–843 ———
9030leatherworking_idle11784 60085–60114 ———
2412leatherworking_success3007 1–843 ———
9031leatherworking_success11785 60085–60114 ———
15933left_blink26489 60085–60114 ———
15934left_brow_down26490 60085–60114 ———
15935left_brow_up26491 60085–60114 ———
15936left_eye_wide26492 60085–60114 ———
15937left_frown26493 60085–60114 ———
2413left_hand_fist3008 1–843 ———
9032left_hand_fist11786 60085–60114 ———
2414left_hand_relaxed3009 1–843 ———
9033left_hand_relaxed11787 60085–60114 ———
1470levelup1753 1–843 ———
6967levelup1753 60085–60114 ———
2335levelup_502926 1–843 ———
7229levelup_502926 60085–60114 ———
7605levelup_achievement7001 60085–60114 ———
2336levelup_hallmark2927 1–843 ———
7230levelup_hallmark2927 60085–60114 ———
2415level_up3d_sound3010 1–843 ———
9034level_up3d_sound11788 60085–60114 ———
2713lightdamage_enter3739 1–843 ———
9036lightdamage_enter11790 60085–60114 ———
2732lightdamage_idle3783 1–843 ———
9037lightdamage_idle11791 60085–60114 ———
3406lighting_blaze6654 1–843 ———
9038lightning_spheres11792 60085–60114 ———
10683lights13720 60085–60114 ———
13635lights_baubles21172 60085–60114 ———
10690lights_blue13747 60085–60114 ———
10691lights_blue_slow13748 60085–60114 ———
13636lights_bows21173 60085–60114 ———
11919lights_eyes17526 60085–60114 ———
10692lights_flocked13749 60085–60114 ———
10693lights_gold13750 60085–60114 ———
10694lights_gold_slow13751 60085–60114 ———
11920lights_pumpkin17527 60085–60114 ———
10695lights_red13752 60085–60114 ———
10696lights_red_slow13753 60085–60114 ———
10684lights_spiral13721 60085–60114 ———
10697lights_white13754 60085–60114 ———
10698lights_white_slow13755 60085–60114 ———
9035light_torch11789 60085–60114 ———
16115lion_winged_backup27152 60085–60114 ———
16116lion_winged_fly_backup27153 60085–60114 ———
16117lion_winged_fly_idle27154 60085–60114 ———
16118lion_winged_fly_run27155 60085–60114 ———
16119lion_winged_fly_strafe_left27156 60085–60114 ———
16120lion_winged_fly_strafe_right27157 60085–60114 ———
16121lion_winged_fly_turn_left27158 60085–60114 ———
16122lion_winged_fly_turn_right27159 60085–60114 ———
16123lion_winged_fly_walk27160 60085–60114 ———
16124lion_winged_idle0127161 60085–60114 ———
16125lion_winged_jump27162 60085–60114 ———
16126lion_winged_jump_substitute27163 60085–60114 ———
16127lion_winged_run27164 60085–60114 ———
16128lion_winged_turn_left27165 60085–60114 ———
16129lion_winged_turn_right27166 60085–60114 ———
16130lion_winged_walk27167 60085–60114 ———
28520liquid_whoosh01_snd66243 60085–60114 ———
28521liquid_whoosh02_snd66244 60085–60114 ———
28522liquid_whoosh03_snd66245 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.