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
6936cast_wizard1578 60085–60114 ———
17168cast_wizard_mythical_fx31250 60085–60114 ———
7636cast_wizard_spires9526 60085–60114 ———
8387cast_wuoshi_choking_vines_aoe11132 60085–60114 ———
8388cast_wuoshi_fire_and_ice_aoe11133 60085–60114 ———
8389cast_wuoshi_tree_morph11134 60085–60114 ———
13056cast_wurm_breath19909 60085–60114 ———
13057cast_wurm_crush_blast19910 60085–60114 ———
13058cast_wurm_inhale19911 60085–60114 ———
13000cast_wyvern_breath19845 60085–60114 ———
28270cast_wyvern_fire_breath65529 60085–60114 ———
13001cast_wyvern_inhale19846 60085–60114 ———
28271cast_wyvern_poison_breath65530 60085–60114 ———
14304cast_yelinak_ice_breath22778 60085–60114 ———
3310cast_zombie_scare6219 1–843 ———
8390cast_zombie_scare11135 60085–60114 ———
2795cchains_resultchains_snd3934 1–843 ———
8391cchains_resultchains_snd11136 60085–60114 ———
2796cchains_sing_snd3935 1–843 ———
8392cchains_sing_snd11137 60085–60114 ———
2878cf_coinsfall_snd4257 1–843 ———
8397cf_coinsfall_snd11142 60085–60114 ———
2874cf_coins_bounce_background_snd4253 1–843 ———
8393cf_coins_bounce_background_snd11138 60085–60114 ———
2875cf_coins_bounce_bkgrnd_short_snd4254 1–843 ———
8394cf_coins_bounce_bkgrnd_short_snd11139 60085–60114 ———
2876cf_coins_lots_snd4255 1–843 ———
8395cf_coins_lots_snd11140 60085–60114 ———
2877cf_coins_many_snd4256 1–843 ———
8396cf_coins_many_snd11141 60085–60114 ———
15921ch26397 60085–60114 ———
28317channeler_golem_attack65704 60085–60114 ———
28318channeler_golem_attack_0165705 60085–60114 ———
28319channeler_golem_attack_0265706 60085–60114 ———
28320channeler_golem_attack_0365707 60085–60114 ———
28321channeler_golem_cast65708 60085–60114 ———
28322channeler_golem_combat_enter65709 60085–60114 ———
28323channeler_golem_combat_exit65710 60085–60114 ———
28324channeler_golem_dead_enter65711 60085–60114 ———
28325channeler_golem_footsteps65712 60085–60114 ———
28326channeler_golem_idle_0265713 60085–60114 ———
28327channeler_golem_ouch65714 60085–60114 ———
28328channeler_golem_summon65715 60085–60114 ———
28329channeler_golem_swim65716 60085–60114 ———
29023channel_barrier79799 60085–60114 ———
1174charge1415 1–843 ———
8398charge11143 60085–60114 ———
16304chargeup28034 60085–60114 ———
16305chargeup_enter28035 60085–60114 ———
16306chargeup_exit28036 60085–60114 ———
16307chargeup_idle28037 60085–60114 ———
1522charge_burst_snd1826 1–843 ———
8399charge_burst_snd11144 60085–60114 ———
12364charge_mouth_fx18551 60085–60114 ———
17313charge_of_silence31821 60085–60114 ———
1523charge_rumble_snd1827 1–843 ———
8400charge_rumble_snd11145 60085–60114 ———
2372charge_up2967 1–843 ———
8401charge_up11146 60085–60114 ———
1524charge_whoosh_snd1828 1–843 ———
8402charge_whoosh_snd11147 60085–60114 ———
1994charm_cast_snd2423 1–843 ———
8403charm_cast_snd11148 60085–60114 ———
1995charm_flutes_snd2424 1–843 ———
8404charm_flutes_snd11149 60085–60114 ———
11194cha_beam_blast015994 60085–60114 ———
11195cha_beam_blast115995 60085–60114 ———
11196cha_beam_blast215996 60085–60114 ———
11197cha_beam_blast_up15997 60085–60114 ———
214cheer190 1–843 cheers!cheers for %t.—
8405cheer11150 60085–60114 cheers!cheers for %t.—
1929chimney012315 1–843 ———
8406chimney0111151 60085–60114 ———
14784chop_ground_digging24113 60085–60114 ———
14785chop_ground_success24114 60085–60114 ———
29058chrono_tear_beam_fx80968 60085–60114 ———
28746chr_bolgin_rx_drinking_0167949 60085–60114 ———
28747chr_bolgin_rx_idle67950 60085–60114 ———
28748chr_evil_butterfly_attack_0167951 60085–60114 ———
28749chr_evil_butterfly_ouch_0167952 60085–60114 ———
28750chr_evil_butterfly_wing_flap_0167953 60085–60114 ———
28751chr_evil_butterly_dodge67954 60085–60114 ———
28752chr_horde_dragon_ouch_0167955 60085–60114 ———
28460chr_rx_spider_mount_idle66171 60085–60114 ———
28461chr_rx_spider_mount_jump66172 60085–60114 ———
28462chr_rx_spider_mount_super_jump66173 60085–60114 ———
28463chr_spider_mount_idle_stretch66174 60085–60114 ———
28464chr_spider_mount_jump66175 60085–60114 ———
28465chr_spider_mount_land66176 60085–60114 ———
28466chr_spider_mount_movement66177 60085–60114 ———
28467chr_spider_mount_super_jump66178 60085–60114 ———
215chuckle191 1–843 chuckles.chuckles at %t.—
8407chuckle11152 60085–60114 chuckles.chuckles at %t.—
1596ciseme_m1903 1–843 ———
8408ciseme_m11153 60085–60114 ———
669clap64 1–843 claps.claps for %t.—
14209clap22556 60085–60114 claps.claps for %t.—
17438clear32488 60085–60114 ———
2901clear_target_tigger4400 1–843 ———
8410clear_target_tigger11155 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.