Skip to content

creature_template_tbc

killerwife edited this page May 18, 2023 · 17 revisions

Back to world database list of tables.

This table is for cmangos-tbc (2.4.3)

See also creature_template_classic (1.12.x)
See also creature_template (3.3.5a)

The `creature_template_tbc` table

This table contains the description of creatures. Each spawned creature is an instance of a creature_template present in this table.

This means every creature MUST be defined in this table.

Structure

Field Type Null Key Default Extra
Entry mediumint(8) unsigned NO PRI 0
Name char(100) NO 0
SubName char(100) YES Null
IconName char(100) YES Null
MinLevel tinyint(3) unsigned YES 1
MaxLevel tinyint(3) unsigned YES 1
HeroicEntry mediumint(8) unsigned NO 0
ModelId1 mediumint(8) unsigned NO 0
ModelId2 mediumint(8) unsigned NO 0
ModelId3 mediumint(8) unsigned NO 0
ModelId4 mediumint(8) unsigned NO 0
Faction smallint(5) unsigned NO 0
Scale float NO 0
Family tinyint(4) YES 0
CreatureType tinyint(3) unsigned NO 0
InhabitType tinyint(3) unsigned NO 3
RegenerateStats tinyint(3) unsigned NO 1
RacialLeader tinyint(3) unsigned NO 0
NpcFlags int(10) unsigned NO 0
UnitFlags int(10) unsigned NO 0
DynamicFlags int(10) unsigned NO 0
ExtraFlags int(10) unsigned NO 0
CreatureTypeFlags int(10) unsigned YES 0
StaticFlags1 int(10) unsigned YES 0
StaticFlags2 int(10) unsigned YES 0
StaticFlags3 int(10) unsigned YES 0
StaticFlags4 int(10) unsigned YES 0
SpeedWalk float YES 1
SpeedRun float YES 1.14286
Detection int NO 20
CallForHelp int NO 0
Pursuit int NO 0
Leash int NO 0
Timeout int NO 0
UnitClass int unsigned NO 0
Rank tinyint(3) unsigned YES 0
Expansion tinyint(3) unsigned NO 0
HealthMultiplier float NO 1.0
PowerMultiplier float NO 1.0
DamageMultiplier float NO 1
DamageVariance float NO 1
ArmorMultiplier float NO 1
ExperienceMultiplier float NO 1
MinLevelHealth int(10) unsigned YES 0
MaxLevelHealth int(10) unsigned YES 0
MinLevelMana int(10) unsigned YES 0
MaxLevelMana int(10) unsigned YES 0
MinMeleeDmg float YES 0
MaxMeleeDmg float YES 0
MinRangedDmg float NO 0
MaxRangedDmg float NO 0
Armor mediumint(8) unsigned NO 0
MeleeAttackPower int(10) unsigned NO 0
RangedAttackPower smallint(5) unsigned NO 0
MeleeBaseAttackTime int(10) unsigned YES 0
RangedBaseAttackTime int(10) unsigned YES 0
DamageSchool tinyint(4) NO 0
MinLootGold mediumint(8) unsigned NO 0
MaxLootGold mediumint(8) unsigned NO 0
LootId mediumint(8) unsigned NO 0
PickpocketLootId mediumint(8) unsigned NO 0
SkinningLootId mediumint(8) unsigned NO 0
KillCredit1 int(11) unsigned NO 0
KillCredit2 int(11) unsigned NO 0
MechanicImmuneMask int(10) unsigned NO 0
SchoolImmuneMask int(10) unsigned NO 0
ResistanceHoly int(10) unsigned NO 0
ResistanceFire smallint(5) NO 0
ResistanceNature smallint(5) NO 0
ResistanceFrost smallint(5) NO 0
ResistanceShadow smallint(5) NO 0
ResistanceArcane smallint(5) NO 0
PetSpellDataId mediumint(8) unsigned NO 0
MovementType tinyint(3) unsigned NO 0
TrainerType tinyint(4) YES 0
TrainerSpell mediumint(8) unsigned YES 0
TrainerClass tinyint(3) unsigned YES 0
TrainerRace tinyint(3) unsigned YES 0
TrainerTemplateId mediumint(8) unsigned NO 0
VendorTemplateId mediumint(8) unsigned NO 0
EquipmentTemplateId mediumint(8) unsigned NO 0
GossipMenuId mediumint(8) unsigned YES 0
InteractionPauseTimer int(10) unsigned NO -1 Waittimer befor npc resumes pathing after being talked to
VisibilityDistanceType tinyint(4) YES 0
CorpseDecay int(10) unsigned NO 0
SpellList int(11) NO 0 creature_spell_list
AIName char(64) NO
ScriptName char(64) NO

Description of the fields

Entry

This is the Primary NPC Entry Number and is used for

DUNGEON_DIFFICULTY_NORMAL
RAID_DIFFICULTY_10MAN_NORMAL
RAID_DIFFICULTY_25MAN_NORMAL

decided by SpawnMask of the `creature`.`guid`

Name

Base Name of the Creature.

SubName

The SubName of the Creature that appears in <> below the Creature’s Name.

IconName

Script Icon used by Guards With Directions Menu.

MinLevel

The Minimum Level of the Creature if the Creature Has a Level Range. For Creature That Are Single Level MinLevel=MaxLevel.

MaxLevel

The Maximum Level of the Creature if the Creature Has a Level Range. For Creature That Are Single Level MinLevel=MaxLevel.

HeroicEntry

