creature_template

<-Back-to:World

The `creature_template` table

This table contains the description of creatures. Each spawned creature is an instance of a template present in this table, this means every creature MUST be defined in this table.

Structure

Field Type Null Key Default Extra Comment
entry MEDIUMINT UNSIGNED NO PRI 0
difficulty_entry_1 MEDIUMINT UNSIGNED NO 0
difficulty_entry_2 MEDIUMINT UNSIGNED NO 0
difficulty_entry_3 MEDIUMINT UNSIGNED NO 0
KillCredit1 INT UNSIGNED NO 0
KillCredit2 INT UNSIGNED NO 0
modelid1 MEDIUMINT UNSIGNED NO 0
modelid2 MEDIUMINT UNSIGNED NO 0
modelid3 MEDIUMINT UNSIGNED NO 0
modelid4 MEDIUMINT UNSIGNED NO 0
name char(100) NO MUL 0
subname char(100) YES (NULL)
IconName char(100) YES (NULL)
gossip_menu_id MEDIUMINT UNSIGNED NO 0
minlevel TINYINT UNSIGNED NO 1
maxlevel TINYINT UNSIGNED NO 1
exp SMALLINT NO 0
faction SMALLINT UNSIGNED NO 0
npcflag INT UNSIGNED NO 0
speed_walk FLOAT NO 1 Result of 2.5/2.5, most common value
speed_run FLOAT NO 1.14286 Result of 8.0/7.0, most common value
speed_swim FLOAT NO 1
speed_swim FLOAT NO 1
detection_range FLOAT NO 20
scale FLOAT NO 1
rank TINYINT UNSIGNED NO 0
dmgschool TINYINT NO 0
BaseAttackTime INT UNSIGNED NO 0
RangeAttackTime INT UNSIGNED NO 0
BaseVariance FLOAT NO 1
RangeVariance FLOAT NO 1
unit_class TINYINT UNSIGNED NO 0
unit_flags INT UNSIGNED NO 0
unit_flags2 INT UNSIGNED NO 0
dynamicflags INT UNSIGNED NO 0
family TINYINT NO 0
trainer_type TINYINT NO 0
trainer_spell MEDIUMINT UNSIGNED NO 0
trainer_class TINYINT UNSIGNED NO 0
trainer_race TINYINT UNSIGNED NO 0
type TINYINT UNSIGNED NO 0
type_flags INT UNSIGNED NO 0
lootid MEDIUMINT UNSIGNED NO 0
pickpocketloot MEDIUMINT UNSIGNED NO 0
skinloot MEDIUMINT UNSIGNED NO 0
PetSpellDataId MEDIUMINT UNSIGNED NO 0
VehicleId MEDIUMINT UNSIGNED NO 0
mingold MEDIUMINT UNSIGNED NO 0
maxgold MEDIUMINT UNSIGNED NO 0
AIName char(64) NO
MovementType TINYINT UNSIGNED NO 0
HoverHeight FLOAT NO 1
HealthModifier FLOAT NO 1
ManaModifier FLOAT NO 1
ArmorModifier FLOAT NO 1
DamageModifier FLOAT NO 1
ExperienceModifier FLOAT NO 1
RacialLeader TINYINT UNSIGNED NO 0
movementId INT UNSIGNED NO 0
RegenHealth TINYINT UNSIGNED NO 1
mechanic_immune_mask INT UNSIGNED NO 0
spell_school_immune_mask INT UNSIGNED NO 0
flags_extra INT UNSIGNED NO 0
ScriptName char(64) NO
VerifiedBuild SMALLINT YES 0

Description of the fields

entry

Creature's unique id.

difficulty_entry_x

name entry difficulty_entry_1 difficulty_entry_2 difficulty_entry_3
Anomalus 26763 30529 0 0
Sindragosa 36853 38265 38266 38267

Anomalus is a 5 man boss located in The Nexus. You can fight him on two types of difficulties (normal dungeon and heroic dungeon). Depending on the type of difficulty, bosses have different statistics like health and damage. In case of Anomalus information from entry 26763 is used when you fight him at normal difficulty and entry 30529 is used when you fight him at heroic difficulty.

Sindragosa, a raid boss encounter located in the Icecrown Citadel can be fought on 4 different difficulties due to the introduction of heroic raid modes in Patch 3.2 (10man normal/heroic, 25man normal/heroic). Depending on the type of difficulty, she must have different statistics. So if you see her in 10man normal raid she will use information from entry 36853, in a 25man normal raid entry 38265 will be used and so on. This is in stark contrast to raid bosses such as Patchwerk and XT-002 Deconstructor, located in Naxxramas and Ulduar respectively, who only have two different raid modes (10-man 'normal'/25-man 'normal'). Hardmodes within the Ulduar raid do not have their own template, due to game mechanics engaging the harder difficulty during the encounter itself.

