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
31479kill_aerakyn_ground_fly_turn_right8487053 60085–60114 ———
31480kill_aerakyn_ground_fly_walk8487054 60085–60114 ———
31481kill_aerakyn_ground_idle8487055 60085–60114 ———
31482kill_aerakyn_ground_idle018487056 60085–60114 ———
31483kill_aerakyn_ground_jump8487057 60085–60114 ———
31484kill_aerakyn_ground_land8487058 60085–60114 ———
31485kill_aerakyn_ground_long_fall8487059 60085–60114 ———
31486kill_aerakyn_ground_run8487060 60085–60114 ———
31487kill_aerakyn_ground_strafe_left8487061 60085–60114 ———
31488kill_aerakyn_ground_strafe_left_run8487062 60085–60114 ———
31489kill_aerakyn_ground_strafe_right8487063 60085–60114 ———
31490kill_aerakyn_ground_strafe_right_run8487064 60085–60114 ———
31491kill_aerakyn_ground_turn_left8487065 60085–60114 ———
31492kill_aerakyn_ground_turn_right8487066 60085–60114 ———
31493kill_aerakyn_ground_walk8487067 60085–60114 ———
31254kill_aerakyn_leaper_backup8483009 60085–60114 ———
31255kill_aerakyn_leaper_fall8483010 60085–60114 ———
31256kill_aerakyn_leaper_fly_backup8483011 60085–60114 ———
31257kill_aerakyn_leaper_fly_climb8483012 60085–60114 ———
31258kill_aerakyn_leaper_fly_dive8483013 60085–60114 ———
31259kill_aerakyn_leaper_fly_down8483014 60085–60114 ———
31260kill_aerakyn_leaper_fly_glide8483015 60085–60114 ———
31261kill_aerakyn_leaper_fly_glide_left8483016 60085–60114 ———
31262kill_aerakyn_leaper_fly_glide_right8483017 60085–60114 ———
31263kill_aerakyn_leaper_fly_idle8483018 60085–60114 ———
31264kill_aerakyn_leaper_fly_run8483019 60085–60114 ———
31265kill_aerakyn_leaper_fly_strafe_left8483020 60085–60114 ———
31266kill_aerakyn_leaper_fly_strafe_right8483021 60085–60114 ———
31267kill_aerakyn_leaper_fly_turn_left8483022 60085–60114 ———
31268kill_aerakyn_leaper_fly_turn_right8483023 60085–60114 ———
31269kill_aerakyn_leaper_fly_up8483024 60085–60114 ———
31270kill_aerakyn_leaper_fly_walk8483025 60085–60114 ———
31271kill_aerakyn_leaper_idle8483026 60085–60114 ———
31272kill_aerakyn_leaper_idle018483027 60085–60114 ———
31273kill_aerakyn_leaper_jump8483028 60085–60114 ———
31274kill_aerakyn_leaper_jump_substitute8483029 60085–60114 ———
31275kill_aerakyn_leaper_land8483030 60085–60114 ———
31276kill_aerakyn_leaper_long_fall8483031 60085–60114 ———
31277kill_aerakyn_leaper_run8483032 60085–60114 ———
31459kill_aerakyn_leaper_strafe_left8486410 60085–60114 ———
31460kill_aerakyn_leaper_strafe_left_run8486411 60085–60114 ———
31461kill_aerakyn_leaper_strafe_right8486412 60085–60114 ———
31462kill_aerakyn_leaper_strafe_right_run8486413 60085–60114 ———
31278kill_aerakyn_leaper_turn_left8483033 60085–60114 ———
31279kill_aerakyn_leaper_turn_right8483034 60085–60114 ———
31280kill_aerakyn_leaper_walk8483035 60085–60114 ———
31103kill_aerakyn_radiant_dragon_script8482441 60085–60114 ———
31104kill_aerakyn_veeshan_scale8482442 60085–60114 ———
3469kill_agree32830 1–843 ———
18801kill_agree43513 60085–60114 ———
21356kill_airborne46090 60085–60114 ———
31827kill_air_guitar8497897 60085–60114 ———
5118kill_alchemy_failure35064 1–843 ———
18802kill_alchemy_failure43515 60085–60114 ———
5119kill_alchemy_idle35065 1–843 ———
18803kill_alchemy_idle43516 60085–60114 ———
5120kill_alchemy_success35066 1–843 ———
18804kill_alchemy_success43517 60085–60114 ———
6601kill_alluring_voice39409 1–843 ———
27777kill_all_dead63527 60085–60114 ———
24979kill_amaze55271 60085–60114 ———
31512kill_amyg_sword_enter8488168 60085–60114 ———
22833kill_anashti_summon50586 60085–60114 ———
22834kill_anashti_transform50587 60085–60114 ———
22835kill_anashti_vortex50588 60085–60114 ———
6602kill_ancient_breath39410 1–843 ———
25487kill_angler_mount_backup56634 60085–60114 ———
25488kill_angler_mount_fall56635 60085–60114 ———
25489kill_angler_mount_glide56636 60085–60114 ———
25490kill_angler_mount_glide_left56637 60085–60114 ———
25491kill_angler_mount_glide_right56638 60085–60114 ———
25492kill_angler_mount_idle56639 60085–60114 ———
25493kill_angler_mount_idle0156640 60085–60114 ———
25494kill_angler_mount_idle0256641 60085–60114 ———
26542kill_angler_mount_idle0358689 60085–60114 ———
25495kill_angler_mount_jump56642 60085–60114 ———
25496kill_angler_mount_jump_substitute56643 60085–60114 ———
25497kill_angler_mount_land56644 60085–60114 ———
25498kill_angler_mount_long_fall56645 60085–60114 ———
25499kill_angler_mount_run56646 60085–60114 ———
25500kill_angler_mount_run0156647 60085–60114 ———
25501kill_angler_mount_turn_left56648 60085–60114 ———
25502kill_angler_mount_turn_right56649 60085–60114 ———
25503kill_angler_mount_walk56650 60085–60114 ———
5394kill_angry35506 1–843 ———
18805kill_angry43518 60085–60114 ———
3976kill_antenna_0133707 1–843 ———
18806kill_antenna_0143519 60085–60114 ———
3977kill_antenna_0233708 1–843 ———
18807kill_antenna_0243520 60085–60114 ———
3978kill_antenna_0333709 1–843 ———
18808kill_antenna_0343521 60085–60114 ———
3979kill_antenna_0433710 1–843 ———
18809kill_antenna_0443522 60085–60114 ———
3980kill_antenna_0533711 1–843 ———
18810kill_antenna_0543523 60085–60114 ———
28114kill_antonia_soulsuck_hover64617 60085–60114 ———
28115kill_antonia_soulsuck_hover_exit64618 60085–60114 ———
5721kill_antonia_wisp35891 1–843 ———
18811kill_antonia_wisp43524 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.