diff options
Diffstat (limited to 'docs/creature_template.md')
| -rw-r--r-- | docs/creature_template.md | 1270 |
1 files changed, 1187 insertions, 83 deletions
diff --git a/docs/creature_template.md b/docs/creature_template.md index 0720658..1288e05 100644 --- a/docs/creature_template.md +++ b/docs/creature_template.md @@ -1,83 +1,1187 @@ -[Database Structure](Database-Structure) > [World-Database](World-Database) > [creature_template](creature_template) - -Column | Type | Description ---- | --- | --- -Entry | mediumint(8) unsigned | -Difficulty_entry_1 | mediumint(8) unsigned | -Difficulty_entry_2 | mediumint(8) unsigned | -Difficulty_entry_3 | mediumint(8) unsigned | -KillCredit1 | int(10) unsigned | -KillCredit2 | int(10) unsigned | -Modelid1 | mediumint(8) unsigned | -Modelid2 | mediumint(8) unsigned | -Modelid3 | mediumint(8) unsigned | -Modelid4 | mediumint(8) unsigned | -Name | char(100) | -Subname | char(100) | -IconName | char(100) | -Gossip_menu_id | mediumint(8) unsigned | -Minlevel | tinyint(3) unsigned | -Maxlevel | tinyint(3) unsigned | -Exp | smallint(6) | -Faction | smallint(5) unsigned | -Npcflag | int(10) unsigned | -Speed_walk | float | -Speed_run | float | -Scale | float | -Rank | tinyint(3) unsigned | -Mindmg | float | -Maxdmg | float | -Dmgschool | tinyint(4) | -Attackpower | int(10) unsigned | -Dmg_multiplier | float | -Baseattacktime | int(10) unsigned | -Rangeattacktime | int(10) unsigned | -Unit_class | tinyint(3) unsigned | -Unit_flags | int(10) unsigned | -Unit_flags2 | int(10) unsigned | -Dynamicflags | int(10) unsigned | -Family | tinyint(4) | -Trainer_type | tinyint(4) | -Trainer_spell | mediumint(8) unsigned | -Trainer_class | tinyint(3) unsigned | -Trainer_race | tinyint(3) unsigned | -Minrangedmg | float | -Maxrangedmg | float | -Rangedattackpower | smallint(5) unsigned | -Type | tinyint(3) unsigned | -Type_flags | int(10) unsigned | -Lootid | mediumint(8) unsigned | -Pickpocketloot | mediumint(8) unsigned | -Skinloot | mediumint(8) unsigned | -Resistance1 | smallint(6) | -Resistance2 | smallint(6) | -Resistance3 | smallint(6) | -Resistance4 | smallint(6) | -Resistance5 | smallint(6) | -Resistance6 | smallint(6) | -Spell1 | mediumint(8) unsigned | -Spell2 | mediumint(8) unsigned | -Spell3 | mediumint(8) unsigned | -Spell4 | mediumint(8) unsigned | -Spell5 | mediumint(8) unsigned | -Spell6 | mediumint(8) unsigned | -Spell7 | mediumint(8) unsigned | -Spell8 | mediumint(8) unsigned | -PetSpellDataId | mediumint(8) unsigned | -VehicleId | mediumint(8) unsigned | -Mingold | mediumint(8) unsigned | -Maxgold | mediumint(8) unsigned | -AIName | char(64) | -MovementType | tinyint(3) unsigned | -InhabitType | tinyint(3) unsigned | -HoverHeight | float | -Health_mod | float | -Mana_mod | float | -Armor_mod | float | -RacialLeader | tinyint(3) unsigned | -MovementId | int(11) unsigned | -RegenHealth | tinyint(3) unsigned | -Mechanic_immune_mask | int(10) unsigned | -Flags_extra | int(10) unsigned | -ScriptName | char(64) | -VerifiedBuild | smallint(6) | +# creature\_template335 + +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. + +| Field | Type | Null | Key | Default | Extra | Comment | +|----------------------------------------------------------------------|-----------------------|------|-----|---------|-------|--------------------------------------| +| [entry](#creature_template335-entry) | mediumint(8) unsigned | NO | PRI | 0 | | | +| [difficulty\_entry\_1](#creature_template335-difficulty_entry) | mediumint(8) unsigned | NO | | 0 | | | +| [difficulty\_entry\_2](#creature_template335-difficulty_entry) | mediumint(8) unsigned | NO | | 0 | | | +| [difficulty\_entry\_3](#creature_template335-difficulty_entry) | mediumint(8) unsigned | NO | | 0 | | | +| [KillCredit1](#creature_template335-KillCredit1) | int(10) unsigned | NO | | 0 | | | +| [KillCredit2](#creature_template335-KillCredit2) | int(10) unsigned | NO | | 0 | | | +| [modelid1](#creature_template335-modelid) | mediumint(8) unsigned | NO | | 0 | | | +| [modelid2](#creature_template335-modelid) | mediumint(8) unsigned | NO | | 0 | | | +| [modelid3](#creature_template335-modelid) | mediumint(8) unsigned | NO | | 0 | | | +| [modelid4](#creature_template335-modelid) | mediumint(8) unsigned | NO | | 0 | | | +| [name](#creature_template335-name) | char(100) | NO | MUL | 0 | | | +| [subname](#creature_template335-subname) | char(100) | YES | | (NULL) | | | +| [IconName](#creature_template335-IconName) | char(100) | YES | | (NULL) | | | +| [gossip\_menu\_id](#creature_template335-gossip_menu_id) | mediumint(8) unsigned | NO | | 0 | | | +| [minlevel](#creature_template335-minlevel) | tinyint(3) unsigned | NO | | 1 | | | +| [maxlevel](#creature_template335-maxlevel) | tinyint(3) unsigned | NO | | 1 | | | +| [exp](#creature_template335-exp) | smallint(6) | NO | | 0 | | | +| [faction](#creature_template335-faction) | smallint(5) unsigned | NO | | 0 | | | +| [npcflag](#creature_template335-npcflag) | int(10) unsigned | NO | | 0 | | | +| [speed\_walk](#creature_template335-speed_walk) | float | NO | | 1 | | Result of 2.5/2.5, most common value | +| [speed\_run](#creature_template335-speed_run) | float | NO | | 1.14286 | | Result of 8.0/7.0, most common value | +| [scale](#creature_template335-scale) | float | NO | | 1 | | | +| [rank](#creature_template335-rank) | tinyint(3) unsigned | NO | | 0 | | | +| [dmgschool](#creature_template335-dmgschool) | tinyint(4) | NO | | 0 | | | +| [BaseAttackTime](#creature_template335-BaseAttackTime) | int(10) unsigned | NO | | 0 | | | +| [RangeAttackTime](#creature_template335-RangeAttackTime) | int(10) unsigned | NO | | 0 | | | +| [BaseVariance](#creature_template335-BaseVariance) | float | NO | | 1 | | | +| [RangeVariance](#creature_template335-RangeVariance) | float | NO | | 1 | | | +| [unit\_class](#creature_template335-unit_class) | tinyint(3) unsigned | NO | | 0 | | | +| [unit\_flags](#creature_template335-unit_flags) | int(10) unsigned | NO | | 0 | | | +| [unit\_flags2](#creature_template335-unit_flags2) | int(10) unsigned | NO | | 0 | | | +| [dynamicflags](#creature_template335-dynamicflags) | int(10) unsigned | NO | | 0 | | | +| [family](#creature_template335-family) | tinyint(4) | NO | | 0 | | | +| [trainer\_type](#creature_template335-trainer_type) | tinyint(4) | NO | | 0 | | | +| [trainer\_spell](#creature_template335-trainer_spell) | mediumint(8) unsigned | NO | | 0 | | | +| [trainer\_class](#creature_template335-trainer_class) | tinyint(3) unsigned | NO | | 0 | | | +| [trainer\_race](#creature_template335-trainer_race) | tinyint(3) unsigned | NO | | 0 | | | +| [type](#creature_template335-type) | tinyint(3) unsigned | NO | | 0 | | | +| [type\_flags](#creature_template335-type_flags) | int(10) unsigned | NO | | 0 | | | +| [lootid](#creature_template335-lootid) | mediumint(8) unsigned | NO | | 0 | | | +| [pickpocketloot](#creature_template335-pickpocketloot) | mediumint(8) unsigned | NO | | 0 | | | +| [skinloot](#creature_template335-skinl) | mediumint(8) unsigned | NO | | 0 | | | +| [resistance1](#creature_template335-resistance) | smallint(6) | NO | | 0 | | | +| [resistance2](#creature_template335-resistance) | smallint(6) | NO | | 0 | | | +| [resistance3](#creature_template335-resistance) | smallint(6) | NO | | 0 | | | +| [resistance4](#creature_template335-resistance) | smallint(6) | NO | | 0 | | | +| [resistance5](#creature_template335-resistance) | smallint(6) | NO | | 0 | | | +| [resistance6](#creature_template335-resistance) | smallint(6) | NO | | 0 | | | +| [spell1](#creature_template335-spell) | mediumint(8) unsigned | NO | | 0 | | | +| [spell2](#creature_template335-spell) | mediumint(8) unsigned | NO | | 0 | | | +| [spell3](#creature_template335-spell) | mediumint(8) unsigned | NO | | 0 | | | +| [spell4](#creature_template335-spell) | mediumint(8) unsigned | NO | | 0 | | | +| [spell5](#creature_template335-spell) | mediumint(8) unsigned | NO | | 0 | | | +| [spell6](#creature_template335-spell) | mediumint(8) unsigned | NO | | 0 | | | +| [spell7](#creature_template335-spell) | mediumint(8) unsigned | NO | | 0 | | | +| [spell8](#creature_template335-spell) | mediumint(8) unsigned | NO | | 0 | | | +| [PetSpellDataId](#creature_template335-PetSpellDataId) | mediumint(8) unsigned | NO | | 0 | | | +| [VehicleId](#creature_template335-VehicleId) | mediumint(8) unsigned | NO | | 0 | | | +| [mingold](#creature_template335-mingold) | mediumint(8) unsigned | NO | | 0 | | | +| [maxgold](#creature_template335-maxgold) | mediumint(8) unsigned | NO | | 0 | | | +| [AIName](#creature_template335-AIName) | char(64) | NO | | | | | +| [MovementType](#creature_template335-MovementType) | tinyint(3) unsigned | NO | | 0 | | | +| [InhabitType](#creature_template335-InhabitType) | tinyint(3) unsigned | NO | | 3 | | | +| [HoverHeight](#creature_template335-HoverHeight) | float | NO | | 1 | | | +| [HealthModifier](#creature_template335-HealthModifier) | float | NO | | 1 | | | +| [ManaModifier](#creature_template335-ManaModifier) | float | NO | | 1 | | | +| [ArmorModifier](#creature_template335-ArmorModifier) | float | NO | | 1 | | | +| [DamageModifier](#creature_template335-DamageModifier) | float | NO | | 1 | | | +| [ExperienceModifier](#creature_template335-ExperienceModifier) | float | NO | | 1 | | | +| [RacialLeader](#creature_template335-RacialLeader) | tinyint(3) unsigned | NO | | 0 | | | +| [movementId](#creature_template335-movementId) | int(11) unsigned | NO | | 0 | | | +| [RegenHealth](#creature_template335-RegenHealth) | tinyint(3) unsigned | NO | | 1 | | | +| [mechanic\_immune\_mask](#creature_template335-mechanic_immune_mask) | int(10) unsigned | NO | | 0 | | | +| [flags\_extra](#creature_template335-flags_extra) | int(10) unsigned | NO | | 0 | | | +| [ScriptName](#creature_template335-ScriptName) | char(64) | NO | | | | | +| [VerifiedBuild](#creature_template335-VerifiedBuild) | smallint(5) | 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](http://www.wowhead.com/npc=26763/anomalus) | 26763 | 30529 | 0 | 0 | +| [Sindragosa](http://www.wowhead.com/npc=36853/sindragosa) | 36853 | 38265 | 38266 | 38267 | + +Anomalus is a boss located in The Nexus. You can fight him on two types of difficulties (normal dungeon and heroic dungeon). It's obvious that 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. + +Another important case of that would be Sindragosa. Boss located in the Icecrown Citadel, you can fight her on 4 different difficulties (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. + +If you look at 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 | + +**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](http://archive.trinitycore.info/Creature_template_tc2#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](http://archive.trinitycore.info/Creature_template_tc2#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](creature_model_info) + +#### 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.entry](http://collab.kpsn.org/display/tc/Gossip_menu#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. + +| exp | name | +|-----|------------------------| +| 0 | Classic | +| 1 | The Burning Crusade | +| 2 | Wrath of The Lich King | + +#### faction + +The faction of the creature. See [FactionTemplate](http://collab.kpsn.org/display/tc/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. + +# **npcflag** + +Decimal +Hexadecimal +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 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. + +#### 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](http://archive.trinitycore.info/Creature_tc2#spawntimesecs "Creature tc2") | Corpse Decay Time + Worldserver.conf (Corpse.Decay) | Total Default Respawn + [spawntimesecs](http://archive.trinitycore.info/Creature_tc2#spawntimesecs "Creature tc2") + 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](http://archive.trinitycore.info/Creature_tc2#spawntimesecs "Creature tc2") (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](http://archive.trinitycore.info/Creature_template_tc2#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. + +#### 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](http://archive.trinitycore.info/Creature_template_tc2#exp "Creature template tc2"), [health\_mod](http://archive.trinitycore.info/Creature_template_tc2#Health_mod "Creature template tc2"), and [mana\_mod](http://archive.trinitycore.info/Creature_template_tc2#Mana_mod "Creature template tc2"). 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: + +# unit\_flags + +Decimal +Hexadecimal +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\_PVP\_ATTACKABLE +Allows to apply PvP rules to attackable state in addition to faction dependent state +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 +UNIT\_FLAG\_UNK\_15 +Only Swim (['OnlySwim' from UnitFlags.cs in WPP](https://github.com/TrinityCore/WowPacketParser/blob/master/WowPacketParser/Enums/UnitFlags.cs)) +65536 +0x0001 0000 +UNIT\_FLAG\_UNK\_16 +No Attack 2 (['NoAttack2' from UnitFlags.cs in WPP](https://github.com/TrinityCore/WowPacketParser/blob/master/WowPacketParser/Enums/UnitFlags.cs)) +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](https://github.com/TrinityCore/WowPacketParser/blob/master/WowPacketParser/Enums/UnitFlags.cs)) +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](https://github.com/TrinityCore/WowPacketParser/blob/master/WowPacketParser/Enums/UnitFlags.cs)) +16777216 +0x0100 0000 +UNIT\_FLAG\_PLAYER\_CONTROLLED +Used in spell Eyes of the Beast for pet... let attack by controlled creature. Also used by Vehicles (PCV). +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](https://github.com/TrinityCore/WowPacketParser/blob/master/WowPacketParser/Enums/UnitFlags.cs)) +536870912 +0x2000 0000 +UNIT\_FLAG\_UNK\_29 +Used in Feign Death spell or NPC will play dead. ([PreventEmotes](https://github.com/TrinityCore/WowPacketParser/blob/master/WowPacketParser/Enums/UnitFlags.cs)) +1073741824 +0x4000 0000 +UNIT\_FLAG\_SHEATHE +2147483648 +0x8000 0000 +UNIT\_FLAG\_UNK\_31 + +#### 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: + +# unit\_flags2 + +Decimal +Hexadecimal +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: + +# dynamicflags + +Decimal +Hexadecimal +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](http://archive.trinitycore.info/Creature_template_tc2#trainer_class) | Trains class spells | +| 1 | TRAINER\_TYPE\_MOUNTS | [trainer\_race](http://archive.trinitycore.info/Creature_template_tc2#trainer_race) | Trains riding skill | +| 2 | TRAINER\_TYPE\_TRADESKILLS | [trainer\_spell](http://archive.trinitycore.info/Creature_template_tc2#trainer_spell) | Trains professions | +| 3 | TRAINER\_TYPE\_PETS | [trainer\_class](http://archive.trinitycore.info/Creature_template_tc2#trainer_class) | Trains pet skills | + +#### trainer\_spell + +If the NPC is a trainer that teaches professions ([trainer\_type](http://archive.trinitycore.info/Creature_template_tc2#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](http://archive.trinitycore.info/Creature_template_tc2#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](http://archive.trinitycore.info/Characters_tc2#class "Characters tc2") + +#### trainer\_race + +If the NPC is a mount trainer ([trainer\_type](http://archive.trinitycore.info/Creature_template_tc2#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](http://archive.trinitycore.info/Characters_tc2#race "Characters tc2") + +#### 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](http://archive.trinitycore.info/Loot_template_tc2 "Loot template tc2") 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 + +# type\_flags + +Decimal +Hexadecimal +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 - Inmune 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 |