Here is a special case with the Alterac Valley battleground. There are 4 level brackets where the NPCs are made easier or harder, depending on your level bracket (Added in WoW patch 3.2.2 when level 80 characters received their own bracket for this battleground and all brackets below level 80 received their own level of difficulty). The same concept applies to the Isle of Conquest battleground, with only two brackets.

If you look at the database you will notice a very characteristic pattern which is summarized in table below:

name entry difficulty_entry_1 difficulty_entry_2 difficulty_entry_3
Normal Creature Different than 0 0 0 0
Dungeon Creature Normal Dungeon Heroic Dungeon 0 0
Raid Creature 10man Normal Raid 25man Normal Raid 10man Heroic Raid 25man Heroic Raid
Battleground 51- 59 60-69 70-79 80

KillCredit1

If this is a kill credit template – one that is a dummy template that is used when more than one creature can count as a kill in a quest, then this is a link to the first entry of the creature that could be killed to give quest credit.

KillCredit2

If this is a kill credit template – one that is a dummy template that is used when more than one creature can count as a kill in a quest, then this is a link to the second entry of the creature that could be killed to give quest credit. If more than two creatures can be killed and count toward a single objective, an smart or C++ script will be required.

modelidx

A random graphical model that the client applies on this creature. Of course if you specify only one modelid and the rest will be equal to 0, model you have set won't be chosen randomly. This is a creature_model_info.modelid

name

Base name of the creature.

subname

The subname of the creature that appears in <> below the creature's name.

IconName

Used to tell the player what kind of NPC this creature is.

IconName description
Directions Used for guards and teleporter NPC's.
Gunner Indicator of a turret NPC/Player Controlled.
vehichleCursor Indicator that this is a PCV (Player Controlled Vehicle)
Driver Shows a steering wheel icon when mouse over.
Attack Shows a sword icon indicating you can attack this target.
Buy Shows a brown bag icon usually if the NPC only sells things.
Speak Shows a chat bubble icon if this NPC has quest/gossip options.
Pickup Shows a hand grasping icon if this NPC can be picked up for quest/items.
Interact Shows cog icon commonly used for quest/transport.
Trainer Shows a book icon, identifying this NPC as a trainer.
Taxi Shows a boot with wings icon identifying this NPC as a taxi.
Repair Shows a anvil icon identifying that this NPC can repair.
LootAll Shows a multiple brown bag icon (same as holding shift before looting a creature).
Quest Unused or unknown (see entry 32870 “The Real Ronakada”).
PVP Unused or Unknown (see entry 29387 “Arena Master: Dalaran Arena”).

Attention! This is not required to make the NPC function unless you are using scripts or gossip options. Names are case sensitive, If in doubt use an example above.

gossip_menu_id

The gossip ID of this creature. This field is obtained from sniff (update fields). If you can not sniff this value, and need to make one up, it must be > 50000. This field is the link to gossip_menu.MenuID.

minlevel

The minimum level of the creature if the creature has a level range.

maxlevel

The maximum level of the creature if the creature has a level range. When added to world, a level in chosen in the specified level range.

exp

The expansion table the creatures health value is taken from. Values are from 0 to 2. See creature_classlevelstats.

exp name
0 Classic
1 The Burning Crusade
2 Wrath of The Lich King

faction

The faction of the creature. See FactionTemplate. Just because more than one faction has the same name, the inter-faction relationships can be different.

Note: This field also controls the creature family assistance mechanic. Only creatures with the same faction will assist each other.

npcflag

A bitmask that represents what NPC flags the creature has. Each bit controls a different flag and to combine flags, you can add each flag that you want, in effect activating the respective bits.

Flag Name Comment
1 0x00000001 Gossip If creature has more gossip options, add this flag to bring up a menu.
2 0x00000002 Quest Giver Any creature giving or taking quests needs to have this flag.
16 0x00000010 Trainer Allows the creature to have a trainer list to teach spells
32 0x00000020 Class Trainer Is class trainer
64 0x00000040 Profession Trainer Is profession trainer
128 0x00000080 Vendor Is vendor (generic) Any creature selling items needs to have this flag.
256 0x00000100 Vendor Ammo Is vendor (ammo)
512 0x00000200 Vendor Food Is vendor (food)
1024 0x00000400 Vendor Poison Is vendor (poison)
2048 0x00000800 Vendor Reagent Is vendor (Reagent)
4096 0x00001000 Repairer Creatures with this flag can repair items.
8192 0x00002000 Flight Master Any creature serving as flight master has this.
16384 0x00004000 Spirit Healer Makes the creature invisible to alive characters and has the resurrect function.
32768 0x00008000 Spirit Guide Is spirit guide
65536 0x00010000 Innkeeper Creatures with this flag can set hearthstone locations.
131072 0x00020000 Banker Creatures with this flag can show the bank
262144 0x00040000 Petitioner Handles guild/arena petitions
524288 0x00080000 Tabard Designer Allows the designing of guild tabards.
1048576 0x00100000 Battlemaster Creatures with this flag port players to battlegrounds.
2097152 0x00200000 Auctioneer Allows creature to display auction list.
4194304 0x00400000 Stable Master Has the option to stable pets for hunters.
8388608 0x00800000 Guild Banker Is guild banker
16777216 0x01000000 Spellclick Needs data on npc_spellclick_spells table
67108864 0x04000000 Mailbox NPC will act like a mailbox (opens mailbox with right-click)