If This Value is NOT Zero Then This Field Refers to a Creature_Template Entry. This Field is to be Used for a Specific Versions of an NPC in Heroic Dungeons.

ModelId1

Primary Graphical Model That The Client Applies On This Creature. This is a Creature_Model_Info.Entry

ModelId2

Optional Extra Graphical Model That The Client Applies On This Creature. This is a Creature_Model_Info.Entry

ModelId3

Optional Extra Graphical Model That The Client Applies On This Creature. This is a Creature_Model_Info.Entry

ModelId4

Optional Extra Graphical Model That The Client Applies On This Creature. This is a Creature_Model_Info.Entry

Faction

The Faction Of The Creature, See FactionTemplate.dbc.. 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.

Scale

If This Is A Non-Zero Value, This Field Defines a Manual Over-Ride For The Size Of The Model That The Creature Appears In The Game. If Zero, The Creature Will Use The Default Model Size Taken From The DBC.

Family

This Defines The Family That This Creature Belongs To. This Is Only Used If CreatureType Is 1 (Beast).

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

CreatureType

This Field Defines The Type Of Creature This NPC Is.

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

InhabitType

This Field Controls Where The Creature Can Move Into, Chase And Attack.
The NPC Is Limited To ONLY Movement On This:

ID Type
1 Ground Movement Only
2 Water Movement Only
3 Both Ground And Water Movement
4 Always Flying
5 Over Ground Always Flying
6 Over Water Always Flying
7 Always Flying Over Anything (But can also walk and swim)

RegenerateStats

This Field Controls If The Creature Should Regenerate It’s Health/Stats (Data Flag)

Value Bit Name Description
0 0×000 - NPC Does NOT Regenerate Stats
1 0×001 REGEN_FLAG_HEALTH_IN_COMBAT NPC DOES Regenerate Health IN COMBAT
2 0×002 REGEN_FLAG_HEALTH NPC DOES Regenerate Health
4 0×004 REGEN_FLAG_POWER_IN_COMBAT NPC DOES Regenerate Power (Mana) IN COMBAT
8 0×008 REGEN_FLAG_POWER NPC DOES Regenerate Power (Mana)
14 0×014 REGEN_FLAG_HEALTH+REGEN_FLAG_POWER_IN_COMBAT+REGEN_FLAG_POWER Default

RacialLeader

This Field Is a Boolean Flag Indicating That The Creature Is a Racial Leader. Killing Racial Leaders Grants 100 Honor Points.

Value Description
0 NPC Is NOT a Racial Leader
1 NPC IS a Racial Leader

NpcFlags

This Field Is a Bitmask That Represents What NPC Flags The Creature Has Assigned To It. Each Bit Controls a Different Flag and to Combine Flags, You Can Add Each Flag That You Require, In Effect Activating The Respective Bits.

BitMask Value Flag Comment
0×00000000 0 UNIT_NPC_FLAG_NONE None
0×00000001 1 UNIT_NPC_FLAG_GOSSIP If creature has more gossip options, add this flag to bring up a menu.
0×00000002 2 UNIT_NPC_FLAG_QUESTGIVER Any creature giving or taking quests needs to have this flag.
0×00000004 4 UNIT_NPC_FLAG_UNK1 Unused
0×00000008 8 UNIT_NPC_FLAG_UNK2 Unused
0×00000010 16 UNIT_NPC_FLAG_TRAINER Allows the creature to have a trainer list to teach spells
0×00000020 32 UNIT_NPC_FLAG_TRAINER_CLASS Allows the creature to have a class trainer list to teach spells.
(MUST USE WITH FLAG: 16)
0×00000040 64 UNIT_NPC_FLAG_TRAINER_PROFESSION Allows the creature to have a profession trainer list to teach spells.
(MUST USE WITH FLAG: 16)
0×00000080 128 UNIT_NPC_FLAG_VENDOR Any creature selling items needs to have this flag.
0×00000100 256 UNIT_NPC_FLAG_VENDOR_AMMO Any creature selling ammo items needs to have this flag.
(MUST USE WITH FLAG: 128)
0×00000200 512 UNIT_NPC_FLAG_VENDOR_FOOD Any creature selling food items needs to have this flag.
(MUST USE WITH FLAG: 128)
0×00000400 1024 UNIT_NPC_FLAG_VENDOR_POISON Any creature selling poison items needs to have this flag.
(MUST USE WITH FLAG: 128)
0×00000800 2048 UNIT_NPC_FLAG_VENDOR_REAGENT Any creature selling reagent items needs to have this flag.
(MUST USE WITH FLAG: 128)
0×00001000 4096 UNIT_NPC_FLAG_REPAIR Creatures with this flag can repair items.
0×00002000 8192 UNIT_NPC_FLAG_FLIGHTMASTER Any creature serving as fly master has this.
0×00004000 16384 UNIT_NPC_FLAG_SPIRITHEALER Makes the creature invisible to alive characters and has the resurrect function.
0×00008000 32768 UNIT_NPC_FLAG_SPIRITGUIDE
0×00010000 65536 UNIT_NPC_FLAG_INNKEEPER Creatures with this flag can set hearthstone locations.
0×00020000 131072 UNIT_NPC_FLAG_BANKER Creatures with this flag can show the bank
0×00040000 262144 UNIT_NPC_FLAG_PETITIONER 0xC0000 = guild petitions, 0×40000 = arena team petitions
0×00080000 524288 UNIT_NPC_FLAG_TABARDDESIGNER Allows the designing of guild tabards.
0×00100000 1048576 UNIT_NPC_FLAG_BATTLEMASTER Creatures with this flag port players to battlegrounds.
0×00200000 2097152 UNIT_NPC_FLAG_AUCTIONEER Allows creature to display auction list.
0×00400000 4194304 UNIT_NPC_FLAG_STABLEMASTER Has the option to stable pets for hunters.
0×00800000 8388608 UNIT_NPC_FLAG_GUILD_BANKER cause client to send 997 opcode
0×01000000 16777216 UNIT_NPC_FLAG_SPELLCLICK / Instantloot cause client to send 1015 opcode (spell click), dynamic, set at loading and don’t must be set in DB. (Npc_spellclick_spells)

