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
28523liquid_whoosh_slow_snd66246 60085–60114 ———
257listen353 1–843 listens intently.listens intently to %t.—
9039listen11793 60085–60114 listens intently.listens intently to %t.—
14438listening23116 60085–60114 ———
17203lizardkin_1h_sword_attack31336 60085–60114 ———
17204lizardkin_1h_sword_attack_0131337 60085–60114 ———
17205lizardkin_1h_sword_attack_0231338 60085–60114 ———
17206lizardkin_1h_sword_attack_0331339 60085–60114 ———
17207lizardkin_1h_sword_enter31340 60085–60114 ———
17208lizardkin_bow_attack31341 60085–60114 ———
17209lizardkin_bow_enter31342 60085–60114 ———
17210lizardkin_bow_exit31343 60085–60114 ———
17211lizardkin_cast31344 60085–60114 ———
17212lizardkin_charge_up31345 60085–60114 ———
17213lizardkin_death_enter31346 60085–60114 ———
17214lizardkin_dodge_backhand31347 60085–60114 ———
17215lizardkin_dodge_down31348 60085–60114 ———
17216lizardkin_dodge_forehand31349 60085–60114 ———
17217lizardkin_dodge_thrust31350 60085–60114 ———
17218lizardkin_footstep31351 60085–60114 ———
17219lizardkin_get_up31352 60085–60114 ———
17220lizardkin_jump31353 60085–60114 ———
17221lizardkin_knockback_get_up31354 60085–60114 ———
17222lizardkin_ouch31355 60085–60114 ———
17223lizardkin_ouch_backhand31356 60085–60114 ———
17224lizardkin_ouch_down31357 60085–60114 ———
17225lizardkin_ouch_forehand31358 60085–60114 ———
17226lizardkin_sit_enter31359 60085–60114 ———
17227lizardkin_sit_exit31360 60085–60114 ———
17228lizardkin_sword_exit31361 60085–60114 ———
17229lizardkin_whirl_attack31362 60085–60114 ———
17230lizardkin_wildswing31363 60085–60114 ———
13386lizard_backup20708 60085–60114 ———
13387lizard_fall20709 60085–60114 ———
13388lizard_fly_backup20710 60085–60114 ———
13409lizard_fly_dive20738 60085–60114 ———
13423lizard_fly_enter20761 60085–60114 ———
13389lizard_fly_fall20711 60085–60114 ———
13410lizard_fly_glide20739 60085–60114 ———
13390lizard_fly_idle20712 60085–60114 ———
13391lizard_fly_idle0120713 60085–60114 ———
13392lizard_fly_jump20714 60085–60114 ———
13411lizard_fly_jumpsubstitute20740 60085–60114 ———
13393lizard_fly_jump_substitute20715 60085–60114 ———
13394lizard_fly_run20716 60085–60114 ———
13395lizard_fly_turn_left20717 60085–60114 ———
13396lizard_fly_turn_right20718 60085–60114 ———
13397lizard_fly_walk20719 60085–60114 ———
13398lizard_glide20720 60085–60114 ———
13399lizard_idle20721 60085–60114 ———
13400lizard_idle0120722 60085–60114 ———
13401lizard_jump20723 60085–60114 ———
13402lizard_jump_substitute20724 60085–60114 ———
13403lizard_land20725 60085–60114 ———
13404lizard_long_fall20726 60085–60114 ———
13405lizard_run20727 60085–60114 ———
13406lizard_turn_left20728 60085–60114 ———
13407lizard_turn_right20729 60085–60114 ———
13408lizard_walk20730 60085–60114 ———
523long_fall354 1–843 ———
9040long_fall11794 60085–60114 ———
524long_fall_moving355 1–843 ———
9041long_fall_moving11795 60085–60114 ———
14270look22658 60085–60114 ———
258lookaway356 1–843 looks away.looks away from %t.—
9042lookaway11796 60085–60114 looks away.looks away from %t.—
14334lose_spin22887 60085–60114 ———
16246lose_weapon27723 60085–60114 ———
15126lounge_enter25048 60085–60114 ———
15127lounge_exit25049 60085–60114 ———
15128lounge_idle25050 60085–60114 ———
16017lower_lip_left_down26748 60085–60114 ———
16018lower_lip_right_down26749 60085–60114 ———
2785lr_castlion_snd3921 1–843 ———
9043lr_castlion_snd11797 60085–60114 ———
1454lr_growl_snd1715 1–843 ———
9044lr_growl_snd11798 60085–60114 ———
2808lt_suck2_snd3956 1–843 ———
9045lt_suck2_snd11799 60085–60114 ———
2809lt_suck_snd3957 1–843 ———
9046lt_suck_snd11800 60085–60114 ———
14922lucan_cast_enter24492 60085–60114 ———
14923lucan_cast_exit24493 60085–60114 ———
14924lucan_cast_idle24494 60085–60114 ———
2520lucan_lightning_bolt3126 1–843 ———
9047lucan_lightning_bolt11801 60085–60114 ———
16986lure_fx30772 60085–60114 ———
9048lvlup_achievment_snd11802 60085–60114 ———
12809lynx_backup19567 60085–60114 ———
12810lynx_fall19568 60085–60114 ———
12811lynx_idle19569 60085–60114 ———
12867lynx_idle0119651 60085–60114 ———
12812lynx_jump19570 60085–60114 ———
12813lynx_jump_substitute19571 60085–60114 ———
12814lynx_land19572 60085–60114 ———
12815lynx_long_fall19573 60085–60114 ———
12816lynx_run19574 60085–60114 ———
12817lynx_turn_left19575 60085–60114 ———
12818lynx_turn_right19576 60085–60114 ———
12819lynx_walk19577 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.