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
8893ghost_die11646 60085–60114 ———
11193ghost_idle15989 60085–60114 ———
2315ghost_loop2902 1–843 ———
8894ghost_loop11647 60085–60114 ———
236giggle309 1–843 giggles.giggles at %t.—
8895giggle11648 60085–60114 giggles.giggles at %t.—
16168giggling27397 60085–60114 ———
237glare310 1–843 glares.glares menacingly at %t.—
8896glare11649 60085–60114 glares.glares menacingly at %t.—
2900glide4373 1–843 ———
8897glide11650 60085–60114 ———
11468glint16546 60085–60114 ———
1284glow1526 1–843 ———
8898glow11651 60085–60114 ———
29403glow_eyes94142 60085–60114 ———
1525glow_top1831 1–843 ———
8899glow_top11652 60085–60114 ———
16223gnome_clockwork_gears_blast27623 60085–60114 ———
10725gnome_female_2h_sword_wild_swing13821 60085–60114 ———
10744gnome_female_pike_charge_up13860 60085–60114 ———
10745gnome_female_pike_defensive_buff13861 60085–60114 ———
10746gnome_female_pike_offensive_buff13862 60085–60114 ———
10700gnome_forestry_success13786 60085–60114 ———
16196gnome_hands_trail_clockwork_blast27500 60085–60114 ———
8900go11653 60085–60114 ———
28619goblin_burp66704 60085–60114 ———
28620goblin_drink66705 60085–60114 ———
28621goblin_duck66706 60085–60114 ———
28622goblin_foley_hand_pat66707 60085–60114 ———
28623goblin_footsteps66708 60085–60114 ———
28624goblin_laugh66709 60085–60114 ———
28625goblin_ouch66710 60085–60114 ———
28626goblin_rude66711 60085–60114 ———
28627goblin_sad66712 60085–60114 ———
29066gold_trail_fx81214 60085–60114 ———
11734golem_charm16973 60085–60114 ———
15705golem_fx_tubes25759 60085–60114 ———
15114golem_kick25021 60085–60114 ———
11735golem_shutdown16974 60085–60114 ———
15706golem_summon_fx25760 60085–60114 ———
12992good_theer_energy_buff19830 60085–60114 ———
11229goo_arm_buff16097 60085–60114 ———
13129gorgon_attack_roar_0120048 60085–60114 ———
13130gorgon_attack_roar_0220049 60085–60114 ———
13131gorgon_breath_in20050 60085–60114 ———
13132gorgon_breath_out_long20051 60085–60114 ———
13133gorgon_breath_out_short20052 60085–60114 ———
13134gorgon_cast_roar_0120053 60085–60114 ———
13135gorgon_chewing_close20054 60085–60114 ———
13136gorgon_chewing_open20055 60085–60114 ———
13137gorgon_death20056 60085–60114 ———
13138gorgon_footscrape20058 60085–60114 ———
13139gorgon_footstep_deep20059 60085–60114 ———
13140gorgon_footstep_metal20060 60085–60114 ———
13141gorgon_hooves20061 60085–60114 ———
13142gorgon_kick_swish20062 60085–60114 ———
13143gorgon_metal_movement20063 60085–60114 ———
13144gorgon_metal_movement_deep20064 60085–60114 ———
13145gorgon_metal_movement_long20065 60085–60114 ———
13146gorgon_metal_movement_quiet20066 60085–60114 ———
13147gorgon_metal_scrape20067 60085–60114 ———
13148gorgon_ouch_headshake20068 60085–60114 ———
13149gorgon_ouch_impact20069 60085–60114 ———
13150gorgon_snort20070 60085–60114 ———
13151gorgon_snort_big20071 60085–60114 ———
13152gorgon_swim20072 60085–60114 ———
8901go_down11654 60085–60114 ———
2922green_fire4504 1–843 ———
8902green_fire11655 60085–60114 ———
2010green_smoke2439 1–843 ———
8903green_smoke11656 60085–60114 ———
13428griffin_backup20781 60085–60114 ———
13429griffin_fall20782 60085–60114 ———
13430griffin_fly_backup20783 60085–60114 ———
13431griffin_fly_dive20784 60085–60114 ———
13432griffin_fly_enter20785 60085–60114 ———
13433griffin_fly_fall20786 60085–60114 ———
13434griffin_fly_glide20787 60085–60114 ———
13435griffin_fly_idle20788 60085–60114 ———
13436griffin_fly_idle0120789 60085–60114 ———
13437griffin_fly_jump20790 60085–60114 ———
13438griffin_fly_jumpsubstitute20791 60085–60114 ———
13439griffin_fly_run20792 60085–60114 ———
13440griffin_fly_turn_left20793 60085–60114 ———
13441griffin_fly_turn_right20794 60085–60114 ———
13628griffin_fly_up21142 60085–60114 ———
13442griffin_fly_walk20795 60085–60114 ———
11160griffin_glide15921 60085–60114 ———
1549griffin_idle1856 1–843 ———
8904griffin_idle11657 60085–60114 ———
13443griffin_idle0120796 60085–60114 ———
13444griffin_jump20797 60085–60114 ———
13445griffin_jump_substitute20798 60085–60114 ———
13446griffin_land20799 60085–60114 ———
13447griffin_long_fall20800 60085–60114 ———
13514griffin_mount_backup20901 60085–60114 ———
13515griffin_mount_fall20902 60085–60114 ———
13516griffin_mount_fly_backup20903 60085–60114 ———
13562griffin_mount_fly_climb20976 60085–60114 ———
13517griffin_mount_fly_dive20904 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.