EXAMPLE:
So If You Want An NPC That Is a Quest Giver, a Vendor And Can Also Repair You Just Add The Specific Flags Together:

1 + 2 + 128 + 4096 = 4227.
NpcFlags = 4227

UnitFlags

This Field Allows The Manual Application Of Unit Flags To NPC. This Is a Bitmask Field And To Apply More Then One Flag, Just Add The Different Flags Together.

Some Known Possible Flags Are:

Bitmask Decimal Name Comments
0×00000001 1 UNIT_FLAG_UNK_0 Movement checks disabled, likely paired with loss of client control packet. We use it to add custom cliffwalking to GM mode until actual usecases will be known.
0×00000002 2 UNIT_FLAG_SPAWNING Spawning in – other uses are wrong
0×00000004 4 UNIT_FLAG_CLIENT_CONTROL_LOST Generic unspecified loss of control initiated by server script, movement checks disabled, paired with loss of client control packet.
0×00000008 8 UNIT_FLAG_PLAYER_CONTROLLED players, pets, totems, guardians, companions, charms, any units associated with players
0×00000010 16 UNIT_FLAG_RENAME
0×00000020 32 UNIT_FLAG_PREPARATION don’t take reagents for spells with SPELL_ATTR_EX5_NO_REAGENT_WHILE_PREP
0×00000040 64 UNIT_FLAG_UNK_6 Related to Movement? often paired with UNIT_FLAG_SWIMMING
0×00000080 128 UNIT_FLAG_NOT_ATTACKABLE_1 UNIT_FLAG_PVP + UNIT_FLAG_NOT_ATTACKABLE_1 = UNIT_FLAG_NON_PVP_ATTACKABLE – blue color target (NON_PVP_ATTACKABLE)
0×00000100 256 UNIT_FLAG_IMMUNE_TO_PLAYER Target is immune to players
0×00000200 512 UNIT_FLAG_IMMUNE_TO_NPC Target is immune to Non-Player Characters
0×00000400 1024 UNIT_FLAG_LOOTING loot animation
0×00000800 2048 UNIT_FLAG_PET_IN_COMBAT in combat?, 2.0.8
0×00001000 4096 UNIT_FLAG_PVP Allows item spells to be casted upon. changed in 3.0.3
0×00002000 8192 UNIT_FLAG_SILENCED silenced, 2.1.1
0×00004000 16384 UNIT_FLAG_PERSUADED persuaded, 2.0.8
0×00008000 32768 UNIT_FLAG_SWIMMING controls water swimming animation – TODO: confirm whether dynamic or static
0×00010000 65536 UNIT_FLAG_UNTARGETABLE is not targetable by attack or spell
0×00020000 131072 UNIT_FLAG_PACIFIED pacified, 3.0.3
0×00040000 262144 UNIT_FLAG_STUNNED Unit is a subject to stun, turn and strafe movement disabled
0×00080000 524288 UNIT_FLAG_IN_COMBAT
0×00100000 1048576 UNIT_FLAG_TAXI_FLIGHT Unit is on taxi, paired with a duplicate loss of client control packet (likely a legacy serverside hack). Disables any spellcasts not allowed in taxi flight client-side.
0×00200000 2097152 UNIT_FLAG_DISARMED disable melee spells casting…, “Required melee weapon” added to melee spells tooltip.
0×00400000 4194304 UNIT_FLAG_CONFUSED Unit is a subject to confused movement, movement checks disabled, paired with loss of client control packet.
0×00800000 8388608 UNIT_FLAG_FLEEING Unit is a subject to fleeing movement, movement checks disabled, paired with loss of client control packet.
0×01000000 16777216 UNIT_FLAG_POSSESSED Unit is under remote control by another unit, movement checks disabled, paired with loss of client control packet. New master is allowed to use melee attack and can’t select this unit via mouse in the world (as if it was own character).
0×02000000 33554432 UNIT_FLAG_UNINTERACTIBLE Can’t be selected by mouse
0×04000000 67108864 UNIT_FLAG_SKINNABLE
0×08000000 134217728 UNIT_FLAG_MOUNT the client seems to handle it perfectly
0×10000000 268435456 UNIT_FLAG_UNK_28
0×20000000 536870912 UNIT_FLAG_PREVENT_ANIM used in Feing Death spell
0×40000000 1073741824 UNIT_FLAG_SHEATHE
0×80000000 2147483648 UNIT_FLAG_IMMUNE set skinnable icon and also changes color of portrait)(no affect in 2.4.3)

DynamicFlags

This Field Flags Controls The Visual Appearance Of The Creature. These Flag Values Can Be Added Together For Any Desired Combination.

Some Known Flag Values Are:

