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
1397pugilist_parry_backhand1656 1–843 ———
9311pugilist_parry_backhand12066 60085–60114 ———
1398pugilist_parry_down1657 1–843 ———
9312pugilist_parry_down12067 60085–60114 ———
1399pugilist_parry_forehand1658 1–843 ———
9313pugilist_parry_forehand12068 60085–60114 ———
2993pugilist_parry_thrust4648 1–843 ———
9314pugilist_parry_thrust12069 60085–60114 ———
2934pugilist_recoil4517 1–843 ———
9315pugilist_recoil12070 60085–60114 ———
561pugilist_strafe_left467 1–843 ———
9316pugilist_strafe_left12071 60085–60114 ———
562pugilist_strafe_right468 1–843 ———
9317pugilist_strafe_right12072 60085–60114 ———
2439pugilist_super_buff3034 1–843 ———
9318pugilist_super_buff12073 60085–60114 ———
2440pugilist_taunt3035 1–843 ———
9319pugilist_taunt12074 60085–60114 ———
563pugilist_walk469 1–843 ———
9320pugilist_walk12075 60085–60114 ———
2441pugilist_whirling_attack3036 1–843 ———
7254pugilist_whirling_attack3036 60085–60114 ———
2442pugilist_wild_swing3037 1–843 ———
7255pugilist_wild_swing3037 60085–60114 ———
12967pulse_sound19798 60085–60114 ———
17231puppeteer_enter31377 60085–60114 ———
17237puppeteer_exit31402 60085–60114 ———
17232puppeteer_idle31378 60085–60114 ———
17233puppeter_exit31379 60085–60114 ———
11303pus_splat16218 60085–60114 ———
14190puzzle22513 60085–60114 ———
3019pv_pet_victory_snd4717 1–843 ———
9321pv_pet_victory_snd12076 60085–60114 ———
29305pygmy_foley93502 60085–60114 ———
1899quality_down2265 1–843 ———
9322quality_down12077 60085–60114 ———
1900quality_up2266 1–843 ———
9323quality_up12078 60085–60114 ———
564quest_complete487 1–843 ———
9324quest_complete12079 60085–60114 ———
12629quick_summon_fx19237 60085–60114 ———
747rain910 1–843 ———
9325rain12080 60085–60114 ———
12423rain_of_shinies18703 60085–60114 ———
28628raised_hand66747 60085–60114 ———
273raisehand488 1–843 begins frantically raising %g1 hand.——
9326raisehand12081 60085–60114 begins frantically raising %g1 hand.——
28524ramp_whoosh_suck01_snd66248 60085–60114 ———
28525ramp_whoosh_suck02_snd66249 60085–60114 ———
28526ramp_whoosh_suck03_snd66250 60085–60114 ———
14544raptor_idle0123512 60085–60114 ———
29793raptor_mount_1h_sword_enter101350 60085–60114 ———
29794raptor_mount_1h_sword_exit101351 60085–60114 ———
29795raptor_mount_1h_sword_idle101352 60085–60114 ———
14474raptor_mount_backup23226 60085–60114 ———
14475raptor_mount_fall23227 60085–60114 ———
14503raptor_mount_fly_glide_left23304 60085–60114 ———
14504raptor_mount_fly_glide_right23305 60085–60114 ———
14505raptor_mount_glide23306 60085–60114 ———
14506raptor_mount_glide_left23307 60085–60114 ———
14507raptor_mount_glide_right23308 60085–60114 ———
14476raptor_mount_idle23228 60085–60114 ———
14545raptor_mount_idle0223513 60085–60114 ———
14477raptor_mount_jump23229 60085–60114 ———
14478raptor_mount_jump_substitute23230 60085–60114 ———
14479raptor_mount_land23231 60085–60114 ———
14480raptor_mount_long_fall23232 60085–60114 ———
14481raptor_mount_run23233 60085–60114 ———
14482raptor_mount_turn_left23234 60085–60114 ———
14483raptor_mount_turn_right23235 60085–60114 ———
14484raptor_mount_walk23236 60085–60114 ———
16228ratonga_brain_storm_text27630 60085–60114 ———
10731ratonga_female_2h_sword_wild_swing13828 60085–60114 ———
10762ratonga_female_pike_charge_up13879 60085–60114 ———
10763ratonga_female_pike_defensive_buff13880 60085–60114 ———
10764ratonga_female_pike_offensive_buff13881 60085–60114 ———
16202ratonga_forced_shader_bertox27508 60085–60114 ———
3272rays6043 1–843 ———
9327rays12082 60085–60114 ———
2791rb_p2pcast_snd3927 1–843 ———
9328rb_p2pcast_snd12083 60085–60114 ———
2792rb_p2pstream_snd3928 1–843 ———
9329rb_p2pstream_snd12084 60085–60114 ———
2793rct_endblast_sound3929 1–843 ———
9332rct_endblast_sound12087 60085–60114 ———
2811rct_endtones_sound3959 1–843 ———
9333rct_endtones_sound12088 60085–60114 ———
1460rc_leaves_01_snd1721 1–843 ———
9330rc_leaves_01_snd12085 60085–60114 ———
1461rc_roots_grow_01_snd1722 1–843 ———
9331rc_roots_grow_01_snd12086 60085–60114 ———
16046read_book26976 60085–60114 ———
1180rebirth_sound_011421 1–843 ———
9334rebirth_sound_0112089 60085–60114 ———
16802recline_side29897 60085–60114 ———
16321red_crystal_dead28075 60085–60114 ———
16322red_crystal_on28076 60085–60114 ———
3424red_nose6700 1–843 ———
9335red_nose12090 60085–60114 ———
29072red_trail_fx81223 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.