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
21852kill_tail_combat48405 60085–60114 ———
3854kill_tail_dust33479 1–843 ———
21074kill_tail_dust45805 60085–60114 ———
21856kill_tail_run48420 60085–60114 ———
25329kill_takeoff_trail56240 60085–60114 ———
25233kill_talking55911 60085–60114 ———
24834kill_talking_idle54833 60085–60114 ———
5737kill_talk_idle35920 1–843 ———
21078kill_talk_idle45809 60085–60114 ———
5738kill_talk_idle0135921 1–843 ———
21079kill_talk_idle0145810 60085–60114 ———
5739kill_talk_idle0235922 1–843 ———
21080kill_talk_idle0245811 60085–60114 ———
5740kill_talk_idle0335923 1–843 ———
21081kill_talk_idle0345812 60085–60114 ———
5741kill_talk_idle0435924 1–843 ———
21082kill_talk_idle0445813 60085–60114 ———
5742kill_talk_idle0535925 1–843 ———
21083kill_talk_idle0545814 60085–60114 ———
5743kill_talk_idle0635926 1–843 ———
21084kill_talk_idle0645815 60085–60114 ———
5744kill_talk_idle0735927 1–843 ———
21085kill_talk_idle0745816 60085–60114 ———
5745kill_talk_idle0835928 1–843 ———
21086kill_talk_idle0845817 60085–60114 ———
5746kill_talk_idle0935929 1–843 ———
21087kill_talk_idle0945818 60085–60114 ———
5747kill_talk_idle1035930 1–843 ———
21088kill_talk_idle1045819 60085–60114 ———
5748kill_talk_idle1135931 1–843 ———
21089kill_talk_idle1145820 60085–60114 ———
5749kill_talk_idle1235932 1–843 ———
21090kill_talk_idle1245821 60085–60114 ———
3855kill_tantrum33480 1–843 ———
21091kill_tantrum45822 60085–60114 ———
21092kill_tantrum_short45823 60085–60114 ———
3856kill_tapfoot33481 1–843 ———
21093kill_tapfoot45824 60085–60114 ———
27009kill_targeted_left60374 60085–60114 ———
27010kill_targeted_right60375 60085–60114 ———
3857kill_taunt33482 1–843 ———
21094kill_taunt45825 60085–60114 ———
5659kill_taunt_combat_art35819 1–843 ———
21095kill_taunt_combat_art45826 60085–60114 ———
6082kill_ta_cast_snd37030 1–843 ———
21071kill_ta_cast_snd45802 60085–60114 ———
25893kill_tcg_head_aura57726 60085–60114 ———
4733kill_tc_teleport_snd34605 1–843 ———
21096kill_tc_teleport_snd45827 60085–60114 ———
25085kill_temp_idle0155502 60085–60114 ———
25086kill_temp_idle0255503 60085–60114 ———
25087kill_temp_idle0355504 60085–60114 ———
25242kill_terrorbird_mount55953 60085–60114 ———
25243kill_terrorbird_mount_backup55954 60085–60114 ———
25244kill_terrorbird_mount_fall55955 60085–60114 ———
25301kill_terrorbird_mount_glide56110 60085–60114 ———
25245kill_terrorbird_mount_idle55956 60085–60114 ———
25246kill_terrorbird_mount_idle0155957 60085–60114 ———
25247kill_terrorbird_mount_jump55958 60085–60114 ———
25248kill_terrorbird_mount_jump_substitute55959 60085–60114 ———
25249kill_terrorbird_mount_land55960 60085–60114 ———
25250kill_terrorbird_mount_long_fall55961 60085–60114 ———
25251kill_terrorbird_mount_run55962 60085–60114 ———
25252kill_terrorbird_mount_turn_left55963 60085–60114 ———
25253kill_terrorbird_mount_turn_right55964 60085–60114 ———
25254kill_terrorbird_mount_walk55965 60085–60114 ———
28041kill_test64265 60085–60114 ———
4283kill_thaiko_sound34090 1–843 ———
21097kill_thaiko_sound45828 60085–60114 ———
3858kill_thanks33484 1–843 ———
21098kill_thanks45829 60085–60114 ———
30833kill_theer_attack01_enter_kerafyrm8469055 60085–60114 ———
30834kill_theer_attack01_kerafyrm8469056 60085–60114 ———
30835kill_theer_attack_kerafyrm8469057 60085–60114 ———
23792kill_theer_charge_up52607 60085–60114 ———
30836kill_theer_dive_edge8469058 60085–60114 ———
30827kill_theer_in_mouth_enter8468651 60085–60114 ———
30828kill_theer_in_mouth_idle8468652 60085–60114 ———
30837kill_theer_knockback_tear8469059 60085–60114 ———
23793kill_theer_mana_blast52608 60085–60114 ———
30886kill_theer_skyshrine_attack01_enter_kerafyrm8470486 60085–60114 ———
30838kill_theer_summon_swords_enter8469060 60085–60114 ———
30839kill_theer_summon_swords_exit8469061 60085–60114 ———
30840kill_theer_summon_swords_idle8469062 60085–60114 ———
30887kill_theer_swords_appear8470487 60085–60114 ———
30858kill_theer_tear_beam_fx8469652 60085–60114 ———
30978kill_theer_whoosh8474888 60085–60114 ———
6419kill_thirsty38346 1–843 ———
21099kill_thirsty45830 60085–60114 ———
3859kill_threaten33485 1–843 ———
21100kill_threaten45831 60085–60114 ———
30375kill_throw8455042 60085–60114 ———
31605kill_throw_barrel8491585 60085–60114 ———
31080kill_throw_molotov8481466 60085–60114 ———
3860kill_thumbsup33486 1–843 ———
21101kill_thumbsup45832 60085–60114 ———
3861kill_thunder_clap33487 1–843 ———
21102kill_thunder_clap45833 60085–60114 ———
31081kill_tied_up8481467 60085–60114 ———
23211kill_tiered_acid_storm51459 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.