Flag Name Comments
0 UNIT_DYNFLAG_NONE
1 UNIT_DYNFLAG_LOOTABLE
2 UNIT_DYNFLAG_TRACK_UNIT
4 UNIT_DYNFLAG_TAPPED Lua_UnitIsTapped – Makes creatures name appear grey (good for simulating dead creatures) ???
8 UNIT_DYNFLAG_TAPPED_BY_PLAYER Lua_UnitIsTappedByPlayer
16 UNIT_DYNFLAG_SPECIALINFO Shows creatures basic stats (Health, damage, resistances, tamable).
32 UNIT_DYNFLAG_DEAD Makes the creature appear dead (this DOES NOT make the creatures name grey)
64 UNIT_DYNFLAG_REFER_A_FRIEND
128 UNIT_DYNFLAG_TAPPED_BY_ALL_THREAT_LIST Lua_UnitIsTappedByAllThreatList

ExtraFlags

This Field Controls the Application Of Flags That Controls Certain NPC Specific Attributes.

Bit Hex Name Description
1 0×00000001 CREATURE_EXTRA_FLAG_INSTANCE_BIND creature kill bind instance with killer and killer’s group
2 0×00000002 CREATURE_EXTRA_FLAG_NO_AGGRO_ON_SIGHT no aggro (ignore faction/reputation hostility)
4 0×00000004 CREATURE_EXTRA_FLAG_NO_PARRY creature can’t parry
8 0×00000008 CREATURE_EXTRA_FLAG_NO_PARRY_HASTEN creature can’t counter-attack at parry
16 0×00000010 CREATURE_EXTRA_FLAG_NO_BLOCK creature can’t block
32 0×00000020 CREATURE_EXTRA_FLAG_NO_CRUSH creature can’t do crush attacks
64 0×00000040 CREATURE_EXTRA_FLAG_NO_XP_AT_KILL creature kill not provide XP
128 0×00000080 CREATURE_EXTRA_FLAG_INVISIBLE creature is always invisible for player (mostly trigger creatures)
256 0×00000100 CREATURE_EXTRA_FLAG_REUSE
512 0×00000200 CREATURE_EXTRA_FLAG_AGGRO_ZONE creature sets itself in combat with zone on aggro
1024 0×00000400 CREATURE_EXTRA_FLAG_GUARD creature is a guard
2048 0×00000800 CREATURE_EXTRA_FLAG_NO_CALL_ASSIST creature shouldn’t call for assistance on aggro
4096 0×00001000 CREATURE_EXTRA_FLAG_ACTIVE creature is active object. Grid of this creature will be loaded and creature set as active
8192 0×00002000 CREATURE_EXTRA_FLAG_MMAP_FORCE_ENABLE creature is forced to use MMaps
16384 0×00004000 CREATURE_EXTRA_FLAG_MMAP_FORCE_DISABLE creature is forced to NOT use MMaps
32768 0×00008000 CREATURE_EXTRA_FLAG_WALK_IN_WATER creature is forced to walk in water even it can swim
65536 0×00010000 CREATURE_EXTRA_FLAG_CIVILIAN CreatureInfo→civilian substitute (for expansions as Civilian Colum was removed)
131072 0×00020000 CREATURE_EXTRA_FLAG_NO_MELEE creature can’t melee
262144 0×00040000 NOT_IMPLEMENTED_CREATURE_EXTRA_FLAG_FAR_VIEW creature with far view
524288 0×00080000 CREATURE_EXTRA_FLAG_FORCE_ATTACKING_CAPABILITY SetForceAttackingCapability(true); for nonattackable, nontargetable creatures that should be able to attack nontheless
1048576 0×00100000 CREATURE_EXTRA_FLAG_DYNGUID Temporary transition flag – spawns of this entry use dynguid system
2097152 0×00200000 CREATURE_EXTRA_FLAG_COUNT_SPAWNS count creature spawns in Map*
4194304 0×00400000 CREATURE_EXTRA_FLAG_IGNORE_FEIGN_DEATH Ignores Feign Death
8388606 0×00800000 CREATURE_EXTRA_FLAG_DUAL_WIELD_FORCED creature is alwyas dual wielding (even if unarmed)
16777216 0×01000000 CREATURE_EXTRA_FLAG_NO_SKILL_GAINS Does not give weapon skill gains to attacker

CreatureTypeFlags

This Field Controls If a Mob Is Mineable or Herbable. If Any Of These Flags Are Used Then The Loot Given When It Is Herb Picked / Mined Will Be Stored In The Skinning_Loot_Template Table. Aside From These Two Flags, This Field Has No Special Meaning Server-Side.

It will be send to the client in SMSG_CREATURE_QUERY_RESPONSE. Originate from CreatureStaticFlags.