So if you want a NPC that is a quest giver(2), a vendor(128) and can repair(4096) you just add specific flags together: 2+128+4096=4226

speed_walk

Controls how fast the creature can walk. For vehicles: increases fly speed.

speed_run

Controls how fast the creature can run. For vehicles: increases ground movement speed.

speed_swim

Controls how fast the creature can swim.

speed_flight

Controls how fast the creature can fly.

detection_range

Controls the range at which creatures detect and see players.

scale

If non-zero, this field defines the size of how the model of the creature appears ingame. If zero, it will use default model size taken from the DBC.

rank

The rank of the creature:

Rank Name Default Respawn Time Creature.spawntimesecs Corpse Decay Time Worldserver.conf (Corpse.Decay) Total Default Respawn spawntimesecs + Corpse.Decay
0 Normal 5 min 60 sec 6 min
1 Elite 5 min 5 min 10 min
2 Rare Elite 5 min 5 min 10 min
3 Boss 5 min 1 hour 1 hour, 5 min
4 Rare 5 min 5 min 10 min

Note 1: An NPC's rank is mostly visual (which also requires your Cache to be cleared to see changes). Changing this value will not change its health, damage, or loot. However, it will change the respawn time of the creature.

Note 2: Respawn times can be modified in two other places: Creature.spawntimesecs (only for that single GUID of the creature) and in the worldserver.conf file under the “Corpse.Decay” settings (for ALL creatures of the same rank). The default `spawntimesecs` for all spawned creatures is 300 seconds (5 minutes). For example, using the “.npc add” command to spawn a “Normal” NPC will give it a default respawn time of 6 minutes (spawntimesecs + Corpse.Decay time). Also, the creature must decay first before it can respawn. For this reason, the Corpse Decay Time of the creature is also it's minimum respawn time, since setting the creature's Creature.spawntimesecs = 0 will remove the Default Respawn Time. In the example above, setting our Normal NPC's spawntimesecs = 0 will mean the creature's respawn time decreases from 6 minutes to 60 seconds.

Note 3: If you want the creature to show a skull or “??” in the portrait (often with Bosses), set the type_flags to 4.

dmgschool

Creature's melee damage school.

ID Name
0 SPELL_SCHOOL_NORMAL
1 SPELL_SCHOOL_HOLY
2 SPELL_SCHOOL_FIRE
3 SPELL_SCHOOL_NATURE
4 SPELL_SCHOOL_FROST
5 SPELL_SCHOOL_SHADOW
6 SPELL_SCHOOL_ARCANE

BaseAttackTime

This is the base time that determines how long a creature must wait between melee attacks. This time is in milliseconds.

RangeAttackTime

This is the base time that determines how long a creature must wait between ranged attacks. This time is in milliseconds.

BaseVariance

Value to customize the creature's damage output. See DamageModifier.

Non-custom creatures should always leave this at 1.

RangeVariance

Value to customize the creature's damage output. See DamageModifier.

Non-custom creatures should always leave this at 1.

unit_class

This is the creature's class, and it dictates levels of health and mana. Also note that health and mana will change according to expHealthModifier, and ManaModifier. Not setting this value will report a minor warning in the “DB_Errors.log”.

Value Name Power Shown
1 CLASS_WARRIOR health only (equal to rogue)
2 CLASS_PALADIN health & mana (more health than mage but less mana)
4 CLASS_ROGUE Health only (equal to warrior)
8 CLASS_MAGE health & mana (less health than paladin but more mana)

unit_flags

Allows the manual application of unit flags to creatures. Again this is a bitmask field and to apply more than one flag, just add the different numbers. Some possible flags are:

