creature_template
The `creature_template` table
This table contains the description of creatures. Each spawned creature is an instance of a template present in this table, this means every creature MUST be defined in this table.
Structure
Field | Type | Null | Key | Default | Extra | Comment |
---|---|---|---|---|---|---|
entry | MEDIUMINT UNSIGNED | NO | PRI | 0 | ||
difficulty_entry_1 | MEDIUMINT UNSIGNED | NO | 0 | |||
difficulty_entry_2 | MEDIUMINT UNSIGNED | NO | 0 | |||
difficulty_entry_3 | MEDIUMINT UNSIGNED | NO | 0 | |||
KillCredit1 | INT UNSIGNED | NO | 0 | |||
KillCredit2 | INT UNSIGNED | NO | 0 | |||
modelid1 | MEDIUMINT UNSIGNED | NO | 0 | |||
modelid2 | MEDIUMINT UNSIGNED | NO | 0 | |||
modelid3 | MEDIUMINT UNSIGNED | NO | 0 | |||
modelid4 | MEDIUMINT UNSIGNED | NO | 0 | |||
name | char(100) | NO | MUL | 0 | ||
subname | char(100) | YES | (NULL) | |||
IconName | char(100) | YES | (NULL) | |||
gossip_menu_id | MEDIUMINT UNSIGNED | NO | 0 | |||
minlevel | TINYINT UNSIGNED | NO | 1 | |||
maxlevel | TINYINT UNSIGNED | NO | 1 | |||
exp | SMALLINT | NO | 0 | |||
faction | SMALLINT UNSIGNED | NO | 0 | |||
npcflag | INT UNSIGNED | NO | 0 | |||
speed_walk | FLOAT | NO | 1 | Result of 2.5/2.5, most common value | ||
speed_run | FLOAT | NO | 1.14286 | Result of 8.0/7.0, most common value | ||
speed_swim | FLOAT | NO | 1 | |||
speed_swim | FLOAT | NO | 1 | |||
detection_range | FLOAT | NO | 20 | |||
scale | FLOAT | NO | 1 | |||
rank | TINYINT UNSIGNED | NO | 0 | |||
dmgschool | TINYINT | NO | 0 | |||
BaseAttackTime | INT UNSIGNED | NO | 0 | |||
RangeAttackTime | INT UNSIGNED | NO | 0 | |||
BaseVariance | FLOAT | NO | 1 | |||
RangeVariance | FLOAT | NO | 1 | |||
unit_class | TINYINT UNSIGNED | NO | 0 | |||
unit_flags | INT UNSIGNED | NO | 0 | |||
unit_flags2 | INT UNSIGNED | NO | 0 | |||
dynamicflags | INT UNSIGNED | NO | 0 | |||
family | TINYINT | NO | 0 | |||
trainer_type | TINYINT | NO | 0 | |||
trainer_spell | MEDIUMINT UNSIGNED | NO | 0 | |||
trainer_class | TINYINT UNSIGNED | NO | 0 | |||
trainer_race | TINYINT UNSIGNED | NO | 0 | |||
type | TINYINT UNSIGNED | NO | 0 | |||
type_flags | INT UNSIGNED | NO | 0 | |||
lootid | MEDIUMINT UNSIGNED | NO | 0 | |||
pickpocketloot | MEDIUMINT UNSIGNED | NO | 0 | |||
skinloot | MEDIUMINT UNSIGNED | NO | 0 | |||
PetSpellDataId | MEDIUMINT UNSIGNED | NO | 0 | |||
VehicleId | MEDIUMINT UNSIGNED | NO | 0 | |||
mingold | MEDIUMINT UNSIGNED | NO | 0 | |||
maxgold | MEDIUMINT UNSIGNED | NO | 0 | |||
AIName | char(64) | NO | ||||
MovementType | TINYINT UNSIGNED | NO | 0 | |||
HoverHeight | FLOAT | NO | 1 | |||
HealthModifier | FLOAT | NO | 1 | |||
ManaModifier | FLOAT | NO | 1 | |||
ArmorModifier | FLOAT | NO | 1 | |||
DamageModifier | FLOAT | NO | 1 | |||
ExperienceModifier | FLOAT | NO | 1 | |||
RacialLeader | TINYINT UNSIGNED | NO | 0 | |||
movementId | INT UNSIGNED | NO | 0 | |||
RegenHealth | TINYINT UNSIGNED | NO | 1 | |||
mechanic_immune_mask | INT UNSIGNED | NO | 0 | |||
spell_school_immune_mask | INT UNSIGNED | NO | 0 | |||
flags_extra | INT UNSIGNED | NO | 0 | |||
ScriptName | char(64) | NO | ||||
VerifiedBuild | SMALLINT | YES | 0 |
Description of the fields
entry
Creature's unique id.
difficulty_entry_x
name | entry | difficulty_entry_1 | difficulty_entry_2 | difficulty_entry_3 |
---|---|---|---|---|
Anomalus | 26763 | 30529 | 0 | 0 |
Sindragosa | 36853 | 38265 | 38266 | 38267 |
Anomalus is a 5 man boss located in The Nexus. You can fight him on two types of difficulties (normal dungeon and heroic dungeon). Depending on the type of difficulty, bosses have different statistics like health and damage. In case of Anomalus information from entry 26763 is used when you fight him at normal difficulty and entry 30529 is used when you fight him at heroic difficulty.
Sindragosa, a raid boss encounter located in the Icecrown Citadel can be fought on 4 different difficulties due to the introduction of heroic raid modes in Patch 3.2 (10man normal/heroic, 25man normal/heroic). Depending on the type of difficulty, she must have different statistics. So if you see her in 10man normal raid she will use information from entry 36853, in a 25man normal raid entry 38265 will be used and so on. This is in stark contrast to raid bosses such as Patchwerk and XT-002 Deconstructor, located in Naxxramas and Ulduar respectively, who only have two different raid modes (10-man 'normal'/25-man 'normal'). Hardmodes within the Ulduar raid do not have their own template, due to game mechanics engaging the harder difficulty during the encounter itself.
Here is a special case with the Alterac Valley battleground. There are 4 level brackets where the NPCs are made easier or harder, depending on your level bracket (Added in WoW patch 3.2.2 when level 80 characters received their own bracket for this battleground and all brackets below level 80 received their own level of difficulty). The same concept applies to the Isle of Conquest battleground, with only two brackets.
If you look at the database you will notice a very characteristic pattern which is summarized in table below:
name | entry | difficulty_entry_1 | difficulty_entry_2 | difficulty_entry_3 |
---|---|---|---|---|
Normal Creature | Different than 0 | 0 | 0 | 0 |
Dungeon Creature | Normal Dungeon | Heroic Dungeon | 0 | 0 |
Raid Creature | 10man Normal Raid | 25man Normal Raid | 10man Heroic Raid | 25man Heroic Raid |
Battleground | 51- 59 | 60-69 | 70-79 | 80 |
KillCredit1
If this is a kill credit template – one that is a dummy template that is used when more than one creature can count as a kill in a quest, then this is a link to the first entry of the creature that could be killed to give quest credit.
KillCredit2
If this is a kill credit template – one that is a dummy template that is used when more than one creature can count as a kill in a quest, then this is a link to the second entry of the creature that could be killed to give quest credit. If more than two creatures can be killed and count toward a single objective, an smart or C++ script will be required.
modelidx
A random graphical model that the client applies on this creature. Of course if you specify only one modelid and the rest will be equal to 0, model you have set won't be chosen randomly. This is a creature_model_info.modelid
name
Base name of the creature.
subname
The subname of the creature that appears in <> below the creature's name.
IconName
Used to tell the player what kind of NPC this creature is.
IconName | description |
---|---|
Directions | Used for guards and teleporter NPC's. |
Gunner | Indicator of a turret NPC/Player Controlled. |
vehichleCursor | Indicator that this is a PCV (Player Controlled Vehicle) |
Driver | Shows a steering wheel icon when mouse over. |
Attack | Shows a sword icon indicating you can attack this target. |
Buy | Shows a brown bag icon usually if the NPC only sells things. |
Speak | Shows a chat bubble icon if this NPC has quest/gossip options. |
Pickup | Shows a hand grasping icon if this NPC can be picked up for quest/items. |
Interact | Shows cog icon commonly used for quest/transport. |
Trainer | Shows a book icon, identifying this NPC as a trainer. |
Taxi | Shows a boot with wings icon identifying this NPC as a taxi. |
Repair | Shows a anvil icon identifying that this NPC can repair. |
LootAll | Shows a multiple brown bag icon (same as holding shift before looting a creature). |
Quest | Unused or unknown (see entry 32870 “The Real Ronakada”). |
PVP | Unused or Unknown (see entry 29387 “Arena Master: Dalaran Arena”). |
Attention! This is not required to make the NPC function unless you are using scripts or gossip options. Names are case sensitive, If in doubt use an example above.
gossip_menu_id
The gossip ID of this creature. This field is obtained from sniff (update fields). If you can not sniff this value, and need to make one up, it must be > 50000. This field is the link to gossip_menu.MenuID.
minlevel
The minimum level of the creature if the creature has a level range.
maxlevel
The maximum level of the creature if the creature has a level range. When added to world, a level in chosen in the specified level range.
exp
The expansion table the creatures health value is taken from. Values are from 0 to 2. See creature_classlevelstats.
exp | name |
---|---|
0 | Classic |
1 | The Burning Crusade |
2 | Wrath of The Lich King |
faction
The faction of the creature. See FactionTemplate. Just because more than one faction has the same name, the inter-faction relationships can be different.
Note: This field also controls the creature family assistance mechanic. Only creatures with the same faction will assist each other.
npcflag
A bitmask that represents what NPC flags the creature has. Each bit controls a different flag and to combine flags, you can add each flag that you want, in effect activating the respective bits.
Flag | Name | Comment | |
---|---|---|---|
1 | 0x00000001 | Gossip | If creature has more gossip options, add this flag to bring up a menu. |
2 | 0x00000002 | Quest Giver | Any creature giving or taking quests needs to have this flag. |
16 | 0x00000010 | Trainer | Allows the creature to have a trainer list to teach spells |
32 | 0x00000020 | Class Trainer | Is class trainer |
64 | 0x00000040 | Profession Trainer | Is profession trainer |
128 | 0x00000080 | Vendor | Is vendor (generic) Any creature selling items needs to have this flag. |
256 | 0x00000100 | Vendor Ammo | Is vendor (ammo) |
512 | 0x00000200 | Vendor Food | Is vendor (food) |
1024 | 0x00000400 | Vendor Poison | Is vendor (poison) |
2048 | 0x00000800 | Vendor Reagent | Is vendor (Reagent) |
4096 | 0x00001000 | Repairer | Creatures with this flag can repair items. |
8192 | 0x00002000 | Flight Master | Any creature serving as flight master has this. |
16384 | 0x00004000 | Spirit Healer | Makes the creature invisible to alive characters and has the resurrect function. |
32768 | 0x00008000 | Spirit Guide | Is spirit guide |
65536 | 0x00010000 | Innkeeper | Creatures with this flag can set hearthstone locations. |
131072 | 0x00020000 | Banker | Creatures with this flag can show the bank |
262144 | 0x00040000 | Petitioner | Handles guild/arena petitions |
524288 | 0x00080000 | Tabard Designer | Allows the designing of guild tabards. |
1048576 | 0x00100000 | Battlemaster | Creatures with this flag port players to battlegrounds. |
2097152 | 0x00200000 | Auctioneer | Allows creature to display auction list. |
4194304 | 0x00400000 | Stable Master | Has the option to stable pets for hunters. |
8388608 | 0x00800000 | Guild Banker | Is guild banker |
16777216 | 0x01000000 | Spellclick | Needs data on npc_spellclick_spells table |
67108864 | 0x04000000 | Mailbox | NPC will act like a mailbox (opens mailbox with right-click) |
So if you want a NPC that is a quest giver(2), a vendor(128) and can repair(4096) you just add specific flags together: 2+128+4096=4226
speed_walk
Controls how fast the creature can walk. For vehicles: increases fly speed.
speed_run
Controls how fast the creature can run. For vehicles: increases ground movement speed.
speed_swim
Controls how fast the creature can swim.
speed_flight
Controls how fast the creature can fly.
detection_range
Controls the range at which creatures detect and see players.
scale
If non-zero, this field defines the size of how the model of the creature appears ingame. If zero, it will use default model size taken from the DBC.
rank
The rank of the creature:
Rank | Name | Default Respawn Time Creature.spawntimesecs | Corpse Decay Time Worldserver.conf (Corpse.Decay) | Total Default Respawn spawntimesecs + Corpse.Decay |
---|---|---|---|---|
0 | Normal | 5 min | 60 sec | 6 min |
1 | Elite | 5 min | 5 min | 10 min |
2 | Rare Elite | 5 min | 5 min | 10 min |
3 | Boss | 5 min | 1 hour | 1 hour, 5 min |
4 | Rare | 5 min | 5 min | 10 min |
Note 1: An NPC's rank is mostly visual (which also requires your Cache to be cleared to see changes). Changing this value will not change its health, damage, or loot. However, it will change the respawn time of the creature.
Note 2: Respawn times can be modified in two other places: Creature.spawntimesecs (only for that single GUID of the creature) and in the worldserver.conf file under the “Corpse.Decay” settings (for ALL creatures of the same rank). The default `spawntimesecs` for all spawned creatures is 300 seconds (5 minutes). For example, using the “.npc add” command to spawn a “Normal” NPC will give it a default respawn time of 6 minutes (spawntimesecs + Corpse.Decay time). Also, the creature must decay first before it can respawn. For this reason, the Corpse Decay Time of the creature is also it's minimum respawn time, since setting the creature's Creature.spawntimesecs = 0 will remove the Default Respawn Time. In the example above, setting our Normal NPC's spawntimesecs = 0 will mean the creature's respawn time decreases from 6 minutes to 60 seconds.
Note 3: If you want the creature to show a skull or “??” in the portrait (often with Bosses), set the type_flags to 4.
dmgschool
Creature's melee damage school.
ID | Name |
---|---|
0 | SPELL_SCHOOL_NORMAL |
1 | SPELL_SCHOOL_HOLY |
2 | SPELL_SCHOOL_FIRE |
3 | SPELL_SCHOOL_NATURE |
4 | SPELL_SCHOOL_FROST |
5 | SPELL_SCHOOL_SHADOW |
6 | SPELL_SCHOOL_ARCANE |
BaseAttackTime
This is the base time that determines how long a creature must wait between melee attacks. This time is in milliseconds.
RangeAttackTime
This is the base time that determines how long a creature must wait between ranged attacks. This time is in milliseconds.
BaseVariance
Value to customize the creature's damage output. See DamageModifier.
Non-custom creatures should always leave this at 1.
RangeVariance
Value to customize the creature's damage output. See DamageModifier.
Non-custom creatures should always leave this at 1.
unit_class
This is the creature's class, and it dictates levels of health and mana. Also note that health and mana will change according to exp, HealthModifier, and ManaModifier. Not setting this value will report a minor warning in the “DB_Errors.log”.
Value | Name | Power Shown |
---|---|---|
1 | CLASS_WARRIOR | health only (equal to rogue) |
2 | CLASS_PALADIN | health & mana (more health than mage but less mana) |
4 | CLASS_ROGUE | Health only (equal to warrior) |
8 | CLASS_MAGE | health & mana (less health than paladin but more mana) |
unit_flags
Allows the manual application of unit flags to creatures. Again this is a bitmask field and to apply more than one flag, just add the different numbers. Some possible flags are:
Flag | Name | Comments | |
---|---|---|---|
1 | 0x00000001 | UNIT_FLAG_SERVER_CONTROLLED | set only when unit movement is controlled by server - by SPLINE/MONSTER_MOVE packets, together with UNIT_FLAG_STUNNED; only set to units controlled by client; client function CGUnit_C::IsClientControlled returns false when set for owner |
2 | 0x00000002 | UNIT_FLAG_NON_ATTACKABLE | Not attackable |
4 | 0x00000004 | UNIT_FLAG_DISABLE_MOVE | |
8 | 0x00000008 | UNIT_FLAG_PLAYER_CONTROLLED | Controlled by player, use _IMMUNE_TO_PC instead of _IMMUNE_TO_NPC |
16 | 0x00000010 | UNIT_FLAG_RENAME | |
32 | 0x00000020 | UNIT_FLAG_PREPARATION | Don't take reagents for spells with SPELL_ATTR_EX5_NO_REAGENT_WHILE_PREP |
64 | 0x00000040 | UNIT_FLAG_UNK_6 | not sure what it does, but it is needed to cast nontriggered spells in smart_scripts |
128 | 0x00000080 | UNIT_FLAG_NOT_ATTACKABLE_1 | ?? (UNIT_FLAG_PLAYER_CONTROLLED |
256 | 0x00000100 | UNIT_FLAG_IMMUNE_TO_PC | Disables combat/assistance with PlayerCharacters (PC) |
512 | 0x00000200 | UNIT_FLAG_IMMUNE_TO_NPC | Disables combat/assistance with NonPlayerCharacters (NPC) |
1024 | 0x00000400 | UNIT_FLAG_LOOTING | Loot animation |
2048 | 0x00000800 | UNIT_FLAG_PET_IN_COMBAT | In combat? 2.0.8 |
4096 | 0x00001000 | UNIT_FLAG_PVP | Changed in 3.0.3 |
8192 | 0x00002000 | UNIT_FLAG_SILENCED | Can't cast spells |
16384 | 0x00004000 | UNIT_FLAG_CANNOT_SWIM | 2.0.8 |
32768 | 0x00008000 | UNIT_FLAG_SWIMMING | Shows swim animation in water |
65536 | 0x00010000 | UNIT_FLAG_NON_ATTACKABLE_2 | Removes attackable icon, if on yourself, cannot assist self but can cast TARGET_SELF spells - added by SPELL_AURA_MOD_UNATTACKABLE |
131072 | 0x00020000 | UNIT_FLAG_PACIFIED | Creature will not attack |
262144 | 0x00040000 | UNIT_FLAG_STUNNED | 3.0.3 ok |
524288 | 0x00080000 | UNIT_FLAG_IN_COMBAT | ('AffectingCombat' from UnitFlags.cs in WPP) |
1048576 | 0x00100000 | UNIT_FLAG_TAXI_FLIGHT | Disable casting at client side spell not allowed by taxi flight (mounted?), probably used with 0x4 flag |
2097152 | 0x00200000 | UNIT_FLAG_DISARMED | 3.0.3, disable melee spells casting…, “Required melee weapon” added to melee spells tooltip. |
4194304 | 0x00400000 | UNIT_FLAG_CONFUSED | Confused. |
8388608 | 0x00800000 | UNIT_FLAG_FLEEING | ('Feared' from UnitFlags.cs in WPP) |
16777216 | 0x01000000 | UNIT_FLAG_POSSESSED | Under direct client control by a player (possess or vehicle) |
33554432 | 0x02000000 | UNIT_FLAG_NOT_SELECTABLE | Can't be selected by mouse or with /target {name} command. |
67108864 | 0x04000000 | UNIT_FLAG_SKINNABLE | Skinnable |
134217728 | 0x08000000 | UNIT_FLAG_MOUNT | The client seems to handle it perfectly. Also used when making custom mounts. |
268435456 | 0x10000000 | UNIT_FLAG_UNK_28 | (PreventKneelingWhenLooting from UnitFlags.cs in WPP) |
536870912 | 0x20000000 | UNIT_FLAG_PREVENT_EMOTES_FROM_CHAT_TEXT | Prevent automatically playing emotes from parsing chat text, for example “lol” in /say, ending message with ? or !, or using /yell |
1073741824 | 0x40000000 | UNIT_FLAG_SHEATHE | |
2147483648 | 0x80000000 | UNIT_FLAG_IMMUNE | Immune to damage |
unit_flags2
Allows additional application of unit flags to creatures. Again, this is a bitmask field and to apply more than one flag, just add the different numbers. Some possible flags are:
Flag | Name | Comments | |
---|---|---|---|
1 | 0x00000001 | UNIT_FLAG2_FEIGN_DEATH | |
2 | 0x00000002 | UNIT_FLAG2_HIDE_BODY | Hide unit model (show only player equip) |
4 | 0x00000004 | UNIT_FLAG2_IGNORE_REPUTATION | |
8 | 0x00000008 | UNIT_FLAG2_COMPREHEND_LANG | |
16 | 0x00000010 | UNIT_FLAG2_MIRROR_IMAGE | |
32 | 0x00000020 | UNIT_FLAG2_DO_NOT_FADE_IN | Unit model instantly appears when summoned (does not fade in) |
64 | 0x00000040 | UNIT_FLAG2_FORCE_MOVEMENT | |
128 | 0x00000080 | UNIT_FLAG2_DISARM_OFFHAND | |
256 | 0x00000100 | UNIT_FLAG2_DISABLE_PRED_STATS | Player has disabled predicted stats (Used by raid frames) |
1024 | 0x00000400 | UNIT_FLAG2_DISARM_RANGED | this does not disable ranged weapon display (maybe additional flag needed?) |
2048 | 0x00000800 | UNIT_FLAG2_REGENERATE_POWER | |
4096 | 0x00001000 | UNIT_FLAG2_RESTRICT_PARTY_INTERACTION | Restrict interaction to party or raid |
8192 | 0x00002000 | UNIT_FLAG2_PREVENT_SPELL_CLICK | Prevent spellclick |
16384 | 0x00004000 | UNIT_FLAG2_ALLOW_ENEMY_INTERACT | |
32768 | 0x00008000 | UNIT_FLAG2_CANNOT_TURN | |
65536 | 0x00010000 | UNIT_FLAG2_UNK2 | |
131072 | 0x00020000 | UNIT_FLAG2_PLAY_DEATH_ANIM | Plays special death animation upon death |
262144 | 0x00040000 | UNIT_FLAG2_ALLOW_CHEAT_SPELLS | allows casting spells with AttributesEx7 & SPELL_ATTR7_IS_CHEAT_SPELL |
dynamicflags
Flags that control visual appearance of the creature.
A few known flags and their use are:
Flag | Name | Comments | |
---|---|---|---|
0 | 0x00 | UNIT_DYNFLAG_NONE | |
1 | 0x01 | UNIT_DYNFLAG_LOOTABLE | |
2 | 0x02 | UNIT_DYNFLAG_TRACK_UNIT | Creature's location will be seen as a small dot in the minimap |
4 | 0x04 | UNIT_DYNFLAG_TAPPED | Makes creatures name appear grey (Lua_UnitIsTapped) |
8 | 0x08 | UNIT_DYNFLAG_TAPPED_BY_PLAYER | Lua_UnitIsTappedByPlayer usually used by PCVs (Player Controlled Vehicles) |
16 | 0x10 | UNIT_DYNFLAG_SPECIALINFO | |
32 | 0x20 | UNIT_DYNFLAG_DEAD | Makes the creature appear dead (this DOES NOT make the creature's name grey or not attack players). |
64 | 0x40 | UNIT_DYNFLAG_REFER_A_FRIEND | |
128 | 0x80 | UNIT_DYNFLAG_TAPPED_BY_ALL_THREAT_LIST | Lua_UnitIsTappedByAllThreatList |
family
The family this creature belongs to.
ID | Family | ID | Family |
---|---|---|---|
1. | Wolf | 26. | Owl |
2. | Cat | 27. | Wind Serpent |
3. | Spider | 28. | Remote Control |
4. | Bear | 29. | Felguard |
5. | Boar | 30. | Dragonhawk |
6. | Crocolisk | 31. | Ravager |
7. | Carrion Bird | 32. | Warp Stalker |
8. | Crab | 33. | Sporebat |
9. | Gorilla | 34. | Nether Ray |
11. | Raptor | 35. | Serpent |
12. | Tallstrider | 37. | Moth |
15. | Felhunter | 38. | Chimaera |
16. | Voidwalker | 39. | Devilsaur |
17. | Succubus | 40. | Ghoul |
19. | Doomguard | 41. | Silithid |
20. | Scorpid | 42. | Worm |
21. | Turtle | 43. | Rhino |
23. | Imp | 44. | Wasp |
24. | Bat | 45. | Core Hound |
25. | Hyena | 46. | Spirit Beast |
trainer_type
If the NPC is a trainer (has the trainer flag), then this field controls what kind of trainer it is. Both this field and the related field must be filled in for a trainer to work correctly.
ID | Type | Related Field | Comments |
---|---|---|---|
0 | TRAINER_TYPE_CLASS | trainer_class | Trains class spells |
1 | TRAINER_TYPE_MOUNTS | trainer_race | Trains riding skill |
2 | TRAINER_TYPE_TRADESKILLS | trainer_spell | Trains professions |
3 | TRAINER_TYPE_PETS | trainer_class | Trains pet skills |
trainer_spell
If the NPC is a trainer that teaches professions (trainer_type = 2), then the player must already know the spell ID specified here to be able to talk to this NPC.
trainer_class
If the NPC is a class trainer or a pet trainer (trainer_type = 0 or 3), then the player's class must be the same as the value specified here to talk to this trainer. For pet trainers, this value must be 3 (hunter). See characters.class
trainer_race
If the NPC is a mount trainer (trainer_type = 1), then the player's race must be the same as the value specified here to talk to this trainer. See characters.race
type
The type of the creature.
ID | Type |
---|---|
0 | None |
1 | Beast |
2 | Dragonkin |
3 | Demon |
4 | Elemental |
5 | Giant |
6 | Undead |
7 | Humanoid |
8 | Critter |
9 | Mechanical |
10 | Not specified |
11 | Totem |
12 | Non-Combat Pet |
13 | Gas Cloud |
type_flags
This field can control whether a mob is minable or herbable or lootable by engineer. If it is either of those three, then the loot given when it is skinned/mined will be stored in the skinning_loot_template table. It also controls, whether this mob can be tamed by a hunter. Other fields have no special meaning on the serverside. The entire field will be send to the client in SMSG_CREATURE_QUERY_RESPONSE
Flag | Name | Comments | |
---|---|---|---|
1 | 0x00000001 | CREATURE_TYPE_FLAG_TAMEABLE | Makes the mob tameable (must also be a beast and have family set) |
2 | 0x00000002 | CREATURE_TYPE_FLAG_VISIBLE_TO_GHOSTS | Creature are also visible for not alive player. Allow gossip interaction if npcflag allow? |
4 | 0x00000004 | CREATURE_TYPE_FLAG_BOSS_MOB | Changes creature's visible level to “??” in the creature's portrait - Immune to Knockback. |
8 | 0x00000008 | CREATURE_TYPE_FLAG_DO_NOT_PLAY_WOUND_PARRY_ANIMATION | Does not play wound animation on parry. |
16 | 0x00000010 | CREATURE_TYPE_FLAG_NO_FACTION_TOOLTIP | Hides tooltip faction. |
32 | 0x00000020 | CREATURE_TYPE_FLAG_MORE_AUDIBLE | |
64 | 0x00000040 | CREATURE_TYPE_FLAG_SPELL_ATTACKABLE | Spell attackable. |
128 | 0x00000080 | CREATURE_TYPE_FLAG_INTERACT_WHILE_DEAD | Player can interact with the creature if its dead (not player dead) |
256 | 0x00000100 | CREATURE_TYPE_FLAG_SKIN_WITH_HERBALISM | Makes mob herbable |
512 | 0x00000200 | CREATURE_TYPE_FLAG_SKIN_WITH_MINING | Makes mob minable |
1024 | 0x00000400 | CREATURE_TYPE_FLAG_NO_DEATH_MESSAGE | Does not combatlog death. |
2048 | 0x00000800 | CREATURE_TYPE_FLAG_ALLOW_MOUNTED_COMBAT | Creature can remain mounted when entering combat |
4096 | 0x00001000 | CREATURE_TYPE_FLAG_CAN_ASSIST | Can aid any player in combat if in range? |
8192 | 0x00002000 | CREATURE_TYPE_FLAG_NO_PET_BAR | Is using pet bar. |
16384 | 0x00004000 | CREATURE_TYPE_FLAG_MASK_UID | |
32768 | 0x00008000 | CREATURE_TYPE_FLAG_SKIN_WITH_ENGINEERING | Makes mob lootable by engineer |
65536 | 0x00010000 | CREATURE_TYPE_FLAG_TAMEABLE_EXOTIC | Tamable as an exotic pet. Normal tamable flag must also be set. |
131072 | 0x00020000 | CREATURE_TYPE_FLAG_USE_MODEL_COLLISION_SIZE | Collision related. (always using default collision box?) |
262144 | 0x00040000 | CREATURE_TYPE_FLAG_ALLOW_INTERACTION_WHILE_IN_COMBAT | Is siege weapon. |
524288 | 0x00080000 | CREATURE_TYPE_FLAG_COLLIDE_WITH_MISSILES | Projectiles can collide with this creature - interacts with TARGET_DEST_TRAJ |
1048576 | 0x00100000 | CREATURE_TYPE_FLAG_NO_NAME_PLATE | Hides nameplate. |
2097152 | 0x00200000 | CREATURE_TYPE_FLAG_DO_NOT_PLAY_MOUNTED_ANIMATIONS | Does not play mounted animations. |
4194304 | 0x00400000 | CREATURE_TYPE_FLAG_IS_LINK_ALL | |
8388608 | 0x00800000 | CREATURE_TYPE_FLAG_INTERACT_ONLY_WITH_CREATOR | Can only interact with its creator. |
16777216 | 0x01000000 | CREATURE_TYPE_FLAG_DO_NOT_PLAY_UNIT_EVENT_SOUNDS | |
33554432 | 0x02000000 | CREATURE_TYPE_FLAG_HAS_NO_SHADOW_BLOB | |
67108864 | 0x04000000 | CREATURE_TYPE_FLAG_TREAT_AS_RAID_UNIT | Creature can be targeted by spells that require target to be in caster's party/raid |
134217728 | 0x08000000 | CREATURE_TYPE_FLAG_FORCE_GOSSIP | Allows the creature to display a single gossip option. |
268435456 | 0x10000000 | CREATURE_TYPE_FLAG_DO_NOT_SHEATHE | |
536870912 | 0x20000000 | CREATURE_TYPE_FLAG_DO_NOT_TARGET_ON_INTERACTION | |
1073741824 | 0x40000000 | CREATURE_TYPE_FLAG_DO_NOT_RENDER_OBJECT_NAME | |
2147483648 | 0x80000000 | CREATURE_TYPE_FLAG_UNIT_IS_QUEST_BOSS |
lootid
The ID of the loot template ID that this creature should use to generate loots. See creature_loot_template.entry
pickpocketloot
The ID of the pickpocketing loot template that this creature should use to generate pickpocketing loots. See pickpocketing_loot_template.entry
skinloot
The ID of the skinning loot template that this creature should use to generate skinning loots. See skinning_loot_template.entry
PetSpellDataId
ID, found in CreatureSpellData.dbc, that displays what spells the pet has in the client.
VehicleId
Entry of vehicle if creature is/has a vehicle entry. This field determines how the player appears on the vehicle, how the vehicle moves, and whether or not the vehicle action bar is shown. For example, a vehicleID of 292 will make the player invisible, prevent the vehicle from strafing left/right (but will allow forwards/backwards), and will show the vehicle action bar spells (which are defined in spell1-8). An npc_spellclick_spells entry must be made for this creature entry in order for this to work.
mingold
Minimum money that the creature drops when killed, in copper.
maxgold
Maximum money that the creature drops when killed, in copper.
AIName
This field is overridden by ScriptName field if both are set.
Name | Description |
---|---|
NullCreatureAI | Empty AI, creature does nothing; cannot be charmed. |
TriggerAI | Same as “NullCreatureAI”, except that the creature casts the spell from field spell1 when summoned. |
AggressorAI | Creature attacks when entering aggro radius; uses only melee attacks. |
ReactorAI | Creature attacks only if aggroed; uses only melee attacks. |
PassiveAI | Creature behaves passive, cannot attack. |
CritterAI | Critter which flees if attacked. |
GuardAI | Creature is a zone guard. |
PetAI | Creature is a pet. |
TotemAI | Creature casts spell from field spell1; does not move. |
CombatAI | Creature attacks as soon as something is in aggro range; uses also spells. |
ArcherAI | Creature casts spell from field spell1; chases the victim. |
TurretAI | Creature attacks using spell from field spell1; does not move. |
VehicleAI | Creature acts as player vehicle. |
SmartAI | Creature uses the “smart_scripts” table to specify it's behaviour. |
MovementType
The creature's default movement type.
ID | Type |
---|---|
0 | Idle; stay in one place |
1 | Random movement inside the wander_distance radius |
2 | Waypoint movement |
HoverHeight
Distance above the ground that the creature will hover if it has MOVEMENTFLAG_DISABLE_GRAVITY enabled. Value taken from sniffs.
HealthModifier
Used to modify the base Level/Class health of a creature. This field comes from WDB.
ManaModifier
Used to modify the base Level/Class mana of a creature. This field comes from WDB.
ArmorModifier
Used to modify the base Level/Class armor of a creature.
DamageModifier
Used to modify the Minimum/Maximum damage of a creature.
The formulas to calculate the damage output are:
damage_base comes from the creature_classlevelstats table and takes its value either from damage_base, damage_exp1 or damage_exp2 according to the creature's value in exp (0 = base_damage, 1 = damage_exp1, 2 = damage_exp2).
BaseAttackTime is either BaseAttackTime or RangeAttackTime depending on the type of attack.
attackpower is either attackpower or rangedattackpower depending on the type of attack.
BaseVariance is either BaseVariance or RangeVariance depending on the type of attack.
ExperienceModifier
TODO!
RacialLeader
A flag with two possible values: '1' or '0' indicating whether the creature is a racial leader or not. Killing racial leaders grants 100 honor.
entry | name |
---|---|
2784 | King Magni Bronzebeard |
3057 | Cairne Bloodhoof |
4949 | Thrall |
7999 | Tyrande Whisperwind |
10181 | Lady Sylvanas Windrunner |
16802 | Lor'themar Theron |
17468 | Prophet Velen |
29611 | King Varian Wrynn |
36648 | Baine Bloodhoof (Leader) |
37764 | Lor'themar Theron |
movementId
We have no idea what this field does. It is passed directly to the client.
RegenHealth
Boolean '1' or '0' controlling whether the creature should regenerate it's health or not.
mechanic_immune_mask
This makes the creature immune to specific spell natures. See Spell.dbc at row effect_X_mechanic_id.
Uses references from SpellMechanic.dbc.
Flag | Type | Comment | |
---|---|---|---|
1 | 0x00000001 | MECHANIC_CHARM | |
2 | 0x00000002 | MECHANIC_DISORIENTED | |
4 | 0x00000004 | MECHANIC_DISARM | |
8 | 0x00000008 | MECHANIC_DISTRACT | |
16 | 0x00000010 | MECHANIC_FEAR | |
32 | 0x00000020 | MECHANIC_GRIP | Death Grip and similar effects |
64 | 0x00000040 | MECHANIC_ROOT | |
128 | 0x00000080 | MECHANIC_SLOW_ATTACK | |
256 | 0x00000100 | MECHANIC_SILENCE | |
512 | 0x00000200 | MECHANIC_SLEEP | |
1024 | 0x00000400 | MECHANIC_SNARE | |
2048 | 0x00000800 | MECHANIC_STUN | |
4096 | 0x00001000 | MECHANIC_FREEZE | |
8192 | 0x00002000 | MECHANIC_KNOCKOUT | Incapacitate effects such as Repetance (Paladin) |
16384 | 0x00004000 | MECHANIC_BLEED | |
32768 | 0x00008000 | MECHANIC_BANDAGE | Healing etc. |
65536 | 0x00010000 | MECHANIC_POLYMORPH | |
131072 | 0x00020000 | MECHANIC_BANISH | |
262144 | 0x00040000 | MECHANIC_SHIELD | |
524288 | 0x00080000 | MECHANIC_SHACKLE | Shackle Undead only |
1048576 | 0x00100000 | MECHANIC_MOUNT | Any effect that summons a mount |
2097152 | 0x00200000 | MECHANIC_INFECTED | Frost Fever, Blood Plague etc. |
4194304 | 0x00400000 | MECHANIC_TURN | e.g. Turn Evil |
8388608 | 0x00800000 | MECHANIC_HORROR | e.g. Death Coil (Warlock) |
16777216 | 0x01000000 | MECHANIC_INVULNERABILITY | Forbearance, Nether Protection, Diplomatic Immunity only |
33554432 | 0x02000000 | MECHANIC_INTERRUPT | |
67108864 | 0x04000000 | MECHANIC_DAZE | |
134217728 | 0x08000000 | MECHANIC_DISCOVERY | Any Create Item effect |
268435456 | 0x10000000 | MECHANIC_IMMUNE_SHIELD | Divine Shield, Ice Block, Hand of Protection… |
536870912 | 0x20000000 | MECHANIC_SAPPED | |
1073741824 | 0x40000000 | MECHANIC_ENRAGED |
To combine immunities just add values. Immune to everything corresponds to the value 2147483647 (0x3FFF FFFF).
spell_school_immune_mask
This makes the creature immune to specific spell schools.
Flag | Type |
---|---|
1 | SPELL_SCHOOL_NORMAL |
2 | SPELL_SCHOOL_HOLY |
4 | SPELL_SCHOOL_FIRE |
8 | SPELL_SCHOOL_NATURE |
16 | SPELL_SCHOOL_FROST |
32 | SPELL_SCHOOL_SHADOW |
64 | SPELL_SCHOOL_ARCANE |
To combine immunities just add values. Immune to everything corresponds to the value 127.
flags_extra
These flags control certain creature specific attributes. Flags can be added together to apply more than one.
Example: 32+64=96
Flag | Type | ||
---|---|---|---|
1 | CREATURE_FLAG_EXTRA_INSTANCE_BIND | 0x00000001 | creature kill binds instance to killer and killer's group |
2 | CREATURE_FLAG_EXTRA_CIVILIAN | 0x00000002 | creature does not aggro (ignore faction/reputation hostility) |
4 | CREATURE_FLAG_EXTRA_NO_PARRY | 0x00000004 | creature does not parry |
8 | CREATURE_FLAG_EXTRA_NO_PARRY_HASTEN | 0x00000008 | creature does not counter-attack at parry |
16 | CREATURE_FLAG_EXTRA_NO_BLOCK | 0x00000010 | creature does not block |
32 | CREATURE_FLAG_EXTRA_NO_CRUSHING_BLOWS | 0x00000020 | creature does not do crush-attacks |
64 | CREATURE_FLAG_EXTRA_NO_XP | 0x00000040 | creature kill does not give XP |
128 | CREATURE_FLAG_EXTRA_TRIGGER | 0x00000080 | creature is trigger-NPC (invisible to players only) |
256 | CREATURE_FLAG_EXTRA_NO_TAUNT | 0x00000100 | creature is immune to taunt-auras and “attack me”-effects |
512 | CREATURE_FLAG_EXTRA_NO_MOVE_FLAGS_UPDATE | 0x00000200 | (CREATURE_FLAG_EXTRA_UNUSED_10 Not Implemented) creature won't update movement flags |
1024 | CREATURE_FLAG_EXTRA_GHOST_VISIBILITY | 0x00000400 | creature will be only visible for dead players |
2048 | CREATURE_FLAG_EXTRA_USE_OFFHAND_ATTACK | 0x00000800 | (CREATURE_FLAG_EXTRA_UNUSED_12 Not Implemented) creature will use offhand attacks |
4096 | CREATURE_FLAG_EXTRA_NO_SELL_VENDOR | 0x00001000 | players can't sell items to this vendor |
8192 | CREATURE_FLAG_EXTRA_IGNORE_COMBAT | 0x00002000 | |
16384 | CREATURE_FLAG_EXTRA_WORLDEVENT | 0x00004000 | custom flag for world events (left room for merging) |
32768 | CREATURE_FLAG_EXTRA_GUARD | 0x00008000 | creature is a guard (Will ignore feign death and vanish) |
65536 | CREATURE_FLAG_EXTRA_IGNORE_FEIGN_DEATH | 0x00010000 | creature ignores feign death |
131072 | CREATURE_FLAG_EXTRA_NO_CRIT | 0x00020000 | creature does not do critical strikes |
262144 | CREATURE_FLAG_EXTRA_NO_SKILL_GAINS | 0x00040000 | creature won't increase weapon skills |
524288 | CREATURE_FLAG_EXTRA_OBEYS_TAUNT_DIMINISHING_RETURNS | 0x00080000 | creature taunt is subject to diminishing returns |
1048576 | CREATURE_FLAG_EXTRA_ALL_DIMINISH | 0x00100000 | Creature is subject to all diminishing returns |
2097152 | CREATURE_FLAG_EXTRA_NO_PLAYER_DAMAGE_REQ | 0x00200000 | creature does not need to take player damage for kill credit |
4194304 | CREATURE_FLAG_EXTRA_AVOID_AOE | 0x00400000 | ignored by aoe attacks (for icc blood prince council npc - Dark Nucleus) |
8388608 | CREATURE_FLAG_EXTRA_NO_DODGE | 0x00800000 | target cannot dodge |
16777216 | CREATURE_FLAG_EXTRA_MODULE | 0x01000000 | Used by module creatures to avoid blizzlike checks. |
33554432 | CREATURE_FLAG_EXTRA_DONT_CALL_ASSISTANCE | 0x02000000 | Prevents creatures from calling for assistance on initial aggro |
67108864 | CREATURE_FLAG_EXTRA_IGNORE_ALL_ASSISTANCE_CALLS | 0x04000000 | Prevents creature from responding to assistance calls |
134217728 | CREATURE_FLAG_EXTRA_DONT_OVERRIDE_SAI_ENTRY | 0x08000000 | Allows creatures to use both GUID and ENTRY specific SAI without one overwriting the other |
268435456 | CREATURE_FLAG_EXTRA_DUNGEON_BOSS | 0x10000000 | Creature is a dungeon boss. This flag is generically set by core during runtime. Setting this in database will give you startup error. |
536870912 | CREATURE_FLAG_EXTRA_IGNORE_PATHFINDING | 0x20000000 | Creature will ignore pathfinding. This is like disabling Mmaps, only for one creature. |
1073741824 | CREATURE_FLAG_EXTRA_IMMUNITY_KNOCKBACK | 0x40000000 | creature will immune all knockback effects |
2147483648 | CREATURE_FLAG_EXTRA_HARD_RESET | 0x80000000 | Creature will despawn on evade |
ScriptName
The name of the script that this creature uses, if any. This ties a script from a scripting engine to this creature.
VerifiedBuild
This field was used to determine whether a template has been verified from WDB files.
If value is 0 then it has not been parsed yet.
If value is above 0 then it has been parsed with WDB files from that specific client build.
If value is -1 then it is just a place holder until proper data are found on WDBs.
If value is -Client Build then it was parsed with WDB files from that specific client build and manually edited later for some special necessity.