Flag Name Comments
1 CREATURE_TYPEFLAGS_TAMEABLE Makes the mob tameable (must also be a beast and have family set)
2 CREATURE_TYPEFLAGS_GHOST_VISIBLE Sets Creatures that can ALSO be seen when player is a ghost. Used in CanInteract function by client, can’t be attacked
4 CREATURE_TYPEFLAGS_UNK3 Sets “BOSS” flag for tooltips
8 CREATURE_TYPEFLAGS_UNK4
16 CREATURE_TYPEFLAGS_UNK5 Controls something in client tooltip related to creature faction
32 CREATURE_TYPEFLAGS_UNK6 Something related to Sound
64 CREATURE_TYPEFLAGS_UNK7 Related to attackable / not attackable creatures with spells
128 CREATURE_TYPEFLAGS_INTERACT_DEAD has something to do with unit interaction / quest status requests
136 CREATURE_TYPEFLAGS_NON_PVP_PLAYER
256 CREATURE_TYPEFLAGS_HERBLOOT Makes Mob Corpse Herbable – Uses Skinning Loot Field
512 CREATURE_TYPEFLAGS_MININGLOOT Makes Mob Corpse Mineable – Uses Skinning Loot Field
1024 CREATURE_TYPEFLAGS_ANIMATION_UNK11 no idea, but it used by client
2048 CREATURE_TYPEFLAGS_ANIMATION_UNK12 related to possibility to cast spells while mounted
4096 CREATURE_TYPEFLAGS_CAN_ASSIST Can aid any player or group in combat. Typically seen for escorting NPC’s
8192 CREATURE_TYPEFLAGS_UNK14 checked from calls in Lua_PetHasActionBar
16384 CREATURE_TYPEFLAGS_UNK15 Lua_UnitGUID, client does guid_low &= 0xFF000000 if this flag is set
32768 CREATURE_TYPEFLAGS_ENGINEERLOOT Makes Mob Corpse Engineer Lootable – Uses Skinning Loot Field

StaticFlags1

StaticFlags2

StaticFlags3

StaticFlags4

Creature Static Flags

SpeedWalk

This Field Controls How Fast An NPC Moves When Walking. This Value Comes From Sniff Packet Data.
Note: This field should only be used as an override if the model’s default SpeedWalk is not correct for the creature_template.entry. ( creature_model_info.SpeedWalk )

`SpeedWalk` = (sniffed value / 2.5)

(Default Value Is: 1)

SpeedRun

This Field Controls How Fast An NPC Moves When Running. This Value Comes From Sniff Packet Data.
Note: This field should only be used as an override if the model’s default SpeedRun is not correct for the creature_template.entry. ( creature_model_info.SpeedRun )

`SpeedRun` = (sniffed value / 7)

(Default Value Is: 1.14286)

Detection

Aggro Range, more info to come

(Default Value Is: 20)

CallForHelp

more info to come

Pursuit

more info to come

Leash

more info to come

UnitClass

The NPC Unit Class. This Field is a Critical Value That Dictates An NPC’s Base Stats System.

An NPC’s Unit Class Is A Corner Stone Value Used In Creature_Template_Classlevelstats To Determine An NPC’s Stats.

This Value is Contained in Sniff Data: UNIT_FIELD_BYTES_0_1 – UNIT_BYTES_0_OFFSET_CLASS located in SMSG_UPDATE_OBJECT

enum UnitBytes0Offsets Name
UNIT_BYTES_0_OFFSET_RACE 0
UNIT_BYTES_0_OFFSET_CLASS 1
UNIT_BYTES_0_OFFSET_GENDER 2
UNIT_BYTES_0_OFFSET_POWER_TYPE 3

NPC Stats Refers To: (Health/Mana/Damage/Armor).

ID Name Comment
1 CLASS_WARRIOR
2 CLASS_PALADIN
4 CLASS_ROGUE wotlk+
8 CLASS_MAGE

It is a Critical Field in Determining Class Level Stats For the NPC.

NOTE: Typically ONLY Vehicles Are Class=4

Warriors: Do Not Have Mana and Maximum Health and Damage
Paladins: Have a Small Amount Of Mana and Slightly Less Health and Damage From a Warrior
Rogues: (Little is Known Currently But They All Seem To Be Vehicles)
Mages: Have Lots of Mana But Have Very Low Health and Damage

Rank

This Field Determines The Rank of the NPC – enum CreatureEliteType:

Rank Name Comments
0 CREATURE_ELITE_NORMAL Normal
1 CREATURE_ELITE_ELITE Elite – Higher damage, more health, better loot.
2 CREATURE_ELITE_RAREELITE Rare Elite – A rare mob but with elite damage and health.
3 CREATURE_ELITE_WORLDBOSS World Boss – Highest rank, best loot, longest respawn time.
4 CREATURE_ELITE_RARE Rare – Somewhat better loot, longer respawn time.
5 CREATURE_UNKNOWN unkown – found in 2.2.3 for 2 mobs

Expansion

This Field Determines The Expansion Value of the NPC:

This Value Is a Critical Value in Determining an NPC’s Stats From Creature_Template_ClassLevelStats And Directly Affects An NPC’s Health and Damage.

Value Expansion
0 Classic
1 Burning Crusades
2 Wrath of the Lich King
3 Cataclysm

NOTE: Now Everyone Has Trouble Understanding This Concept. An NPC’s Expansion Value Has NOTHING To Do With What Expansion An NPC Is From. This Value Determines How Difficult An NPC Is In Regards To An NPC At The Same Level From A Different Expansion. As An Example a Classic Level 60 NPC Will Have Less Base Health and Less Base Damage Then A Level 60 TBC NPC.

Each Expansion Value Has a Different Base Health and Base Damage (Each Expansion Having Higher Values Then The Previous). ONLY Health And Damage Scale With Expansion Values. Mana / Armor / Attack Power Are Static Values For All Expansions For A Particular Level and Unit Class combination.

An NPC’s Health and Damage Is Calculated From Creature_Template_ClassLevelStats Based On HealthMultiplier And DamageMultiplier Multiplied By BaseHealthExp? and BaseDamageExp? From Creature_Template_ClassLevelStats Where ? = Expansion Value.

Note: See Creature_Template_ClassLevelStats For Better Understanding.