Flag Name Comments
1 0x00000001 UNIT_FLAG_SERVER_CONTROLLED set only when unit movement is controlled by server - by SPLINE/MONSTER_MOVE packets, together with UNIT_FLAG_STUNNED; only set to units controlled by client; client function CGUnit_C::IsClientControlled returns false when set for owner
2 0x00000002 UNIT_FLAG_NON_ATTACKABLE Not attackable
4 0x00000004 UNIT_FLAG_DISABLE_MOVE
8 0x00000008 UNIT_FLAG_PLAYER_CONTROLLED Controlled by player, use _IMMUNE_TO_PC instead of _IMMUNE_TO_NPC
16 0x00000010 UNIT_FLAG_RENAME
32 0x00000020 UNIT_FLAG_PREPARATION Don't take reagents for spells with SPELL_ATTR_EX5_NO_REAGENT_WHILE_PREP
64 0x00000040 UNIT_FLAG_UNK_6 not sure what it does, but it is needed to cast nontriggered spells in smart_scripts
128 0x00000080 UNIT_FLAG_NOT_ATTACKABLE_1 ?? (UNIT_FLAG_PLAYER_CONTROLLED
256 0x00000100 UNIT_FLAG_IMMUNE_TO_PC Disables combat/assistance with PlayerCharacters (PC)
512 0x00000200 UNIT_FLAG_IMMUNE_TO_NPC Disables combat/assistance with NonPlayerCharacters (NPC)
1024 0x00000400 UNIT_FLAG_LOOTING Loot animation
2048 0x00000800 UNIT_FLAG_PET_IN_COMBAT In combat? 2.0.8
4096 0x00001000 UNIT_FLAG_PVP Changed in 3.0.3
8192 0x00002000 UNIT_FLAG_SILENCED Can't cast spells
16384 0x00004000 UNIT_FLAG_CANNOT_SWIM 2.0.8
32768 0x00008000 UNIT_FLAG_SWIMMING Shows swim animation in water
65536 0x00010000 UNIT_FLAG_NON_ATTACKABLE_2 Removes attackable icon, if on yourself, cannot assist self but can cast TARGET_SELF spells - added by SPELL_AURA_MOD_UNATTACKABLE
131072 0x00020000 UNIT_FLAG_PACIFIED Creature will not attack
262144 0x00040000 UNIT_FLAG_STUNNED 3.0.3 ok
524288 0x00080000 UNIT_FLAG_IN_COMBAT ('AffectingCombat' from UnitFlags.cs in WPP)
1048576 0x00100000 UNIT_FLAG_TAXI_FLIGHT Disable casting at client side spell not allowed by taxi flight (mounted?), probably used with 0x4 flag
2097152 0x00200000 UNIT_FLAG_DISARMED 3.0.3, disable melee spells casting…, “Required melee weapon” added to melee spells tooltip.
4194304 0x00400000 UNIT_FLAG_CONFUSED Confused.
8388608 0x00800000 UNIT_FLAG_FLEEING ('Feared' from UnitFlags.cs in WPP)
16777216 0x01000000 UNIT_FLAG_POSSESSED Under direct client control by a player (possess or vehicle)
33554432 0x02000000 UNIT_FLAG_NOT_SELECTABLE Can't be selected by mouse or with /target {name} command.
67108864 0x04000000 UNIT_FLAG_SKINNABLE Skinnable
134217728 0x08000000 UNIT_FLAG_MOUNT The client seems to handle it perfectly. Also used when making custom mounts.
268435456 0x10000000 UNIT_FLAG_UNK_28 (PreventKneelingWhenLooting from UnitFlags.cs in WPP)
536870912 0x20000000 UNIT_FLAG_PREVENT_EMOTES_FROM_CHAT_TEXT Prevent automatically playing emotes from parsing chat text, for example “lol” in /say, ending message with ? or !, or using /yell
1073741824 0x40000000 UNIT_FLAG_SHEATHE
2147483648 0x80000000 UNIT_FLAG_IMMUNE Immune to damage

unit_flags2

Allows additional application of unit flags to creatures. Again, this is a bitmask field and to apply more than one flag, just add the different numbers. Some possible flags are:

Flag Name Comments
1 0x00000001 UNIT_FLAG2_FEIGN_DEATH
2 0x00000002 UNIT_FLAG2_HIDE_BODY Hide unit model (show only player equip)
4 0x00000004 UNIT_FLAG2_IGNORE_REPUTATION
8 0x00000008 UNIT_FLAG2_COMPREHEND_LANG
16 0x00000010 UNIT_FLAG2_MIRROR_IMAGE
32 0x00000020 UNIT_FLAG2_DO_NOT_FADE_IN Unit model instantly appears when summoned (does not fade in)
64 0x00000040 UNIT_FLAG2_FORCE_MOVEMENT
128 0x00000080 UNIT_FLAG2_DISARM_OFFHAND
256 0x00000100 UNIT_FLAG2_DISABLE_PRED_STATS Player has disabled predicted stats (Used by raid frames)
1024 0x00000400 UNIT_FLAG2_DISARM_RANGED this does not disable ranged weapon display (maybe additional flag needed?)
2048 0x00000800 UNIT_FLAG2_REGENERATE_POWER
4096 0x00001000 UNIT_FLAG2_RESTRICT_PARTY_INTERACTION Restrict interaction to party or raid
8192 0x00002000 UNIT_FLAG2_PREVENT_SPELL_CLICK Prevent spellclick
16384 0x00004000 UNIT_FLAG2_ALLOW_ENEMY_INTERACT
32768 0x00008000 UNIT_FLAG2_CANNOT_TURN
65536 0x00010000 UNIT_FLAG2_UNK2
131072 0x00020000 UNIT_FLAG2_PLAY_DEATH_ANIM Plays special death animation upon death
262144 0x00040000 UNIT_FLAG2_ALLOW_CHEAT_SPELLS allows casting spells with AttributesEx7 & SPELL_ATTR7_IS_CHEAT_SPELL

dynamicflags

Flags that control visual appearance of the creature.

A few known flags and their use are:

Flag Name Comments
0 0x00 UNIT_DYNFLAG_NONE
1 0x01 UNIT_DYNFLAG_LOOTABLE
2 0x02 UNIT_DYNFLAG_TRACK_UNIT Creature's location will be seen as a small dot in the minimap
4 0x04 UNIT_DYNFLAG_TAPPED Makes creatures name appear grey (Lua_UnitIsTapped)
8 0x08 UNIT_DYNFLAG_TAPPED_BY_PLAYER Lua_UnitIsTappedByPlayer usually used by PCVs (Player Controlled Vehicles)
16 0x10 UNIT_DYNFLAG_SPECIALINFO
32 0x20 UNIT_DYNFLAG_DEAD Makes the creature appear dead (this DOES NOT make the creature's name grey or not attack players).
64 0x40 UNIT_DYNFLAG_REFER_A_FRIEND
128 0x80 UNIT_DYNFLAG_TAPPED_BY_ALL_THREAT_LIST Lua_UnitIsTappedByAllThreatList

family

The family this creature belongs to.

ID Family ID Family
1. Wolf 26. Owl
2. Cat 27. Wind Serpent
3. Spider 28. Remote Control
4. Bear 29. Felguard
5. Boar 30. Dragonhawk
6. Crocolisk 31. Ravager
7. Carrion Bird 32. Warp Stalker
8. Crab 33. Sporebat
9. Gorilla 34. Nether Ray
11. Raptor 35. Serpent
12. Tallstrider 37. Moth
15. Felhunter 38. Chimaera
16. Voidwalker 39. Devilsaur
17. Succubus 40. Ghoul
19. Doomguard 41. Silithid
20. Scorpid 42. Worm
21. Turtle 43. Rhino
23. Imp 44. Wasp
24. Bat 45. Core Hound
25. Hyena 46. Spirit Beast

trainer_type

If the NPC is a trainer (has the trainer flag), then this field controls what kind of trainer it is. Both this field and the related field must be filled in for a trainer to work correctly.

ID Type Related Field Comments
0 TRAINER_TYPE_CLASS trainer_class Trains class spells
1 TRAINER_TYPE_MOUNTS trainer_race Trains riding skill
2 TRAINER_TYPE_TRADESKILLS trainer_spell Trains professions
3 TRAINER_TYPE_PETS trainer_class Trains pet skills

trainer_spell

If the NPC is a trainer that teaches professions (trainer_type = 2), then the player must already know the spell ID specified here to be able to talk to this NPC.

trainer_class

If the NPC is a class trainer or a pet trainer (trainer_type = 0 or 3), then the player's class must be the same as the value specified here to talk to this trainer. For pet trainers, this value must be 3 (hunter). See characters.class

trainer_race

If the NPC is a mount trainer (trainer_type = 1), then the player's race must be the same as the value specified here to talk to this trainer. See characters.race

type

The type of the creature.

ID Type
0 None
1 Beast
2 Dragonkin
3 Demon
4 Elemental
5 Giant
6 Undead
7 Humanoid
8 Critter
9 Mechanical
10 Not specified
11 Totem
12 Non-Combat Pet
13 Gas Cloud

type_flags

This field can control whether a mob is minable or herbable or lootable by engineer. If it is either of those three, then the loot given when it is skinned/mined will be stored in the skinning_loot_template table. It also controls, whether this mob can be tamed by a hunter. Other fields have no special meaning on the serverside. The entire field will be send to the client in SMSG_CREATURE_QUERY_RESPONSE

Flag Name Comments
1 0x00000001 CREATURE_TYPE_FLAG_TAMEABLE Makes the mob tameable (must also be a beast and have family set)
2 0x00000002 CREATURE_TYPE_FLAG_VISIBLE_TO_GHOSTS Creature are also visible for not alive player. Allow gossip interaction if npcflag allow?
4 0x00000004 CREATURE_TYPE_FLAG_BOSS_MOB Changes creature's visible level to “??” in the creature's portrait - Immune to Knockback.
8 0x00000008 CREATURE_TYPE_FLAG_DO_NOT_PLAY_WOUND_PARRY_ANIMATION Does not play wound animation on parry.
16 0x00000010 CREATURE_TYPE_FLAG_NO_FACTION_TOOLTIP Hides tooltip faction.
32 0x00000020 CREATURE_TYPE_FLAG_MORE_AUDIBLE
64 0x00000040 CREATURE_TYPE_FLAG_SPELL_ATTACKABLE Spell attackable.
128 0x00000080 CREATURE_TYPE_FLAG_INTERACT_WHILE_DEAD Player can interact with the creature if its dead (not player dead)
256 0x00000100 CREATURE_TYPE_FLAG_SKIN_WITH_HERBALISM Makes mob herbable
512 0x00000200 CREATURE_TYPE_FLAG_SKIN_WITH_MINING Makes mob minable
1024 0x00000400 CREATURE_TYPE_FLAG_NO_DEATH_MESSAGE Does not combatlog death.
2048 0x00000800 CREATURE_TYPE_FLAG_ALLOW_MOUNTED_COMBAT Creature can remain mounted when entering combat
4096 0x00001000 CREATURE_TYPE_FLAG_CAN_ASSIST Can aid any player in combat if in range?
8192 0x00002000 CREATURE_TYPE_FLAG_NO_PET_BAR Is using pet bar.
16384 0x00004000 CREATURE_TYPE_FLAG_MASK_UID
32768 0x00008000 CREATURE_TYPE_FLAG_SKIN_WITH_ENGINEERING Makes mob lootable by engineer
65536 0x00010000 CREATURE_TYPE_FLAG_TAMEABLE_EXOTIC Tamable as an exotic pet. Normal tamable flag must also be set.
131072 0x00020000 CREATURE_TYPE_FLAG_USE_MODEL_COLLISION_SIZE Collision related. (always using default collision box?)
262144 0x00040000 CREATURE_TYPE_FLAG_ALLOW_INTERACTION_WHILE_IN_COMBAT Is siege weapon.
524288 0x00080000 CREATURE_TYPE_FLAG_COLLIDE_WITH_MISSILES Projectiles can collide with this creature - interacts with TARGET_DEST_TRAJ
1048576 0x00100000 CREATURE_TYPE_FLAG_NO_NAME_PLATE Hides nameplate.
2097152 0x00200000 CREATURE_TYPE_FLAG_DO_NOT_PLAY_MOUNTED_ANIMATIONS Does not play mounted animations.
4194304 0x00400000 CREATURE_TYPE_FLAG_IS_LINK_ALL
8388608 0x00800000 CREATURE_TYPE_FLAG_INTERACT_ONLY_WITH_CREATOR Can only interact with its creator.
16777216 0x01000000 CREATURE_TYPE_FLAG_DO_NOT_PLAY_UNIT_EVENT_SOUNDS
33554432 0x02000000 CREATURE_TYPE_FLAG_HAS_NO_SHADOW_BLOB
67108864 0x04000000 CREATURE_TYPE_FLAG_TREAT_AS_RAID_UNIT Creature can be targeted by spells that require target to be in caster's party/raid
134217728 0x08000000 CREATURE_TYPE_FLAG_FORCE_GOSSIP Allows the creature to display a single gossip option.
268435456 0x10000000 CREATURE_TYPE_FLAG_DO_NOT_SHEATHE
536870912 0x20000000 CREATURE_TYPE_FLAG_DO_NOT_TARGET_ON_INTERACTION
1073741824 0x40000000 CREATURE_TYPE_FLAG_DO_NOT_RENDER_OBJECT_NAME
2147483648 0x80000000 CREATURE_TYPE_FLAG_UNIT_IS_QUEST_BOSS

lootid

The ID of the loot template ID that this creature should use to generate loots. See creature_loot_template.entry

pickpocketloot

The ID of the pickpocketing loot template that this creature should use to generate pickpocketing loots. See pickpocketing_loot_template.entry

skinloot

The ID of the skinning loot template that this creature should use to generate skinning loots. See skinning_loot_template.entry

PetSpellDataId

ID, found in CreatureSpellData.dbc, that displays what spells the pet has in the client.

VehicleId

Entry of vehicle if creature is/has a vehicle entry. This field determines how the player appears on the vehicle, how the vehicle moves, and whether or not the vehicle action bar is shown. For example, a vehicleID of 292 will make the player invisible, prevent the vehicle from strafing left/right (but will allow forwards/backwards), and will show the vehicle action bar spells (which are defined in spell1-8). An npc_spellclick_spells entry must be made for this creature entry in order for this to work.

mingold

Minimum money that the creature drops when killed, in copper.

maxgold

Maximum money that the creature drops when killed, in copper.

AIName

This field is overridden by ScriptName field if both are set.

Name Description
NullCreatureAI Empty AI, creature does nothing; cannot be charmed.
TriggerAI Same as “NullCreatureAI”, except that the creature casts the spell from field spell1 when summoned.
AggressorAI Creature attacks when entering aggro radius; uses only melee attacks.
ReactorAI Creature attacks only if aggroed; uses only melee attacks.
PassiveAI Creature behaves passive, cannot attack.
CritterAI Critter which flees if attacked.
GuardAI Creature is a zone guard.
PetAI Creature is a pet.
TotemAI Creature casts spell from field spell1; does not move.
CombatAI Creature attacks as soon as something is in aggro range; uses also spells.
ArcherAI Creature casts spell from field spell1; chases the victim.
TurretAI Creature attacks using spell from field spell1; does not move.
VehicleAI Creature acts as player vehicle.
SmartAI Creature uses the “smart_scripts” table to specify it's behaviour.

MovementType

The creature's default movement type.

ID Type
0 Idle; stay in one place
1 Random movement inside the wander_distance radius
2 Waypoint movement

HoverHeight

Distance above the ground that the creature will hover if it has MOVEMENTFLAG_DISABLE_GRAVITY enabled. Value taken from sniffs.

HealthModifier

Used to modify the base Level/Class health of a creature. This field comes from WDB.

ManaModifier

Used to modify the base Level/Class mana of a creature. This field comes from WDB.

ArmorModifier

Used to modify the base Level/Class armor of a creature.

DamageModifier

Used to modify the Minimum/Maximum damage of a creature.

The formulas to calculate the damage output are:

MINDAMAGE = 1) MAXDAMAGE = 2)

