creature_template (master)
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 | Attributes | Key | Null | Default | Extra | Comment |
---|---|---|---|---|---|---|---|
entry | mediumint(8) | unsigned | PRI | NO | 0 | ||
difficulty_entry_1 | mediumint(8) | unsigned | NO | 0 | |||
difficulty_entry_2 | mediumint(8) | unsigned | NO | 0 | |||
difficulty_entry_3 | mediumint(8) | unsigned | NO | 0 | |||
KillCredit1 | int(10) | unsigned | NO | 0 | |||
KillCredit2 | int(10) | unsigned | NO | 0 | |||
removed and replaced by creature_template_model | |||||||
removed and replaced by creature_template_model | |||||||
removed and replaced by creature_template_model | |||||||
removed and replaced by creature_template_model | |||||||
name | text | YES | |||||
femaleName | text | YES | |||||
subname | text | YES | |||||
TitleAlt | text | YES | |||||
IconName | varchar(64) | YES | NULL | ||||
gossip_menu_id | mediumint(8) | unsigned | NO | 0 | |||
minlevel | smallint(5) | signed | NO | 1 | |||
maxlevel | smallint(5) | signed | NO | 1 | |||
HealthScalingExpansion | mediumint(5) | signed | NO | 0 | |||
RequiredExpansion | mediumint(5) | signed | NO | 0 | |||
VignetteID | mediumint(5) | signed | NO | 0 | |||
faction | smallint(5) | unsigned | NO | 0 | |||
npcflag | bigint(20) | unsigned | NO | 0 | |||
speed_walk | float | signed | NO | 1 | Result of 2.5/2.5, most common value | ||
speed_run | float | signed | NO | 1.14286 | Result of 8.0/7.0, most common value | ||
scale | float | signed | NO | 1 | |||
rank | tinyint(3) | unsigned | NO | 0 | |||
dmgschool | tinyint(4) | signed | NO | 0 | |||
BaseAttackTime | int(10) | unsigned | NO | 0 | |||
RangeAttackTime | int(10) | unsigned | NO | 0 | |||
BaseVariance | float | signed | NO | 1 | |||
RangeVariance | float | signed | NO | 1 | |||
unit_class | tinyint(3) | unsigned | NO | 0 | |||
unit_flags | int(10) | unsigned | NO | 0 | |||
unit_flags2 | int(10) | unsigned | NO | 0 | |||
unit_flags3 | int(10) | unsigned | NO | 0 | |||
dynamicflags | int(10) | unsigned | NO | 0 | |||
family | tinyint(4) | signed | NO | 0 | |||
trainer_class | tinyint(3) | unsigned | NO | 0 | |||
type | tinyint(3) | unsigned | NO | 0 | |||
type_flags | int(10) | unsigned | NO | 0 | |||
type_flags2 | int(10) | unsigned | NO | 0 | |||
lootid | mediumint(8) | unsigned | NO | 0 | |||
pickpocketloot | mediumint(8) | unsigned | NO | 0 | |||
skinloot | mediumint(8) | unsigned | NO | 0 | |||
resistance1 | smallint(5) | signed | NO | 0 | |||
resistance2 | smallint(5) | signed | NO | 0 | |||
resistance3 | smallint(5) | signed | NO | 0 | |||
resistance4 | smallint(5) | signed | NO | 0 | |||
resistance5 | smallint(5) | signed | NO | 0 | |||
resistance6 | smallint(5) | signed | NO | 0 | |||
spell1 | mediumint(8) | unsigned | NO | 0 | |||
spell2 | mediumint(8) | unsigned | NO | 0 | |||
spell3 | mediumint(8) | unsigned | NO | 0 | |||
spell4 | mediumint(8) | unsigned | NO | 0 | |||
spell5 | mediumint(8) | unsigned | NO | 0 | |||
spell6 | mediumint(8) | unsigned | NO | 0 | |||
spell7 | mediumint(8) | unsigned | NO | 0 | |||
spell8 | mediumint(8) | unsigned | NO | 0 | |||
VehicleId | mediumint(8) | unsigned | NO | 0 | |||
mingold | mediumint(8) | unsigned | NO | 0 | |||
maxgold | mediumint(8) | unsigned | NO | 0 | |||
AIName | varchar(64) | signed | NO | " | |||
MovementType | tinyint(3) | unsigned | NO | 0 | |||
InhabitType | tinyint(3) | unsigned | NO | 3 | |||
HoverHeight | float | unsigned | NO | 1 | |||
HealthModifier | float | signed | NO | 1 | |||
HealthModifierExtra | float | signed | NO | 1 | |||
ManaModifier | float | signed | NO | 1 | |||
ManaModifierExtra | float | signed | NO | 1 | |||
ArmorModifier | float | signed | NO | 1 | |||
DamageModifier | float | signed | NO | 1 | |||
ExperienceModifier | float | signed | NO | 1 | |||
RacialLeader | tinyint(3) | unsigned | NO | 0 | |||
movementID | int(11) | unsigned | NO | 0 | |||
FadeRegionRadius | float | signed | NO | 0 | |||
WidgetSetID | int(11) | signed | NO | 0 | |||
WidgetSetUnitConditionID | int(11) | signed | NO | 0 | |||
RegenHealth | tinyint(3) | unsigned | NO | 1 | |||
mechanic_immune_mask | int(10) | unsigned | NO | 0 | |||
flags_extra | int(10) | unsigned | NO | 0 | |||
ScriptName | varchar(64) | signed | NO | " | |||
VerifiedBuild | int(11) | signed | YES | 0 |
Description of the fields
entry
Creature's unique id.
difficulty_entry_1-3
This field connects the stats from another entry to this template when in 25man normal, 10man heroic or 25man heroic mode instance.
For Dungeons:
difficulty_entry_1 = 5 (Heroic)
For Raids:
difficulty_entry_1 = 25 (Normal)
difficulty_entry_2 = 10 (Heroic)
difficulty_entry_3 = 25 (Heroic)
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.
modelid1-4
A random graphical model that the client applies on this creature. 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.
List of known icon names:
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 of 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 w/Wings icon identifying this NPC as a "Taxi".
Repair - Shows a Anvil icon identifying this npc as a Repair NPC.
LootAll - Shows a Multiple Brown Bag icon (Same as holding Shift before looting a creature).
Quest - Unused or Unknown. (See EntryID 32870 The Real Ronakada).
PVP - Unused or Unknown.(See EntryID 29387 Arena Master: Dalaran Arena).
Note: This is not required to make the creature/npc function unless you are using scripts or gossip options.
Also: 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.entry.
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.
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 | 0x0000 0001 | Gossip | If creature has more gossip options, add this flag to bring up a menu. |
2 | 0x0000 0002 | Quest Giver | Any creature giving or taking quests needs to have this flag. |
16 | 0x0000 0010 | Trainer | Allows the creature to have a trainer list to teach spells |
32 | 0x0000 0020 | Class Trainer | |
64 | 0x0000 0040 | Profession Trainer | |
128 | 0x0000 0080 | Vendor | Any creature selling items needs to have this flag. |
256 | 0x0000 0100 | Vendor Ammo | |
512 | 0x0000 0200 | Vendor Food | |
1024 | 0x0000 0400 | Vendor Poison | |
2048 | 0x0000 0800 | Vendor Reagent | |
4096 | 0x0000 1000 | Repairer | Creatures with this flag can repair items. |
8192 | 0x0000 2000 | Flight Master | Any creature serving as flight master has this. |
16384 | 0x0000 4000 | Spirit Healer | Makes the creature invisible to alive characters and has the resurrect function. |
32768 | 0x0000 8000 | Spirit Guide | |
65536 | 0x0001 0000 | Innkeeper | Creatures with this flag can set hearthstone locations. |
131072 | 0x0002 0000 | Banker | Creatures with this flag can show the bank |
262144 | 0x0004 0000 | Petitioner | |
524288 | 0x0008 0000 | Tabard Designer | Allows the designing of guild tabards. |
1048576 | 0x0010 0000 | Battlemaster | Creatures with this flag port players to battlegrounds. |
2097152 | 0x0020 0000 | Auctioneer | Allows creature to display auction list. |
4194304 | 0x0040 0000 | Stable Master | Has the option to stable pets for hunters. |
8388608 | 0x0080 0000 | Guild Banker | |
16777216 | 0x0100 0000 | Spellclick | Needs data on npc_spellclick_spells table |
67108864 | 0x0400 0000 | Mailbox | NPC will act like a mailbox (opens mailbox with right-click) |
So if you want an NPC that is a quest giver, a vendor, and can repair you just add the specific flags together: `npcflag`=`npcflag`|1|2|128|4096
The same with hexadecimal numbers: 0x1 + 0x2 + 0x80 + 0x1000 = 0x1083
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.
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 | 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.
mindmg
Minimum damage the creature deals in melee. This field is no longer combined with the attackpower field to calculate the damage.
maxdmg
Maximum damage the creature deals in melee. This field is no longer combined with the attackpower field to calculate the damage.
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 |
attackpower
The attack power for the creature's melee attacks. This field along with mindmg and maxdmg dictate how much the creature will hit for. The formula in applying correct damages is as follows:
UPDATE `creature_template` SET `mindmg` = <#1>, `maxdmg` = <#2>, `attackpower` = ROUND((`mindmg` + `maxdmg`) / 4 * 7), `mindmg` = ROUND(`mindmg` - `attackpower` / 7), `maxdmg` = ROUND(`maxdmg` - `attackpower` / 7) WHERE `entry` = ...
In the query above, substitute '<#1>' with the minimum damage you want the creature to deal and '<#2>' with the maximum damage you want the creature to deal.
NOTE: You might also want to double check the values calculated after the query is run because if the difference between mindmg and maxdmg is too high, mindmg will end up being a negative value.
dmg_multiplier
Multiplier for mindmg and maxdmg
Example: mindmg=200 maxdmg = 500 dmg_multiplier = 10
Outcome: mob will hit for 2000-5000
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.
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 exp, health_mod, and mana_mod. 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 | 0x0000 0001 | UNIT_FLAG_SERVER_CONTROLLED | |
2 | 0x0000 0002 | UNIT_FLAG_NON_ATTACKABLE | |
4 | 0x0000 0004 | UNIT_FLAG_REMOVE_CLIENT_CONTROL | |
8 | 0x0000 0008 | UNIT_FLAG_PLAYER_CONTROLLED | controlled by player, use _IMMUNE_TO_PC instead of _IMMUNE_TO_NPC |
16 | 0x0000 0010 | UNIT_FLAG_RENAME | |
32 | 0x0000 0020 | UNIT_FLAG_PREPARATION | Don't take reagents for spells with SPELL_ATTR_EX5_NO_REAGENT_WHILE_PREP |
64 | 0x0000 0040 | UNIT_FLAG_UNK_6 | not sure what it does, but it is needed to cast nontriggered spells in smart_scripts |
128 | 0x0000 0080 | UNIT_FLAG_NOT_ATTACKABLE_1 | UNIT_FLAG_PVP_ATTACKABLE| UNIT_FLAG_NOT_ATTACKABLE_1 is NON_PVP_ATTACKABLE |
256 | 0x0000 0100 | UNIT_FLAG_IMMUNE_TO_PC | disables combat/assistance with PlayerCharacters (PC) |
512 | 0x0000 0200 | UNIT_FLAG_IMMUNE_TO_NPC | disables combat/assistance with NonPlayerCharacters (NPC) |
1024 | 0x0000 0400 | UNIT_FLAG_LOOTING | Loot animation |
2048 | 0x0000 0800 | UNIT_FLAG_PET_IN_COMBAT | In combat? 2.0.8 |
4096 | 0x0000 1000 | UNIT_FLAG_PVP | Changed in 3.0.3 |
8192 | 0x0000 2000 | UNIT_FLAG_SILENCED | Can't cast spells |
16384 | 0x0000 4000 | UNIT_FLAG_CANNOT_SWIM | 2.0.8 |
32768 | 0x0000 8000 | NIT_FLAG_SWIMMING | shows swim animation in water |
65536 | 0x0001 0000 | 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 | 0x0002 0000 | UNIT_FLAG_PACIFIED | Creature will not attack |
262144 | 0x0004 0000 | UNIT_FLAG_STUNNED | 3.0.3 ok |
524288 | 0x0008 0000 | UNIT_FLAG_IN_COMBAT | ('AffectingCombat' from UnitFlags.cs in WPP) |
1048576 | 0x0010 0000 | UNIT_FLAG_TAXI_FLIGHT | Disable casting at client side spell not allowed by taxi flight (mounted?), probably used with 0x4 flag |
2097152 | 0x0020 0000 | UNIT_FLAG_DISARMED | 3.0.3, disable melee spells casting..., "Required melee weapon" added to melee spells tooltip. |
4194304 | 0x0040 0000 | UNIT_FLAG_CONFUSED | Confused. |
8388608 | 0x0080 0000 | UNIT_FLAG_FLEEING | ('Feared' from UnitFlags.cs in WPP) |
16777216 | 0x0100 0000 | UNIT_FLAG_POSSESSED | under direct client control by a player (possess or vehicle) |
33554432 | 0x0200 0000 | UNIT_FLAG_NOT_SELECTABLE | Can't be selected by mouse or with /target {name} command. |
67108864 | 0x0400 0000 | UNIT_FLAG_SKINNABLE | Skinnable |
134217728 | 0x0800 0000 | UNIT_FLAG_MOUNT | The client seems to handle it perfectly. Also used when making custom mounts. |
268435456 | 0x1000 0000 | UNIT_FLAG_UNK_28 | (PreventKneelingWhenLooting from UnitFlags.cs in WPP) |
536870912 | 0x2000 0000 | UNIT_FLAG_UNK_29 | Used in Feign Death spell or NPC will play dead. (PreventEmotes) |
1073741824 | 0x4000 0000 | UNIT_FLAG_SHEATHE | |
2147483648 | 0x8000 0000 | 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 | 0x0000 0001 | UNIT_FLAG2_FEIGN_DEATH | |
2 | 0x0000 0002 | UNIT_FLAG2_UNK1 | Hide unit model (show only player equip) |
4 | 0x0000 0004 | UNIT_FLAG2_IGNORE_REPUTATION | |
8 | 0x0000 0008 | UNIT_FLAG2_COMPREHEND_LANG | |
16 | 0x0000 0010 | UNIT_FLAG2_MIRROR_IMAGE | |
32 | 0x0000 0020 | UNIT_FLAG2_INSTANTLY_APPEAR_MODEL | Unit model instantly appears when summoned (does not fade in) |
64 | 0x0000 0040 | UNIT_FLAG2_FORCE_MOVEMENT | |
128 | 0x0000 0080 | UNIT_FLAG2_DISARM_OFFHAND | |
256 | 0x0000 0100 | UNIT_FLAG2_DISABLE_PRED_STATS | Player has disabled predicted stats (Used by raid frames) |
1024 | 0x0000 0400 | UNIT_FLAG2_DISARM_RANGED | this does not disable ranged weapon display (maybe additional flag needed?) |
2048 | 0x0000 0800 | UNIT_FLAG2_REGENERATE_POWER | |
4096 | 0x0000 1000 | UNIT_FLAG2_RESTRICT_PARTY_INTERACTION | Restrict interaction to party or raid |
8192 | 0x0000 2000 | UNIT_FLAG2_PREVENT_SPELL_CLICK | Prevent spellclick |
16384 | 0x0000 4000 | UNIT_FLAG2_ALLOW_ENEMY_INTERACT | |
32768 | 0x0000 8000 | UNIT_FLAG2_DISABLE_TURN | |
65536 | 0x0001 0000 | UNIT_FLAG2_UNK2 | |
131072 | 0x0002 0000 | UNIT_FLAG2_PLAY_DEATH_ANIM | Plays special death animation upon death |
262144 | 0x0004 0000 | 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
minrangedmg
Minimum ranged damage the creature inflicts.
maxrangedmg
Maximum range damage the creature inflicts.
rangedattackpower
This field also refers to the damage multiplier.
Example: If the creature is using a ranged weapon and its rangedattackpower = 500 and the dmg_multiplier is 10 the max that it can hit for with ranged attacks would be 5000
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 |
14 | Wild Pet |
15 | Aberration |
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 | 0x0000 0001 | CREATURE_TYPEFLAGS_TAMEABLE | Makes the mob tameable (must also be a beast and have family set) |
2 | 0x0000 0002 | CREATURE_TYPEFLAGS_GHOST | Creature are also visible for not alive player. Allow gossip interaction if npcflag allow? |
4 | 0x0000 0004 | CREATURE_TYPEFLAGS_BOSS | Changes creature's visible level to "??" in the creature's portrait - Immune to Knockback. |
8 | 0x0000 0008 | CREATURE_TYPEFLAGS_DO_NOT_PLAY_WOUND_PARRY_ANIMATION | Does not play wound animation on parry. |
16 | 0x0000 0010 | CREATURE_TYPEFLAGS_HIDE_FACTION_TOOLTIP | Hides tooltip faction. |
32 | 0x0000 0020 | CREATURE_TYPEFLAGS_UNK6 | |
64 | 0x0000 0040 | CREATURE_TYPEFLAGS_SPELL_ATTACKABLE | Spell attackable. |
128 | 0x0000 0080 | CREATURE_TYPEFLAGS_DEAD_INTERACT | Player can interact with the creature if its dead (not player dead) |
256 | 0x0000 0100 | CREATURE_TYPEFLAGS_HERBLOOT | Makes mob herbable |
512 | 0x0000 0200 | CREATURE_TYPEFLAGS_MININGLOOT | Makes mob minable |
1024 | 0x0000 0400 | CREATURE_TYPEFLAGS_DONT_LOG_DEATH | Does not combatlog death. |
2048 | 0x0000 0800 | CREATURE_TYPEFLAGS_MOUNTED_COMBAT | Creature can remain mounted when entering combat |
4096 | 0x0000 1000 | CREATURE_TYPEFLAGS_AID_PLAYERS | Can aid any player in combat if in range? |
8192 | 0x0000 2000 | CREATURE_TYPEFLAGS_IS_PET_BAR_USED | Is using pet bar. |
16384 | 0x0000 4000 | CREATURE_TYPEFLAGS_MASK_UID | |
32768 | 0x0000 8000 | CREATURE_TYPEFLAGS_ENGINEERLOOT | Makes mob lootable by engineer |
65536 | 0x0001 0000 | CREATURE_TYPE_FLAG_EXOTIC_PET | Tamable as an exotic pet. Normal tamable flag must also be set. |
131072 | 0x0002 0000 | CREATURE_TYPEFLAGS_USE_DEFAULT_COLLISION_BOX | Collision related. (always using default collision box?) |
262144 | 0x0004 0000 | CREATURE_TYPEFLAGS_IS_SIEGE_WEAPON | Is siege weapon. |
524288 | 0x0008 0000 | CREATURE_TYPEFLAGS_PROJECTILE_COLLISION | Projectiles can collide with this creature - interacts with TARGET_DEST_TRAJ |
1048576 | 0x0010 0000 | CREATURE_TYPEFLAGS_HIDE_NAMEPLATE | Hides nameplate. |
2097152 | 0x0020 0000 | CREATURE_TYPEFLAGS_DO_NOT_PLAY_MOUNTED_ANIMATIONS | Does not play mounted animations. |
4194304 | 0x0040 0000 | CREATURE_TYPEFLAGS_IS_LINK_ALL | |
8388608 | 0x0080 0000 | CREATURE_TYPEFLAGS_INTERACT_ONLY_WITH_CREATOR | Can only interact with its creator. |
134217728 | 0x0800 0000 | CREATURE_TYPEFLAGS_FORCE_GOSSIP | Allows the creature to display a single gossip option. |
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
resistance1
Holy resistance.
resistance2
Fire resistance.
resistance3
Nature resistance.
resistance4
Frost resistance.
resistance5
Shadow resistance.
resistance6
Arcane resistance.
spell1
Spell ID that can be used for Mind Control of this creature.
For vehicle creatures: 1st spell on action bar
spell2
Spell ID that can be used for Mind Control of this creature.
For vehicle creatures: 2nd spell on action bar
spell3
Spell ID that can be used for Mind Control of this creature.
For vehicle creatures: 3rd spell on action bar
spell4
Spell ID that can be used for Mind Control of this creature.
For vehicle creatures: 4th spell on action bar
spell5
Spell ID that can be used for Mind Control of this creature.
For vehicle creatures: 5th spell on action bar
spell6
Spell ID that can be used for Mind Control of this creature.
For vehicle creatures: 6th spell on action bar
spell7
Spell ID that can be used for Mind Control of this creature.
For vehicle creatures: 7th spell on action bar
spell8
Spell ID that can be used for Mind Control of this creature.
For vehicle creatures: 8th spell on action bar
PetSpellDataId
ID, found in CreatureSpellData.dbc, that displays what spells the pet has in the client.
VehicleId
Entryid 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 fowards/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 |
---|---|
NullAI | Empty AI, creature does nothing. |
AggressorAI | Creature attacks as soon as something is in aggro range. |
ReactorAI | Creature attacks only if aggroed by attack, spell etc. |
GuardAI | |
PetAI | Creature is a pet. |
TotemAI | Creature casts spell from field spell1, otherwise like NullAI. |
EventAI | Creature uses event based AI. |
SmartAI | Creature uses new smart AI. |
MovementType
The creature's default movement type.
ID | Type |
---|---|
0 | Idle; stay in one place |
1 | Random movement inside the spawndist radius |
2 | Waypoint movement |
InhabitType
Controls where the creature can move and attack.
Bitmask | Type |
---|---|
1 | Ground |
2 | Water |
4 | Flying |
8 | Rooted |
(This is a bitmask'ed value. You can add values together: 1+4=5 would make the creature walk on ground and fly.)
Note: If your vehicle is a flying vehicle then your accessory MUST have its InhabitType set to (4 - Flying). This being if you set it for both ground and flying it will spawn on the ground if the vehicle is initially spawned on the ground.
HoverHeight
Distance above the ground that the creature will hover if it has MOVEMENTFLAG_DISABLE_GRAVITY enabled. Value taken from sniffs.
Health_mod
Used to modify the base Level/Class health of a creature. This field comes from WDB.
Mana_mod
Used to modify the base Level/Class mana of a creature. This field comes from WDB.
Armor_mod
Used to modify the base Level/Class armor of a creature.
RacialLeader
A flag indicating wheather the creature is a racial leader. Killing racial leaders grants 100 honor.
QuestItem1-6
Tells the client (mouse-hovering this creature -> tooltip) that this creature will drop the item specified in this field.
movementID
We have no idea what this field does. It is passed directly to the client.
RegenHealth
Boolean 1 or 0 controlling if the creature should regenerate its 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 | 0x0000 0001 | MECHANIC_CHARM | |
2 | 0x0000 0002 | MECHANIC_DISORIENTED | |
4 | 0x0000 0004 | MECHANIC_DISARM | |
8 | 0x0000 0008 | MECHANIC_DISTRACT | |
16 | 0x0000 0010 | MECHANIC_FEAR | |
32 | 0x0000 0020 | MECHANIC_GRIP | Death Grip and similar effects |
64 | 0x0000 0040 | MECHANIC_ROOT | |
128 | 0x0000 0080 | MECHANIC_SLOW_ATTACK | |
256 | 0x0000 0100 | MECHANIC_SILENCE | |
512 | 0x0000 0200 | MECHANIC_SLEEP | |
1024 | 0x0000 0400 | MECHANIC_SNARE | |
2048 | 0x0000 0800 | MECHANIC_STUN | |
4096 | 0x0000 1000 | MECHANIC_FREEZE | |
8192 | 0x0000 2000 | MECHANIC_KNOCKOUT | Incapacitate effects such as Repetance (Paladin) |
16384 | 0x0000 4000 | MECHANIC_BLEED | |
32768 | 0x0000 8000 | MECHANIC_BANDAGE | Healing etc. |
65536 | 0x0001 0000 | MECHANIC_POLYMORPH | |
131072 | 0x0002 0000 | MECHANIC_BANISH | |
262144 | 0x0004 0000 | MECHANIC_SHIELD | |
524288 | 0x0008 0000 | MECHANIC_SHACKLE | Shackle Undead only |
1048576 | 0x0010 0000 | MECHANIC_MOUNT | Any effect that summons a mount |
2097152 | 0x0020 0000 | MECHANIC_INFECTED | Frost Fever, Blood Plague etc. |
4194304 | 0x0040 0000 | MECHANIC_TURN | e.g. Turn Evil |
8388608 | 0x0080 0000 | MECHANIC_HORROR | e.g. Death Coil (Warlock) |
16777216 | 0x0100 0000 | MECHANIC_INVULNERABILITY | Forbearance, Nether Protection, Diplomatic Immunity only |
33554432 | 0x0200 0000 | MECHANIC_INTERRUPT | |
67108864 | 0x0400 0000 | MECHANIC_DAZE | |
134217728 | 0x0800 0000 | MECHANIC_DISCOVERY | Any Create Item effect |
268435456 | 0x1000 0000 | MECHANIC_IMMUNE_SHIELD | Divine Shield, Ice Block, Hand of Protection... |
536870912 | 0x2000 0000 | MECHANIC_SAPPED | |
1073741824 | 0x4000 0000 | MECHANIC_ENRAGED |
To combine immunities just add values. Immune to everything corresponds to the value 2147483647 (0x3FFF FFFF).
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_CRUSH | 0x00000020 | creature does not do crush-attacks |
64 | CREATURE_FLAG_EXTRA_NO_XP_AT_KILL | 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 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 will use offhand attacks |
4096 | CREATURE_FLAG_EXTRA_NO_SELL_VENDOR | 0x00001000 | players can't sell items to this vendor |
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) |
131072 | CREATURE_FLAG_EXTRA_NO_CRIT | 0x00020000 | creature does not do critical strikes |
262144 | CREATURE_FLAG_EXTRA_NO_SKILLGAIN | 0x00040000 | creature won't increase weapon skills |
524288 | CREATURE_FLAG_EXTRA_TAUNT_DIMINISH | 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 | NPCs can help with killing this creature and player will still be credited if he tags the creature |
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 |
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 is used by the TrinityDB Team 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.