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
7725fae_light_pike_wild_swing10098 60085–60114 ———
7726fae_light_pugilist_attack10099 60085–60114 ———
7727fae_light_pugilist_attack0210100 60085–60114 ———
7728fae_light_pugilist_kick10101 60085–60114 ———
7729fae_light_pugilist_whirling_attack10102 60085–60114 ———
7730fae_light_pugilist_wild_swing10103 60085–60114 ———
7879fae_light_run10387 60085–60114 ———
7907fae_light_sit_enter10529 60085–60114 ———
7908fae_light_sit_exit10530 60085–60114 ———
7909fae_light_sit_idle10531 60085–60114 ———
10743fae_light_untrained_ouch0113859 60085–60114 ———
14546fae_mount_backup23520 60085–60114 ———
15006fae_mount_combat_idle24740 60085–60114 ———
14547fae_mount_fall23521 60085–60114 ———
14548fae_mount_fly_backup23522 60085–60114 ———
14549fae_mount_fly_climb23523 60085–60114 ———
14550fae_mount_fly_dive23524 60085–60114 ———
14551fae_mount_fly_down23525 60085–60114 ———
14574fae_mount_fly_fall23581 60085–60114 ———
14552fae_mount_fly_glide23526 60085–60114 ———
14553fae_mount_fly_glide_left23527 60085–60114 ———
14554fae_mount_fly_glide_right23528 60085–60114 ———
14555fae_mount_fly_idle23529 60085–60114 ———
14556fae_mount_fly_run23530 60085–60114 ———
14557fae_mount_fly_strafe_left23531 60085–60114 ———
14558fae_mount_fly_strafe_right23532 60085–60114 ———
14559fae_mount_fly_turn_left23533 60085–60114 ———
14560fae_mount_fly_turn_right23534 60085–60114 ———
14561fae_mount_fly_up23535 60085–60114 ———
14562fae_mount_fly_walk23536 60085–60114 ———
14563fae_mount_idle23537 60085–60114 ———
14564fae_mount_jump23538 60085–60114 ———
14575fae_mount_jump_substitute23582 60085–60114 ———
14565fae_mount_land23539 60085–60114 ———
14566fae_mount_long_fall23540 60085–60114 ———
14567fae_mount_run23541 60085–60114 ———
14568fae_mount_turn_left23542 60085–60114 ———
14569fae_mount_turn_right23543 60085–60114 ———
14570fae_mount_walk23544 60085–60114 ———
8749fae_silvani_transformation11502 60085–60114 ———
1535failure011841 1–843 ———
8750failure0111503 60085–60114 ———
1536failure021842 1–843 ———
8751failure0211504 60085–60114 ———
492fall290 1–843 ———
6717fall290 60085–60114 ———
2920fall_enter4502 1–843 ———
8752fall_enter11505 60085–60114 ———
2921fall_idle4503 1–843 ———
8753fall_idle11506 60085–60114 ———
493fall_moving291 1–843 ———
8754fall_moving11507 60085–60114 ———
2938fall_sequence4528 1–843 ———
8755fall_sequence11508 60085–60114 ———
2881fbb_charge_snd4290 1–843 ———
8759fbb_charge_snd11512 60085–60114 ———
2882fbb_crunches_snd4291 1–843 ———
8760fbb_crunches_snd11513 60085–60114 ———
2883fbb_explode_snd4292 1–843 ———
8761fbb_explode_snd11514 60085–60114 ———
2884fbd_charge01_snd4293 1–843 ———
8762fbd_charge01_snd11515 60085–60114 ———
2885fbd_impact_snd4294 1–843 ———
8763fbd_impact_snd11516 60085–60114 ———
2886fbd_precharge_snd4295 1–843 ———
8764fbd_precharge_snd11517 60085–60114 ———
3063fb_froggy01_snd4847 1–843 ———
8756fb_froggy01_snd11509 60085–60114 ———
3064fb_froggyform_snd4848 1–843 ———
8757fb_froggyform_snd11510 60085–60114 ———
1616fb_ice_explode_sound1924 1–843 ———
8758fb_ice_explode_sound11511 60085–60114 ———
1790fd_distort02_snd2107 1–843 ———
8765fd_distort02_snd11518 60085–60114 ———
1791fd_distort_end_snd2108 1–843 ———
8766fd_distort_end_snd11519 60085–60114 ———
1792fd_distort_low_snd2109 1–843 ———
8767fd_distort_low_snd11520 60085–60114 ———
1793fd_distort_snd2110 1–843 ———
8768fd_distort_snd11521 60085–60114 ———
16265fear_wave27868 60085–60114 ———
14461feather_fx23204 60085–60114 ———
3403feather_storm6650 1–843 ———
2409feint3004 1–843 ———
8769feint11522 60085–60114 ———
10855fel_epic_symbol14736 60085–60114 ———
11046fel_epic_symbol_outer15589 60085–60114 ———
7641female_dead9676 60085–60114 ———
7642female_dead_enter9677 60085–60114 ———
7644female_run9739 60085–60114 ———
3116ff_explode_lp_snd5186 1–843 ———
8770ff_explode_lp_snd11523 60085–60114 ———
3117ff_lasercloud_lp_snd5187 1–843 ———
8771ff_lasercloud_lp_snd11524 60085–60114 ———
3074fgdt_dust_snd4921 1–843 ———
8772fgdt_dust_snd11525 60085–60114 ———
1433fh_cast_sparkles_snd1693 1–843 ———
8773fh_cast_sparkles_snd11526 60085–60114 ———
1434fh_end_body_fall_snd1694 1–843 ———
8774fh_end_body_fall_snd11527 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.