damage_base comes from the creature_classlevelstats table and takes its value either from damage_base, damage_exp1 or damage_exp2 according to the creature's value in exp (0 = base_damage, 1 = damage_exp1, 2 = damage_exp2).

BaseAttackTime is either BaseAttackTime or RangeAttackTime depending on the type of attack.

attackpower is either attackpower or rangedattackpower depending on the type of attack.

BaseVariance is either BaseVariance or RangeVariance depending on the type of attack.

ExperienceModifier

TODO!

RacialLeader

A flag with two possible values: '1' or '0' indicating whether the creature is a racial leader or not. Killing racial leaders grants 100 honor.

entry name
2784 King Magni Bronzebeard
3057 Cairne Bloodhoof
4949 Thrall
7999 Tyrande Whisperwind
10181 Lady Sylvanas Windrunner
16802 Lor'themar Theron
17468 Prophet Velen
29611 King Varian Wrynn
36648 Baine Bloodhoof (Leader)
37764 Lor'themar Theron

movementId

We have no idea what this field does. It is passed directly to the client.

RegenHealth

Boolean '1' or '0' controlling whether the creature should regenerate it's health or not.

mechanic_immune_mask

This makes the creature immune to specific spell natures. See Spell.dbc at row effect_X_mechanic_id.

Uses references from SpellMechanic.dbc.