HealthMultiplier

This Value Comes From WDB and Sniff Data. This Is The PRIMARY DB Value That Calculates An NPC’s Specific Health Value. NPC Have Various HealthMultipliers But Typically They Are Fairly Rounded Values

(Note: Dungeon/Raid/World Bosses Normally Have Large Very Rounded Values Normally)

This Is The Multiplier Used Against The BaseHealthExp? Value From Creature_Template_ClassLevelStats To Calculate An NPC’s Final Health Values.

? = Expansion Value.

Formula:
MinLevelHealth = ROUND (BaseHealthExp? * HealthMultiplier)
MaxLevelHealth = ROUND (BaseHealthExp? * HealthMultiplier)

Example:

Field Value Comments
Entry 871 Saltscale Warrior
MinLevel 35 (Sniff Data)
MaxLevel 36 (Sniff Data)
MinLevelHealth 1403 (Sniff Data)
MaxLevelHealth 1469 (Sniff Data)
UnitClass 1 (Sniff Data)
Expansion 0 Determined From Calculations / Sniff Data / MoP DBC
HealthMultiplier 1.15 (Sniff Data)

Level 35 BaseHealthExp0: 1220
(From Creature_Template_ClassLevelStats – BaseHealth Values Calculated From Sniff Data And Extensive Research)

Level 36 BaseHealthExp0: 1277
(From Creature_Template_ClassLevelStats – BaseHealth Values Calculated From Sniff Data And Extensive Research)

MinLevelHealth = ROUND (1220*1.15) = 1403 (1403)
MaxLevelHealth = ROUND (1277*1.15) = 1468.55 (1469)

PowerMultiplier

This Value Comes From WDB and Sniff Data. This Is The PRIMARY DB Value That Calculates An NPC’s Specific Mana Value. All NPC Have Nice Rounded Values For PowerMultipliers.

UNIT_FIELD_BYTES_0_3 (4), UNIT_BYTES_0_OFFSET_POWER_TYPE

This Is The Multiplier Used Against The BaseMana Value From Creature_Template_ClassLevelStats To Calculate An NPC’s Final Mana Values.

Note: BaseMana Values Do NOT Scale With Expansion Values Unlike Health And Damage.
Note: For NPC that use Other Power then Mana it will reflect that power instead.

Formula:
MinLevelMana = ROUND (BaseMana * ManaMultiplier)
MaxLevelMana = ROUND (BaseMana * ManaMultiplier)

Example:

Field Value Comments
Entry 7335 Death’s Head Geomancer
MinLevel 35 (Sniff Data)
MaxLevel 35 (Sniff Data)
MinLevelMana 5360 (Sniff Data)
MaxLevelMana 5360 (Sniff Data)
UnitClass 8 (Sniff Data)
Expansion 0 Determined From Calculations / Sniff Data / MoP DBC
PowerMultiplier 2 (Sniff Data)

Level 35 BaseMana: 2680
(From Creature_Template_ClassLevelStats – BaseMana Values Calculated From Sniff Data And Extensive Research)

MinLevelMana = ROUND (2680*2) = 5360 (5360)
MaxLevelMana = ROUND (2680*2) = 5360 (5360)

DamageMultiplier

This field is the PRIMARY Field for adjusting and setting the Min/Max Damage Values for an NPC.

Damage Calculation Formulas

MIN MELEE DAMAGE = (((Creature_Template_Classlevelstats.BaseDamageExp? * Creature_Template.DamageVariance) + (Creature_Template_Classlevelstats.BaseMeleeAttackPower / 14)) * (Creature_Template.BaseMeleeAttackTime / 1000)) * Creature_Template.Dmg_Multiplier

MAX MELEE DAMAGE = ((((Creature_Template_Classlevelstats.BaseDamageExp? * Creature_Template.DamageVariance) * 1.5) + (Creature_Template_Classlevelstats.BaseMeleeAttackPower / 14)) * (Creature_Template.BaseMeleeAttackTime / 1000)) * Creature_Template.Dmg_Multiplier

Note: ? = Expansion Value of The NPC

Some NPC Have Damage Multipliers Applied To Increase Their Damage Above That Of a Normal NPC Of The Same Level.

I am sure people are asking… WHY is there more then just a simple Damage Multiplier Involved To Boost NPC Damage? Here is the only logical answer. With some NPC (Like Bosses) Who have Multipliers in the range of 20 – 75 Min and Max Damage values can fluctuate into VERY Large Ranges. So What Blizz has done is create a Co-Efficient System of 2 Values to help Reign in Max Damage Values so if you require a Set Min/Max Damage For an NPC it can scale the BaseDamage so after being put though the Formula The Min and Max Damage values will be within the Required Range. Damage Variance is used to reduce the Max Damage Value. For NPC Who Do NOT Have an altered Damage Variance the Default Value used is 1 (Normal Variance = 1).


Here is an Example of an NPC Melee Damage Calculation
-—————————————————————————
Nexus-Prince Shaffar = Unit Class 2 (BOSS)
Level 66: BaseDamage = 78.472 / Melee AttackPower = 266 / Base Melee Attack Time = 2000
Bestiary Min Dmg: 1136
Bestiary Max Dmg: 1593
Damage Variance: 1.0 (No Variance)
Damage Multiplier: 5.83 (Calculated Value)

