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
15447backpack_fishing_fight25399 60085–60114 ———
15448backpack_fishing_reel_in25400 60085–60114 ———
15449backpack_flirt25401 60085–60114 ———
15011backpack_fly_backup24783 60085–60114 ———
15041backpack_fly_climb24815 60085–60114 ———
15012backpack_fly_combat_idle24784 60085–60114 ———
15042backpack_fly_dive24816 60085–60114 ———
15043backpack_fly_down24817 60085–60114 ———
15013backpack_fly_fall24785 60085–60114 ———
15014backpack_fly_fly_backup24786 60085–60114 ———
15015backpack_fly_fly_climb24787 60085–60114 ———
15016backpack_fly_fly_dive24788 60085–60114 ———
15017backpack_fly_fly_down24789 60085–60114 ———
15018backpack_fly_fly_glide24790 60085–60114 ———
15019backpack_fly_fly_glide_left24791 60085–60114 ———
15020backpack_fly_fly_glide_right24792 60085–60114 ———
15021backpack_fly_fly_idle24793 60085–60114 ———
15022backpack_fly_fly_run24794 60085–60114 ———
15023backpack_fly_fly_strafe_left24795 60085–60114 ———
15024backpack_fly_fly_strafe_right24796 60085–60114 ———
15025backpack_fly_fly_turn_left24797 60085–60114 ———
15026backpack_fly_fly_turn_right24798 60085–60114 ———
15027backpack_fly_fly_up24799 60085–60114 ———
15028backpack_fly_fly_walk24800 60085–60114 ———
15044backpack_fly_glide24818 60085–60114 ———
15045backpack_fly_glide_left24819 60085–60114 ———
15046backpack_fly_glide_right24820 60085–60114 ———
15029backpack_fly_idle24801 60085–60114 ———
15030backpack_fly_jump24802 60085–60114 ———
15031backpack_fly_land24803 60085–60114 ———
15032backpack_fly_long_fall24804 60085–60114 ———
15033backpack_fly_run24805 60085–60114 ———
15047backpack_fly_strafe_left24821 60085–60114 ———
15048backpack_fly_strafe_right24822 60085–60114 ———
15034backpack_fly_turn_left24806 60085–60114 ———
15035backpack_fly_turn_right24807 60085–60114 ———
15049backpack_fly_up24823 60085–60114 ———
15036backpack_fly_walk24808 60085–60114 ———
15040backpack_fly__walk24814 60085–60114 ———
15450backpack_forestry_chopping25402 60085–60114 ———
15451backpack_forestry_success25403 60085–60114 ———
15452backpack_gag25404 60085–60114 ———
15453backpack_gathering_end25405 60085–60114 ———
15454backpack_gathering_loop25406 60085–60114 ———
15455backpack_gathering_search25407 60085–60114 ———
15456backpack_gathering_start25408 60085–60114 ———
15457backpack_gathering_success25409 60085–60114 ———
15458backpack_ghost_idle25410 60085–60114 ———
15459backpack_giggle25411 60085–60114 ———
15460backpack_glare25412 60085–60114 ———
29340backpack_glider_backup94073 60085–60114 ———
29341backpack_glider_fall94074 60085–60114 ———
29342backpack_glider_fly_backup94075 60085–60114 ———
29343backpack_glider_fly_idle94076 60085–60114 ———
29344backpack_glider_fly_run94077 60085–60114 ———
29345backpack_glider_fly_strafe_left94078 60085–60114 ———
29346backpack_glider_fly_strafe_right94079 60085–60114 ———
29347backpack_glider_fly_turn_left94080 60085–60114 ———
29348backpack_glider_fly_turn_right94081 60085–60114 ———
29349backpack_glider_fly_walk94082 60085–60114 ———
29350backpack_glider_glide94083 60085–60114 ———
29351backpack_glider_glide_left94084 60085–60114 ———
29352backpack_glider_glide_right94085 60085–60114 ———
29353backpack_glider_idle94086 60085–60114 ———
29354backpack_glider_idle0194087 60085–60114 ———
29355backpack_glider_jump94088 60085–60114 ———
29356backpack_glider_jump_substitute94089 60085–60114 ———
29357backpack_glider_land94090 60085–60114 ———
29358backpack_glider_long_fall94091 60085–60114 ———
29359backpack_glider_run94092 60085–60114 ———
29360backpack_glider_turn_left94093 60085–60114 ———
29361backpack_glider_turn_right94094 60085–60114 ———
29362backpack_glider_walk94095 60085–60114 ———
29646backpack_glide_left97153 60085–60114 ———
29717backpack_ground_walk99098 60085–60114 ———
15461backpack_hearnoevil25413 60085–60114 ———
15462backpack_heartattack25414 60085–60114 ———
15463backpack_hover_idle25415 60085–60114 ———
15050backpack_idle24824 60085–60114 ———
15051backpack_jump24825 60085–60114 ———
15464backpack_jump_moving25416 60085–60114 ———
15465backpack_kick25417 60085–60114 ———
15467backpack_knockdowntoknees25419 60085–60114 ———
15466backpack_knockdown_attack25418 60085–60114 ———
15468backpack_knockedtoback25420 60085–60114 ———
15469backpack_knockedtoback_getup25421 60085–60114 ———
15470backpack_knockedtoback_onbackidle25422 60085–60114 ———
15052backpack_land24826 60085–60114 ———
29312backpack_leaper_backup93835 60085–60114 ———
29313backpack_leaper_fall93836 60085–60114 ———
29314backpack_leaper_fly_backup93837 60085–60114 ———
29315backpack_leaper_fly_climb93838 60085–60114 ———
29316backpack_leaper_fly_dive93839 60085–60114 ———
29317backpack_leaper_fly_down93840 60085–60114 ———
29318backpack_leaper_fly_glide93841 60085–60114 ———
29319backpack_leaper_fly_glide_left93842 60085–60114 ———
29320backpack_leaper_fly_glide_right93843 60085–60114 ———
29321backpack_leaper_fly_idle93844 60085–60114 ———
29322backpack_leaper_fly_run93845 60085–60114 ———
29323backpack_leaper_fly_strafe_left93846 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.