Flag Type Comment
1 0x00000001 MECHANIC_CHARM
2 0x00000002 MECHANIC_DISORIENTED
4 0x00000004 MECHANIC_DISARM
8 0x00000008 MECHANIC_DISTRACT
16 0x00000010 MECHANIC_FEAR
32 0x00000020 MECHANIC_GRIP Death Grip and similar effects
64 0x00000040 MECHANIC_ROOT
128 0x00000080 MECHANIC_SLOW_ATTACK
256 0x00000100 MECHANIC_SILENCE
512 0x00000200 MECHANIC_SLEEP
1024 0x00000400 MECHANIC_SNARE
2048 0x00000800 MECHANIC_STUN
4096 0x00001000 MECHANIC_FREEZE
8192 0x00002000 MECHANIC_KNOCKOUT Incapacitate effects such as Repetance (Paladin)
16384 0x00004000 MECHANIC_BLEED
32768 0x00008000 MECHANIC_BANDAGE Healing etc.
65536 0x00010000 MECHANIC_POLYMORPH
131072 0x00020000 MECHANIC_BANISH
262144 0x00040000 MECHANIC_SHIELD
524288 0x00080000 MECHANIC_SHACKLE Shackle Undead only
1048576 0x00100000 MECHANIC_MOUNT Any effect that summons a mount
2097152 0x00200000 MECHANIC_INFECTED Frost Fever, Blood Plague etc.
4194304 0x00400000 MECHANIC_TURN e.g. Turn Evil
8388608 0x00800000 MECHANIC_HORROR e.g. Death Coil (Warlock)
16777216 0x01000000 MECHANIC_INVULNERABILITY Forbearance, Nether Protection, Diplomatic Immunity only
33554432 0x02000000 MECHANIC_INTERRUPT
67108864 0x04000000 MECHANIC_DAZE
134217728 0x08000000 MECHANIC_DISCOVERY Any Create Item effect
268435456 0x10000000 MECHANIC_IMMUNE_SHIELD Divine Shield, Ice Block, Hand of Protection…
536870912 0x20000000 MECHANIC_SAPPED
1073741824 0x40000000 MECHANIC_ENRAGED