CalculatedMinMeleeDmg=ROUND + (Base Melee Attackpower / 14)) * (Base Attack Time/1000)) * Damage Multiplier
= ((((78.472 * 1.0) + (266/14)) * (2000/1000)) * 5.83
= (((78.472) + 19) * 2) = 194.944 * 5.83 = 1136.52352

CalculatedMaxMeleeDmg=ROUND * 1.5) + (Base Melee Attack Power / 14)) * (Base Attack Time/1000)) * Damage Multiplier
= ((((78.472 * 1.0) * 1.5) + (266/14)) * (2000/1000)) * 5.83
= (((117.708) + 19) * 2) = 273.416 * 5.83 = 1594.01528

Bestiary lists Sneed with a range of 97 – 129 damage. He attacks once every 2 seconds (unconfirmed). Given the formula above …

97 = X * ((9.6823) + (70 / 14)) * (2000 / 1000)
129 = X * ((9.6823 * 1.5) + (70 / 14)) * (2000 / 1000)

NOTE:

Very Slight Rounding Errors of 1 or 2 Damage Might Occur… This was due to Rounding When Generating BaseDamage Values in Calculations.

DamageVariance

Damage Variance is a Co-Efficient used in Damage Calculations To Limit the Min/Max Damage Range.

Default Value is 1 (Normal) ===> See DamageMultiplier for More Information

ArmorMultiplier

This Value Is The Multiplier Value Used To Multiply Against BaseArmor Value in Creature_Template_Classlevelstats

Most Normal NPC are = 1

ExperienceMultiplier

NOTE: This Field Is Currently Not Used By The Core (Future Implementation)

MinLevelHealth

NOTE: This Field Is No Longer Used By The Core – Maintained For DB Developers
(Nice Field To Have Still)

Minimum Level Health Is Now Calculated Using HealthMultiplier

Core Now Automatically Calculates This Value On The Fly

MaxLevelHealth

NOTE: This Field Is No Longer Used By The Core – Maintained For DB Developers
(Nice Field To Have Still)

Maximum Level Health Is Now Calculated Using HealthMultiplier

Core Now Automatically Calculates This Value On The Fly

MinLevelMana

NOTE: This Field Is No Longer Used By The Core – Maintained For DB Developers
(Nice Field To Have Still)

Minimum Level Mana Is Now Calculated Using PowerMultiplier

Core Now Automatically Calculates This Value On The Fly

MaxLevelMana

NOTE: This Field Is No Longer Used By The Core – Maintained For DB Developers
(Nice Field To Have Still)

Maximum Level Mana Is Now Calculated Using PowerMultiplier

Core Now Automatically Calculates This Value On The Fly

MinMeleeDmg

NOTE: This Field Is No Longer Used By The Core – Maintained For DB Developers
(Nice Field To Have Still)

Minimum Melee Damage Is Now Calculated Using DamageMultiplier

Core Now Automatically Calculates This Value On The Fly

MaxMeleeDmg

NOTE: This Field Is No Longer Used By The Core – Maintained For DB Developers
(Nice Field To Have Still)

Maximum Melee Damage Is Now Calculated Using DamageMultiplier

Core Now Automatically Calculates This Value On The Fly

MinRangedDmg

NOTE: This Field Is No Longer Used By The Core – Maintained For DB Developers
(Nice Field To Have Still)

Minimum Ranged Damage Is Now Calculated Using DamageMultiplier

Core Now Automatically Calculates This Value On The Fly

MaxRangedDmg

NOTE: This Field Is No Longer Used By The Core – Maintained For DB Developers
(Nice Field To Have Still)

Maximum Ranged Damage Is Now Calculated Using DamageMultiplier

Core Now Automatically Calculates This Value On The Fly

Armor

NOTE: This Field Is No Longer Used By The Core – Maintained For DB Developers
DB Devs: Suggested Apply Armor Value For MaxLevel For This Field For FYI Purposes

(Old System Did Not Properly Calculate Armor Values for different NPC Levels)

Core Now Automatically Calculates This Value On The Fly

MeleeAttackPower

NOTE: This Field Is No Longer Used By The Core – Maintained For DB Developers
DB Devs: Suggested Apply Value For MaxLevel For This Field For FYI Purposes

Core Now Gets Value From Creature_Template_ClassLevelStats

(Old System Did Not Properly Calculate Values for Damage Calculations)

RangedAttackPower

NOTE: This Field Is No Longer Used By The Core – Maintained For DB Developers
DB Devs: Suggested Apply Value For MaxLevel For This Field For FYI Purposes

Core Now Gets Value From Creature_Template_ClassLevelStats

(Old System Did Not Properly Calculate Values for Damage Calculations)

MeleeBaseAttackTime

An NPC’s melee attack time in milliseconds. This Field is populated by Sniff Data.

This field is used as part of Min/Max Melee Damage Formula Calculations.

RangedBaseAttackTime

An NPC’s ranged attack time in milliseconds. This Field is populated by Sniff Data.

This field is used as part of Min/Max Ranged Damage Formula Calculations.

DamageSchool

NPC’s Melee Damage School. All Melee Damage Will Be Done As This Spell School Damage Set Here.

NOTE: 0 (Normal) = Physical Damage

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

MinLootGold

Minimum possible money that the NPC drops when killed, in copper.

An NPC Will Drop Random Value Between MinLootGold and MaxLootGold.

NOTE:
1 = 1 Copper
100 = 1 Silver
10000 = 1 Gold

MaxLootGold

Maximum possible money that the NPC drops when killed, in copper.

An NPC Will Drop Random Value Between MinLootGold and MaxLootGold.

