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
7873froglok_untrained_attack10371 60085–60114 ———
7874froglok_untrained_idle10372 60085–60114 ———
10891froglok_warg_idle14947 60085–60114 ———
10892froglok_warg_jump_substitute14948 60085–60114 ———
7926froglok_wild_swing10582 60085–60114 ———
930frog_attack_011135 1–843 ———
8866frog_attack_0111619 60085–60114 ———
14982frog_croaking_snd24607 60085–60114 ———
931frog_hit1136 1–843 ———
8867frog_hit11620 60085–60114 ———
932frog_ouch1137 1–843 ———
8868frog_ouch11621 60085–60114 ———
933frog_squish_011138 1–843 ———
8869frog_squish_0111622 60085–60114 ———
934frog_squish_021139 1–843 ———
8870frog_squish_0211623 60085–60114 ———
935frog_squish_031140 1–843 ———
8871frog_squish_0311624 60085–60114 ———
937frog_tongueslime_011142 1–843 ———
8873frog_tongueslime_0111626 60085–60114 ———
936frog_tongue_011141 1–843 ———
8872frog_tongue_0111625 60085–60114 ———
938frog_whoosh_011143 1–843 ———
8874frog_whoosh_0111627 60085–60114 ———
11914frosty_crown17509 60085–60114 ———
11905frost_blast17488 60085–60114 ———
233frustrated306 1–843 appears frustrated.appears frustrated with %t.—
8875frustrated11628 60085–60114 appears frustrated.appears frustrated with %t.—
16446fs28661 60085–60114 ———
1508fs_cast_flame_snd1809 1–843 ———
8876fs_cast_flame_snd11629 60085–60114 ———
29508fs_creature_xl94982 60085–60114 ———
1440fs_endfire_snd1700 1–843 ———
8877fs_endfire_snd11630 60085–60114 ———
28761fs_evil_butterfly_0167973 60085–60114 ———
1441fs_firefall_snd1701 1–843 ———
8878fs_firefall_snd11631 60085–60114 ———
28468fs_spider_mount_walk_66179 60085–60114 ———
2950fs_whoosh_snd4554 1–843 ———
8879fs_whoosh_snd11632 60085–60114 ———
11906fudge_drip17489 60085–60114 ———
234fullcurtsey307 1–843 formally curtsies.formally curtsies at %t.—
8880fullcurtsey11633 60085–60114 formally curtsies.formally curtsies at %t.—
8881fusion_bubbly_snd11634 60085–60114 ———
8882fusion_cast_snd11635 60085–60114 ———
12366fx_eye_beam118554 60085–60114 ———
12367fx_eye_beam218555 60085–60114 ———
12368fx_eye_beam318556 60085–60114 ———
12369fx_eye_beam418557 60085–60114 ———
12370fx_eye_beam518558 60085–60114 ———
12371fx_eye_charge18559 60085–60114 ———
16508fx_foot_trail_lf28890 60085–60114 ———
16509fx_foot_trail_lh28891 60085–60114 ———
16510fx_foot_trail_rf28892 60085–60114 ———
16511fx_foot_trail_rh28893 60085–60114 ———
11683fx_off16856 60085–60114 ———
11158fx_on15913 60085–60114 ———
14136fx_splash_out22317 60085–60114 ———
14137fx_splash_up22318 60085–60114 ———
235gag308 1–843 gags.gags at %t.—
6719gag308 60085–60114 gags.gags at %t.—
14666gas_torch_flame23801 60085–60114 ———
12113gathering_end17950 60085–60114 ———
12128gathering_enter17984 60085–60114 ———
12129gathering_exit17985 60085–60114 ———
14199gathering_find22541 60085–60114 ———
12114gathering_loop17951 60085–60114 ———
2252gathering_search2809 1–843 ———
7214gathering_search2809 60085–60114 ———
12115gathering_start17952 60085–60114 ———
2253gathering_success2810 1–843 ———
7215gathering_success2810 60085–60114 ———
15915gathering_tail_cloak26383 60085–60114 ———
15860gather_enter26216 60085–60114 ———
15861gather_exit26217 60085–60114 ———
15862gather_idle26218 60085–60114 ———
16441gazer_charge_up28599 60085–60114 ———
12748gazer_pained_roar19459 60085–60114 ———
2052gc_boneburs_snd2498 1–843 ———
8883gc_boneburs_snd11636 60085–60114 ———
3016gc_castcharge_snd4713 1–843 ———
8884gc_castcharge_snd11637 60085–60114 ———
3017gc_result_snd4714 1–843 ———
8885gc_result_snd11638 60085–60114 ———
2053gc_screams_snd2499 1–843 ———
8886gc_screams_snd11639 60085–60114 ———
16515gehein_aura_lp28941 60085–60114 ———
1978gemsparkle2386 1–843 ———
8888gemsparkle11641 60085–60114 ———
2007gemsparkle_fail12436 1–843 ———
8889gemsparkle_fail111642 60085–60114 ———
2008gemsparkle_fail22437 1–843 ———
8890gemsparkle_fail211643 60085–60114 ———
2009gemsparkle_go2438 1–843 ———
8891gemsparkle_go11644 60085–60114 ———
2006gem_glow2435 1–843 ———
8887gem_glow11640 60085–60114 ———
3156ghost_carpet5450 1–843 ———
8892ghost_carpet11645 60085–60114 ———
2314ghost_die2901 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.