To combine immunities just add values. Immune to everything corresponds to the value 2147483647 (0x3FFF FFFF).

spell_school_immune_mask

This makes the creature immune to specific spell schools.

Flag Type
1 SPELL_SCHOOL_NORMAL
2 SPELL_SCHOOL_HOLY
4 SPELL_SCHOOL_FIRE
8 SPELL_SCHOOL_NATURE
16 SPELL_SCHOOL_FROST
32 SPELL_SCHOOL_SHADOW
64 SPELL_SCHOOL_ARCANE

To combine immunities just add values. Immune to everything corresponds to the value 127.

flags_extra

These flags control certain creature specific attributes. Flags can be added together to apply more than one.

Example: 32+64=96

Flag Type
1 CREATURE_FLAG_EXTRA_INSTANCE_BIND 0x00000001 creature kill binds instance to killer and killer's group
2 CREATURE_FLAG_EXTRA_CIVILIAN 0x00000002 creature does not aggro (ignore faction/reputation hostility)
4 CREATURE_FLAG_EXTRA_NO_PARRY 0x00000004 creature does not parry
8 CREATURE_FLAG_EXTRA_NO_PARRY_HASTEN 0x00000008 creature does not counter-attack at parry
16 CREATURE_FLAG_EXTRA_NO_BLOCK 0x00000010 creature does not block
32 CREATURE_FLAG_EXTRA_NO_CRUSHING_BLOWS 0x00000020 creature does not do crush-attacks
64 CREATURE_FLAG_EXTRA_NO_XP 0x00000040 creature kill does not give XP
128 CREATURE_FLAG_EXTRA_TRIGGER 0x00000080 creature is trigger-NPC (invisible to players only)
256 CREATURE_FLAG_EXTRA_NO_TAUNT 0x00000100 creature is immune to taunt-auras and “attack me”-effects
512 CREATURE_FLAG_EXTRA_NO_MOVE_FLAGS_UPDATE 0x00000200 (CREATURE_FLAG_EXTRA_UNUSED_10 Not Implemented) creature won't update movement flags
1024 CREATURE_FLAG_EXTRA_GHOST_VISIBILITY 0x00000400 creature will be only visible for dead players
2048 CREATURE_FLAG_EXTRA_USE_OFFHAND_ATTACK 0x00000800 (CREATURE_FLAG_EXTRA_UNUSED_12 Not Implemented) creature will use offhand attacks
4096 CREATURE_FLAG_EXTRA_NO_SELL_VENDOR 0x00001000 players can't sell items to this vendor
8192 CREATURE_FLAG_EXTRA_IGNORE_COMBAT 0x00002000
16384 CREATURE_FLAG_EXTRA_WORLDEVENT 0x00004000 custom flag for world events (left room for merging)
32768 CREATURE_FLAG_EXTRA_GUARD 0x00008000 creature is a guard (Will ignore feign death and vanish)
65536 CREATURE_FLAG_EXTRA_IGNORE_FEIGN_DEATH 0x00010000 creature ignores feign death
131072 CREATURE_FLAG_EXTRA_NO_CRIT 0x00020000 creature does not do critical strikes
262144 CREATURE_FLAG_EXTRA_NO_SKILL_GAINS 0x00040000 creature won't increase weapon skills
524288 CREATURE_FLAG_EXTRA_OBEYS_TAUNT_DIMINISHING_RETURNS 0x00080000 creature taunt is subject to diminishing returns
1048576 CREATURE_FLAG_EXTRA_ALL_DIMINISH 0x00100000 Creature is subject to all diminishing returns
2097152 CREATURE_FLAG_EXTRA_NO_PLAYER_DAMAGE_REQ 0x00200000 creature does not need to take player damage for kill credit
4194304 CREATURE_FLAG_EXTRA_AVOID_AOE 0x00400000 ignored by aoe attacks (for icc blood prince council npc - Dark Nucleus)
8388608 CREATURE_FLAG_EXTRA_NO_DODGE 0x00800000 target cannot dodge
16777216 CREATURE_FLAG_EXTRA_MODULE 0x01000000 Used by module creatures to avoid blizzlike checks.
33554432 CREATURE_FLAG_EXTRA_DONT_CALL_ASSISTANCE 0x02000000 Prevents creatures from calling for assistance on initial aggro
67108864 CREATURE_FLAG_EXTRA_IGNORE_ALL_ASSISTANCE_CALLS 0x04000000 Prevents creature from responding to assistance calls
134217728 CREATURE_FLAG_EXTRA_DONT_OVERRIDE_SAI_ENTRY 0x08000000 Allows creatures to use both GUID and ENTRY specific SAI without one overwriting the other
268435456 CREATURE_FLAG_EXTRA_DUNGEON_BOSS 0x10000000 Creature is a dungeon boss. This flag is generically set by core during runtime. Setting this in database will give you startup error.
536870912 CREATURE_FLAG_EXTRA_IGNORE_PATHFINDING 0x20000000 Creature will ignore pathfinding. This is like disabling Mmaps, only for one creature.
1073741824 CREATURE_FLAG_EXTRA_IMMUNITY_KNOCKBACK 0x40000000 creature will immune all knockback effects
2147483648 CREATURE_FLAG_EXTRA_HARD_RESET 0x80000000 Creature will despawn on evade

ScriptName

The name of the script that this creature uses, if any. This ties a script from a scripting engine to this creature.

VerifiedBuild

This field was used to determine whether a template has been verified from WDB files.

If value is 0 then it has not been parsed yet.

If value is above 0 then it has been parsed with WDB files from that specific client build.

If value is -1 then it is just a place holder until proper data are found on WDBs.

If value is -Client Build then it was parsed with WDB files from that specific client build and manually edited later for some special necessity.

1)
(damage_base + (attackpower / 14) * BaseVariance) * DamageModifier) * (BaseAttackTime / 1000
2)
((damage_base * 1.5) + (attackpower / 14) * BaseVariance) * DamageModifier) * (BaseAttackTime / 1000