NOTE:
1 = 1 Copper
100 = 1 Silver
10000 = 1 Gold

LootId

The ID of the Loot Template that this NPC uses to generate loot from.
See creature_loot_template.entry

PickpocketLootId

The ID of the Pickpocketing Loot Template that this NPC should use to generate pickpocketing loot from.
See pickpocketing_loot_template.entry

SkinningLootId

The ID of the Skinning Loot Template that this NPC should use to generate skinning loot from.
See skinning_loot_template.entry

CreatureTypeFlags can define the profession required to loot the creature.

Type Info
CREATURE_TYPEFLAGS_HERBLOOT Makes Mob Corpse Herbable – Uses Skinning Loot Field
CREATURE_TYPEFLAGS_MININGLOOT Makes Mob Corpse Mineable – Uses Skinning Loot Field
CREATURE_TYPEFLAGS_ENGINEERLOOT Makes Mob Corpse Engineer Lootable – Uses Skinning Loot Field

For These Other Types Use Skinning_Loot_Template For Loot To Be Generated By These Other Professions Also

KillCredit1

Additional Creature Template Entry to Assign Quest Kill Credit on NPC Death.
Note: Some Quests Require Additional Quest Kill Credit

KillCredit2

Additional Creature Template Entry to Assign Quest Kill Credit on NPC Death.
Note: Some Quests Require Additional Quest Kill Credit

MechanicImmuneMask

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

Uses references from SpellMechanic.dbc.

Bit Type Bit Type
1 MECHANIC_CHARM 32768 MECHANIC_BANDAGE
2 MECHANIC_CONFUSED 65536 MECHANIC_POLYMORPH
4 MECHANIC_DISARM 131072 MECHANIC_BANISH
8 MECHANIC_DISTRACT 262144 MECHANIC_SHIELD
16 MECHANIC_FEAR 524288 MECHANIC_SHACKLE
32 MECHANIC_FUMBLE 1048576 MECHANIC_MOUNT
64 MECHANIC_ROOT 2097152 MECHANIC_PERSUADE
128 MECHANIC_PACIFY 4194304 MECHANIC_TURN
256 MECHANIC_SILENCE 8388608 MECHANIC_HORROR
512 MECHANIC_SLEEP 16777216 MECHANIC_INVULNERABILITY
1024 MECHANIC_SNARE 33554432 MECHANIC_INTERRUPT
2048 MECHANIC_STUN 67108864 MECHANIC_DAZE
4096 MECHANIC_FREEZE 134217728 MECHANIC_DISCOVERY
8192 MECHANIC_KNOCKOUT 268435456 MECHANIC_IMMUNE_SHIELD
16384 MECHANIC_BLEED 536870912 MECHANIC_SAPPED

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

SchoolImmuneMask

This makes the NPC immune to specific spell schools.

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

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

ResistanceHoly

An NPC’s Additional Holy Spell Resistance Value.

ResistanceFire

An NPC’s Additional Fire Spell Resistance Value.

ResistanceNature

An NPC’s Additional Nature Spell Resistance Value.

ResistanceFrost

An NPC’s Additional Frost Spell Resistance Value.

ResistanceShadow

An NPC’s Additional Shadow Spell Resistance Value.

ResistanceArcane

An NPC’s Additional Arcane Spell Resistance Value.

PetSpellDataId

ID that displays what spells the pet has in the client.

Note: This Value Comes From DBC (Not Confirmed)

MovementType

The NPC’s default Movement Type.

ID Name Type
0 IDLE_MOTION_TYPE Idle – Stand Still (Stationary)
1 RANDOM_MOTION_TYPE Random Movement – Random Move Inside SpawnDist Radius
2 WAYPOINT_MOTION_TYPE Waypoint Movement – Move Along Waypoint Path Defined
3 PATH_MOTION_TYPE Cylic Spline
4 LINEAR_WP_MOTION_TYPE Moves Points 1,2,3,2,1

TrainerType

If the NPC is a Trainer (Has Trainer NPCFlag Set), then this field controls what kind of Trainer the NPC is.

NOTE: 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

TrainerSpell

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.

TrainerClass

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 character.class

TrainerRace

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 character.race

TrainerTemplateId

The id refers to the npc_trainer_template..

VendorTemplateId

The id refers to the npc_vendor_template..

EquipmentTemplateId

The default ID of the equipment that this creature should display. See creature_equip_template.entry

GossipMenuId

Reference to a gossip_menu_id.

visibilityDistanceType

Bit Name Description
0 DEFAULT_VISIBILITY_DISTANCE Default Config Setting: 100y
1 VISIBILITY_DISTANCE_TINY 25y
2 VISIBILITY_DISTANCE_SMALL 50y
3 VISIBILITY_DISTANCE_LARGE 200y
4 VISIBILITY_DISTANCE_GIGANTIC 400y
5 MAX_VISIBILITY_DISTANCE 533.33333y

CorpseDecay

Time before corpse despawns in seconds.

SpellList

creature_spell_list

AIName

Overrides AI used for the creature.

Name Description
NullAI Empty AI creature does nothing.
GuardAI City Guards
PetAI Creature is a pet.
TotemAI Creature casts spell from field spell1, otherwise like NullAI.
EventAI Creature uses creature_ai_scripts (ACID).
GuardianAI Creature is Guardian (Follower)
PossessedAI Mindcontrolled

ScriptName

The SD2 Script Name that this creature uses, if any. This ties a script from a scripting engine to this creature.

Clone this wiki locally