AzerothCore
Pages :

creature_addon

<-Back-to:World

The `creature_addon` table

The creature_addon and creature_template_addon tables define different things that are applied on creatures when they are loaded. These "different things" can be for example to have the creature be mounted, to have it emote something, to have it display an aura effect, etc. Through the use of the fields in this table, many things can be changed about the outward visual appearance of the creature. The creature_template_addon table affects all creatures with that creature template ID while the creature_addon table affects individually spawned creatures (so that two creatures using the same template can look different).

NOTE: A creature_addon record will override a creature_template_addon record should they overlap on the same creature.

Table Structure

Field Type Attributes Key Null Default Extra Comment
guid/entry INT UNSIGNED PRI NO 0
path_id INT UNSIGNED NO
mount INT UNSIGNED NO 0
bytes1 INT UNSIGNED NO
bytes2 INT UNSIGNED NO
emote INT UNSIGNED NO
visibilityDistanceType TINYINT UNSIGNED NO
auras text YES

Description of the fields

guid/entry

For creature_addon, this field signifies a unique creature guid. It will affect just that creature whose GUID matches the one specified here. For creature_template_addon, this field signifies the creature_template.entry. It will affect all spawned creatures using that template entry.

path_id

If a creature has waypoint pathed movement, this field hold the waypoint_data.id for the path the creature is to follow.

mount

The model ID of the mount to be used to make the creature appear mounted. The value here overrides the value for the creature's unit field UNIT_FIELD_MOUNTDISPLAYID.

bytes1

The value here overrides the value for the creature's unit field UNIT_FIELD_BYTES_1. It packs four bytes, little-endian:

bytes1 = standState | (petTalents << 8) | (standFlags << 16) | (animTier << 24)

  • byte 0, & 0xFF = stand state: standing, sitting, sleeping, kneeling, submerged
  • byte 1, << 8 = pet talent points: unused on creatures, always 0
  • byte 2, << 16 = stand flags: creep, untrackable
  • byte 3, << 24 = animation tier: 0 Ground, 1 AlwaysStand (AnimTier calls it Swim), 2 Hover, 3 Fly, 4 Submerged

Setting a single field is one shift, so an animation tier of Fly is 3 << 24 = 50331648 and Hover is 2 << 24 = 33554432. Fields combine with OR, for example kneeling while flying is 0x03000008 = 50331656. 0 leaves the creature standing, with no stand flags and the ground tier.

The tier only changes how the client animates the creature; walking, flying and hovering come from the movement flags, from creature_template_movement or from a script.

Stand states, used in byte 0:

Value Stand state Notes
0 Stand
1 Sit
2 Sit chair
3 Sleep
4 Sit low chair
5 Sit medium chair
6 Sit high chair
7 Dead Shows the creature as dead. Combine with the state dead emote to make it look dead.
8 Kneel
9 Submerged Submerges the creature below the ground.

bytes2

The value here overrides the value for the creature's unit field UNIT_FIELD_BYTES_2. The core only uses the first byte, which sets how the creature holds its weapons. The other bytes are ignored.

Value Sheath state Effect
0 SHEATH_STATE_UNARMED Weapons are not drawn, they are shown on the sides or back.
1 SHEATH_STATE_MELEE Melee weapons are drawn and held in the hands.
2 SHEATH_STATE_RANGED Ranged weapon is drawn, melee weapons are shown on the sides.

If bytes2 is 0, the creature keeps its default, which is to have its melee weapons drawn.

emote

Emote ID that the creature should continually perform.

List of often used emote IDs and what they do can be found here.

visibilityDistanceType

This field controls the visibility distance for creatures:

Value Name Distance
0 Normal 100 yards, the default on continents
1 Tiny 25 yards
2 Small 50 yards
3 Large 200 yards
4 Gigantic 400 yards
5 Infinite 533 yards

With Normal, the creature uses the visibility distance of the map.

auras

This field controls any auras to be applied on the creature (both in effect and visually). The value is a list of spell IDs separated by spaces. Spells that do not exist and duplicate spells are skipped, and an error is logged.

List of useful aura entries (examples):

  • '16380' - Makes the creature invisible.
  • '18950' - Makes the creature detect other invisible units (players or creatures).
  • '16380 18950' - Both auras above