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
22293kill_sarnak_2h_sword_dodge_forehand49383 60085–60114 ———
22134kill_sarnak_2h_sword_enter49060 60085–60114 ———
22059kill_sarnak_2h_sword_idle48935 60085–60114 ———
22146kill_sarnak_2h_sword_kick49092 60085–60114 ———
22294kill_sarnak_2h_sword_ouch_backhand49384 60085–60114 ———
22295kill_sarnak_2h_sword_ouch_down49385 60085–60114 ———
22296kill_sarnak_2h_sword_ouch_forehand49386 60085–60114 ———
22297kill_sarnak_2h_sword_ouch_thrust49387 60085–60114 ———
22298kill_sarnak_2h_sword_ouch_thust49388 60085–60114 ———
22299kill_sarnak_2h_sword_parry_backhand49389 60085–60114 ———
22300kill_sarnak_2h_sword_parry_down49390 60085–60114 ———
22301kill_sarnak_2h_sword_parry_forehand49391 60085–60114 ———
22302kill_sarnak_agree49392 60085–60114 ———
22303kill_sarnak_applaude49393 60085–60114 ———
22304kill_sarnak_attention49394 60085–60114 ———
22060kill_sarnak_backup48936 60085–60114 ———
22061kill_sarnak_backup_run48937 60085–60114 ———
22305kill_sarnak_beckon49395 60085–60114 ———
22306kill_sarnak_beg49396 60085–60114 ———
22307kill_sarnak_boggle49397 60085–60114 ———
22205kill_sarnak_bostaff_attack49203 60085–60114 ———
22206kill_sarnak_bostaff_attack0149204 60085–60114 ———
22207kill_sarnak_bostaff_attack0249205 60085–60114 ———
22208kill_sarnak_bostaff_attack0349206 60085–60114 ———
22308kill_sarnak_bostaff_dodge_backhand49398 60085–60114 ———
22309kill_sarnak_bostaff_dodge_down49399 60085–60114 ———
22310kill_sarnak_bostaff_dodge_forehand49400 60085–60114 ———
22062kill_sarnak_bostaff_idle48938 60085–60114 ———
22311kill_sarnak_bostaff_ouch_backhand49401 60085–60114 ———
22312kill_sarnak_bostaff_ouch_down49402 60085–60114 ———
22313kill_sarnak_bostaff_ouch_forehand49403 60085–60114 ———
22314kill_sarnak_bostaff_ouch_thrust49404 60085–60114 ———
22315kill_sarnak_bostaff_parry_backhand49405 60085–60114 ———
22316kill_sarnak_bostaff_parry_down49406 60085–60114 ———
22317kill_sarnak_bostaff_parry_forehand49407 60085–60114 ———
22318kill_sarnak_bostaff_parry_thrust49408 60085–60114 ———
22319kill_sarnak_bow49409 60085–60114 ———
22153kill_sarnak_bow_enter49105 60085–60114 ———
22154kill_sarnak_bow_idle49106 60085–60114 ———
22320kill_sarnak_brandish49410 60085–60114 ———
22321kill_sarnak_bye49411 60085–60114 ———
22322kill_sarnak_cackle49412 60085–60114 ———
22323kill_sarnak_cheer49413 60085–60114 ———
22324kill_sarnak_chuckle49414 60085–60114 ———
22063kill_sarnak_combat_idle48939 60085–60114 ———
22325kill_sarnak_confused49415 60085–60114 ———
22326kill_sarnak_crazy49416 60085–60114 ———
22327kill_sarnak_cringe49417 60085–60114 ———
22328kill_sarnak_cry49418 60085–60114 ———
22329kill_sarnak_curse49419 60085–60114 ———
22330kill_sarnak_curtsey49420 60085–60114 ———
22331kill_sarnak_curtsey249421 60085–60114 ———
22332kill_sarnak_cutthroat49422 60085–60114 ———
22135kill_sarnak_dead49061 60085–60114 ———
22136kill_sarnak_dead_enter49062 60085–60114 ———
22333kill_sarnak_doubletake49423 60085–60114 ———
22209kill_sarnak_dual_wield_attack49207 60085–60114 ———
22184kill_sarnak_dual_wield_attack0149150 60085–60114 ———
22210kill_sarnak_dual_wield_attack0249208 60085–60114 ———
22334kill_sarnak_dual_wield_attack0349424 60085–60114 ———
22335kill_sarnak_dual_wield_dodge_backhand49425 60085–60114 ———
22336kill_sarnak_dual_wield_dodge_down49426 60085–60114 ———
22337kill_sarnak_dual_wield_dodge_forehand49427 60085–60114 ———
22064kill_sarnak_dual_wield_idle48940 60085–60114 ———
22338kill_sarnak_dual_wield_kick49428 60085–60114 ———
22339kill_sarnak_dual_wield_ouch_backhand49429 60085–60114 ———
22340kill_sarnak_dual_wield_ouch_down49430 60085–60114 ———
22341kill_sarnak_dual_wield_ouch_forehand49431 60085–60114 ———
22342kill_sarnak_dual_wield_parry_down49432 60085–60114 ———
22343kill_sarnak_duck49433 60085–60114 ———
22065kill_sarnak_fall48941 60085–60114 ———
22344kill_sarnak_fflirt49434 60085–60114 ———
26996kill_sarnak_firestrips_trail60277 60085–60114 ———
22211kill_sarnak_fishing_cast49209 60085–60114 ———
22212kill_sarnak_fishing_fight49210 60085–60114 ———
22213kill_sarnak_fishing_reel_in49211 60085–60114 ———
22345kill_sarnak_fistclapping49435 60085–60114 ———
22346kill_sarnak_flex49436 60085–60114 ———
22347kill_sarnak_flirt49437 60085–60114 ———
22348kill_sarnak_flustered49438 60085–60114 ———
22214kill_sarnak_forestry_chopping49212 60085–60114 ———
22215kill_sarnak_forestry_success49213 60085–60114 ———
22349kill_sarnak_frustration49439 60085–60114 ———
22350kill_sarnak_gag49440 60085–60114 ———
22216kill_sarnak_gathering_search49214 60085–60114 ———
22217kill_sarnak_gathering_success49215 60085–60114 ———
22351kill_sarnak_giggle49441 60085–60114 ———
22352kill_sarnak_glare49442 60085–60114 ———
22353kill_sarnak_grumble49443 60085–60114 ———
22354kill_sarnak_happy49444 60085–60114 ———
22355kill_sarnak_headslap49445 60085–60114 ———
22356kill_sarnak_hearnoevil49446 60085–60114 ———
22357kill_sarnak_heartattack49447 60085–60114 ———
22358kill_sarnak_heelclick49448 60085–60114 ———
22359kill_sarnak_hellno49449 60085–60114 ———
22360kill_sarnak_hello49450 60085–60114 ———
22361kill_sarnak_hourglass49451 60085–60114 ———
22362kill_sarnak_howl49452 60085–60114 ———
22066kill_sarnak_idle48942 60085–60114 ———
22067kill_sarnak_idle0148943 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.