Creature_template_tbc - cmangos/issues GitHub Wiki
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)
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.
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 |
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`
Base Name of the Creature.
The SubName of the Creature that appears in <> below the Creature’s Name.
Script Icon used by Guards With Directions Menu.
The Minimum Level of the Creature if the Creature Has a Level Range. For Creature That Are Single Level MinLevel=MaxLevel.
The Maximum Level of the Creature if the Creature Has a Level Range. For Creature That Are Single Level MinLevel=MaxLevel.
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.
Primary Graphical Model That The Client Applies On This Creature. This is a Creature_Model_Info.Entry
Optional Extra Graphical Model That The Client Applies On This Creature. This is a Creature_Model_Info.Entry
Optional Extra Graphical Model That The Client Applies On This Creature. This is a Creature_Model_Info.Entry
Optional Extra Graphical Model That The Client Applies On This Creature. This is a Creature_Model_Info.Entry
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.
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.
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 |
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 |
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) |
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 |
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 |
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
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) |
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 |
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 |
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 |
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)
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)
Aggro Range, more info to come
(Default Value Is: 20)
more info to come
more info to come
more info to come
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
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 |
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.
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)
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)
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.
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
This Value Is The Multiplier Value Used To Multiply Against BaseArmor Value in Creature_Template_Classlevelstats
Most Normal NPC are = 1
NOTE: This Field Is Currently Not Used By The Core (Future Implementation)
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
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
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
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
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
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
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
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
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
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)
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)
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.
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.
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 |
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
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
The ID of the Loot Template that this NPC uses to generate loot from.
See creature_loot_template.entry
The ID of the Pickpocketing Loot Template that this NPC should use to generate pickpocketing loot from.
See pickpocketing_loot_template.entry
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
Additional Creature Template Entry to Assign Quest Kill Credit on NPC Death.
Note: Some Quests Require Additional Quest Kill Credit
Additional Creature Template Entry to Assign Quest Kill Credit on NPC Death.
Note: Some Quests Require Additional Quest Kill Credit
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.
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.
An NPC’s Additional Holy Spell Resistance Value.
An NPC’s Additional Fire Spell Resistance Value.
An NPC’s Additional Nature Spell Resistance Value.
An NPC’s Additional Frost Spell Resistance Value.
An NPC’s Additional Shadow Spell Resistance Value.
An NPC’s Additional Arcane Spell Resistance Value.
ID that displays what spells the pet has in the client.
Note: This Value Comes From DBC (Not Confirmed)
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 |
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 |
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.
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
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
The id refers to the npc_trainer_template..
The id refers to the npc_vendor_template..
The default ID of the equipment that this creature should display. See creature_equip_template.entry
Reference to a gossip_menu_id.
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 |
Time before corpse despawns in seconds.
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 |
The SD2 Script Name that this creature uses, if any. This ties a script from a scripting engine to this creature.