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
18509kill_fae_light_monk_attack42856 60085–60114 ———
18510kill_fae_light_monk_attack0142857 60085–60114 ———
18511kill_fae_light_monk_attack0242858 60085–60114 ———
18512kill_fae_light_monk_attack0342859 60085–60114 ———
18697kill_fae_light_monk_dodge_backhand43276 60085–60114 ———
18698kill_fae_light_monk_dodge_down43277 60085–60114 ———
18513kill_fae_light_monk_wild_swing42860 60085–60114 ———
18514kill_fae_light_pike_attack42861 60085–60114 ———
18515kill_fae_light_pike_attack0142862 60085–60114 ———
18516kill_fae_light_pike_attack0242863 60085–60114 ———
18517kill_fae_light_pike_kick42864 60085–60114 ———
18518kill_fae_light_pike_whirling_attack42865 60085–60114 ———
18519kill_fae_light_pike_wild_swing42866 60085–60114 ———
18520kill_fae_light_pugilist_attack42867 60085–60114 ———
18521kill_fae_light_pugilist_attack0242868 60085–60114 ———
18522kill_fae_light_pugilist_kick42869 60085–60114 ———
18523kill_fae_light_pugilist_whirling_attack42870 60085–60114 ———
18524kill_fae_light_pugilist_wild_swing42871 60085–60114 ———
18673kill_fae_light_run43155 60085–60114 ———
18701kill_fae_light_sit_enter43297 60085–60114 ———
18702kill_fae_light_sit_exit43298 60085–60114 ———
18703kill_fae_light_sit_idle43299 60085–60114 ———
21537kill_fae_light_untrained_ouch0146627 60085–60114 ———
25339kill_fae_mount_backup56288 60085–60114 ———
25799kill_fae_mount_combat_idle57508 60085–60114 ———
25340kill_fae_mount_fall56289 60085–60114 ———
25341kill_fae_mount_fly_backup56290 60085–60114 ———
25342kill_fae_mount_fly_climb56291 60085–60114 ———
25343kill_fae_mount_fly_dive56292 60085–60114 ———
25344kill_fae_mount_fly_down56293 60085–60114 ———
25367kill_fae_mount_fly_fall56349 60085–60114 ———
25345kill_fae_mount_fly_glide56294 60085–60114 ———
25346kill_fae_mount_fly_glide_left56295 60085–60114 ———
25347kill_fae_mount_fly_glide_right56296 60085–60114 ———
25348kill_fae_mount_fly_idle56297 60085–60114 ———
25349kill_fae_mount_fly_run56298 60085–60114 ———
25350kill_fae_mount_fly_strafe_left56299 60085–60114 ———
25351kill_fae_mount_fly_strafe_right56300 60085–60114 ———
25352kill_fae_mount_fly_turn_left56301 60085–60114 ———
25353kill_fae_mount_fly_turn_right56302 60085–60114 ———
25354kill_fae_mount_fly_up56303 60085–60114 ———
25355kill_fae_mount_fly_walk56304 60085–60114 ———
25356kill_fae_mount_idle56305 60085–60114 ———
25357kill_fae_mount_jump56306 60085–60114 ———
25368kill_fae_mount_jump_substitute56350 60085–60114 ———
25358kill_fae_mount_land56307 60085–60114 ———
25359kill_fae_mount_long_fall56308 60085–60114 ———
25360kill_fae_mount_run56309 60085–60114 ———
25361kill_fae_mount_turn_left56310 60085–60114 ———
25362kill_fae_mount_turn_right56311 60085–60114 ———
25363kill_fae_mount_walk56312 60085–60114 ———
19543kill_fae_silvani_transformation44270 60085–60114 ———
4737kill_failure0134609 1–843 ———
19544kill_failure0144271 60085–60114 ———
4738kill_failure0234610 1–843 ———
19545kill_failure0244272 60085–60114 ———
3621kill_fall33058 1–843 ———
17511kill_fall33058 60085–60114 ———
6123kill_fall_enter37270 1–843 ———
19546kill_fall_enter44273 60085–60114 ———
6124kill_fall_idle37271 1–843 ———
19547kill_fall_idle44274 60085–60114 ———
3622kill_fall_moving33059 1–843 ———
19548kill_fall_moving44275 60085–60114 ———
6141kill_fall_sequence37296 1–843 ———
19549kill_fall_sequence44276 60085–60114 ———
6084kill_fbb_charge_snd37058 1–843 ———
19553kill_fbb_charge_snd44280 60085–60114 ———
6085kill_fbb_crunches_snd37059 1–843 ———
19554kill_fbb_crunches_snd44281 60085–60114 ———
6086kill_fbb_explode_snd37060 1–843 ———
19555kill_fbb_explode_snd44282 60085–60114 ———
6087kill_fbd_charge01_snd37061 1–843 ———
19556kill_fbd_charge01_snd44283 60085–60114 ———
6088kill_fbd_impact_snd37062 1–843 ———
19557kill_fbd_impact_snd44284 60085–60114 ———
6089kill_fbd_precharge_snd37063 1–843 ———
19558kill_fbd_precharge_snd44285 60085–60114 ———
6266kill_fb_froggy01_snd37615 1–843 ———
19550kill_fb_froggy01_snd44277 60085–60114 ———
6267kill_fb_froggyform_snd37616 1–843 ———
19551kill_fb_froggyform_snd44278 60085–60114 ———
4818kill_fb_ice_explode_sound34692 1–843 ———
19552kill_fb_ice_explode_sound44279 60085–60114 ———
4992kill_fd_distort02_snd34875 1–843 ———
19559kill_fd_distort02_snd44286 60085–60114 ———
4993kill_fd_distort_end_snd34876 1–843 ———
19560kill_fd_distort_end_snd44287 60085–60114 ———
4994kill_fd_distort_low_snd34877 1–843 ———
19561kill_fd_distort_low_snd44288 60085–60114 ———
4995kill_fd_distort_snd34878 1–843 ———
19562kill_fd_distort_snd44289 60085–60114 ———
27058kill_fear_wave60636 60085–60114 ———
25255kill_feather_fx55972 60085–60114 ———
6606kill_feather_storm39418 1–843 ———
5612kill_feint35772 1–843 ———
19563kill_feint44290 60085–60114 ———
21649kill_fel_epic_symbol47504 60085–60114 ———
21840kill_fel_epic_symbol_outer48357 60085–60114 ———
18435kill_female_dead42444 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.