Overview
This file controls the functionalities for armor type items
This file is loaded together with other similar files in the following order: weapons.txt, armor.txt, misc.txt
These combined files form the items structure. Technically these files share the same fields, but some fields are exclusive for specific item types, so they are not displayed in the data files that do not need them.
Any column field name starting with “*” is considered a comment field and is not used by the game
Data Fields
name – This is a reference field to define the item
version – Defines which game version to create this item (0 = Classic mode | 100 = Expansion mode)
compactsave – Boolean Field. If equals 1, then only the item’s base stats will be stored in the character save, but not any modifiers or additional stats. If equals 0, then all of the items stats will be saved.
rarity – Determines the chance that the item will randomly spawn (1/#). The higher the value then the rarer the item will be. This field depends on the “spawnable” field being enabled, the “quest” field being disabled, and the item level being less than or equal to the area level. This value is also affected by the relative Act number that the item is dropping in, where the higher the Act number, then the more common the item will drop.
spawnable – Boolean Field. If equals 1, then this item can be randomly spawned. If equals 0, then this item will never randomly spawn.
speed – If the item type is an armor, then this will affect the Walk/Run Speed reduction when wearing the armor. If the item type is a weapon, then this will affect the Attack Speed reduction when wearing the weapon.
reqstr – Defines the amount of the Strength attribute needed to use the item
reqdex – Defines the amount of the Dexterity attribute needed to use the item
durability – Defines the base durability amount that the item will spawn with.
nodurability – Boolean Field. If equals 1, then the item will not have durability. If equals 0, then the item will have durability.
level – Controls the base item level. This is used for determining when the item is allowed to drop, such as making sure that the item level is not greater than the monster’s level or the area level.
ShowLevel – Boolean Field. If equals 1, then display the item level next to the item name. If equals 0, then ignore this.
levelreq – Controls the player level requirement for being able to use the item
cost – Defines the base gold cost of the item when being sold by an NPC. This can be affected by item modifiers and the rarity of the item.
gamble cost – Defines the gambling gold cost of the item on the Gambling UI
code – Defines a unique 3 letter/number code for the item. This is used as an identifier to reference the item.
namestr – String Key that is used for the base item name
magic lvl – Defines the magic level of the item, which can affect how magical item modifiers that can appear on the item (See automagic.txt)
auto prefix – Automatically picks an item affix name from a designated “group” value from the automagic.txt file, instead of using random prefixes. This is only used when the item is Magical quality.
alternategfx – Uses a unique 3 letter/number code similar to the defined “code” fields to determine what in-game graphics to display on the player character when the item is equipped
normcode – Links to a “code” field to determine the normal version of the item
ubercode – Links to a “code” field to determine the Exceptional version of the item
ultracode – Links to a “code” field to determine the Elite version of the item
component – Determines the layer of player animation when the item is equipped. This uses a code referenced from the Composit.txt file.
Code | Description |
0 | Head |
1 | Torso |
2 | Legs |
3 | Right Arm |
4 | Left Arm |
5 | Right Hand |
6 | Left Hand |
7 | Shield |
8 | Special 1 |
9 | Special 2 |
10 | Special 3 |
11 | Special 4 |
12 | Special 5 |
13 | Special 6 |
14 | Special 7 |
15 | Special 8 |
16 | Do not display anything |
invwidth & invheight – Defines the width and height of grid cells that the item occupies in the player inventory
hasinv – Boolean Field. If equals 1, then the item will have its own inventory allowing for the capability to socket gems, runes, or jewels. If equals 0, then the item cannot have sockets.
gemsockets – Controls the maximum number of sockets allowed on this item. This is limited by the item’s size based on the “invwidth” and “invheight” fields. This also compares with the “MaxSock1”, “MaxSock25” and “MaxSock40” fields from the ItemTypes.txt file.
gemapplytype – Determines which affect from a gem or rune will be applied when it is socketed into this item (See gems.txt)
Code | Description |
0 | Weapon |
1 | Armor or Helmet |
2 | Shield |
flippyfile – Controls which DC6 file to use for displaying the item in the game world when it is dropped on the ground (uses the file name as the input)
invfile – Controls which DC6 file to use for displaying the item graphics in the inventory (uses the file name as the input)
uniqueinvfile – Controls which DC6 file to use for displaying the item graphics in the inventory when it is a Unique quality item (uses the file name as the input)
setinvfile – Controls which DC6 file to use for displaying the item graphics in the inventory when it is a Set quality item (uses the file name as the input)
useable – Boolean Field. If equals 1, then the item can be used with the right-click mouse button command (this only works with specific belt items or quest items). If equals 0, then ignore this.
stackable – Boolean Field. If equals 1, then the item will use a quantity field and handle stacking functionality. This can depend on if the item type is throwable, is a type of ammunition, or is some other kind of miscellaneous item. If equals 0, then the item cannot be stacked.
minstack – Controls the minimum stack count or quantity that is allowed on the item. This field depends on the “stackable” field being enabled.
maxstack – Controls the maximum stack count or quantity that is allowed on the item. This field depends on the “stackable” field being enabled.
spawnstack – Controls the stack count or quantity that the item can spawn with. This field depends on the “stackable” field being enabled.
Transmogrify – Boolean Field. If equals 1, then the item will use the transmogrify function. If equals 0, then ignore this. This field depends on the “useable” field being enabled.
TMogType – Links to a “code” field to determine which item is chosen to transmogrify this item to.
TMogMin – Controls the minimum quantity that the transmogrify item will have. This depends on what item was chosen in the “TMogType” field, and that the transmogrify item has quantity.
TMogMax – Controls the minimum quantity that the transmogrify item will have. This depends on what item was chosen in the “TMogType” field, and that the transmogrify item has quantity.
type – Points to an Item Type defined in the ItemTypes.txt file, which controls how the item functions
type2 – Points to a secondary Item Type defined in the ItemTypes.txt file, which controls how the item functions. This is optional but can add more functionalities and possibilities with the item.
dropsound – Points to sound defined in the sounds.txt file. Used when the item is dropped on the ground.
dropsfxframe – Defines which frame in the “flippyfile” animation to play the “dropsound” sound when the item is dropped on the ground.
usesound – Points to sound defined in the sounds.txt file. Used when the item is moved in the inventory or used.
unique – Boolean Field. If equals 1, then the item can only spawn as a Unique quality type. If equals 0, then the item can spawn as other quality types.
transparent – Boolean Field. If equals 1, then the item will be drawn transparent on the player model (similar to ethereal models). If equals 0, then the item will appear solid on the player model.
transtbl – Controls what type of transparency to use, based on the “transparent” field being enabled.
Code | Description |
0 | Transparency at 25% |
1 | Transparency at 50% |
2 | Transparency at 75% |
3 | Black Alpha Transparency |
4 | White Alpha Transparency |
5 | No Transparency |
6 | Dark Transparency (Unused) |
7 | Highlight Transparency (Used when mousing over the unit) |
8 | Blended |
lightradius – Controls the value of the light radius that this item can apply on the monster. This only affects monsters with this item equipped, not other types of units. This is ignored if the item’s component on the monster is “lit”, “med”, or “hvy”.
belt – Controls which belt type to use for belt items only. This field determines what index entry in the belts.txt file to use.
quest – Controls what quest class is tied to the item which can enable certain item functionalities for a specific quest. Any value greater than 0 will also mean the item is flagged as a quest item, which can affect how it is displayed in tooltips, how it is traded with other players, its item rarity, and how it cannot be sold to an NPC. If equals 0, then the item will not be flagged as a quest item.
Code | Description |
0 | Not a quest item |
1 | Act 1 Prologue |
2 | Den of Evil |
3 | Sisters’ Burial Grounds |
4 | Tools of the Trade |
5 | The Search for Cain |
6 | The Forgotten Tower |
7 | Sisters to the Slaughter |
8 | Act 2 Prologue |
9 | Radament’s Lair |
10 | The Horadric Staff |
11 | The Tainted Sun |
12 | The Arcane Sanctuary |
13 | The Summoner |
14 | The Seven Tombs |
15 | Act 2 Traversed |
16 | Lam Esen’s Tome |
17 | Khalim’s Will |
18 | Blade of the Old Religion |
19 | The Golden Bird |
20 | The Blackened Temple |
21 | The Guardian |
22 | Act 4 Prologue |
23 | The Fallen Angel |
24 | Terror’s End |
25 | The Hellforge |
26 | Rogue Warning |
27 | Guard in Town Warning |
28 | Guard in Desert Warning |
29 | Dark Wanderer Seen |
30 | Angel Warning |
31 | Respec from Akara Complete Act 5 Prologue |
32 | Siege on Harrogath |
33 | Rescue on Mount Arreat |
34 | Prison of Ice |
35 | Betrayal of Harrogath |
36 | Rite of Passage |
37 | Eve of Destruction |
questdiffcheck – Boolean Field. If equals 1 and the “quest” field is enabled, then the game will check the current difficulty setting and will tie that difficulty setting to the quest item. This means that the player can have more than 1 of the same quest item as long each they are obtained per difficulty mode (Normal / Nightmare / Hell). If equals 0 and the “quest” field is enabled, then the player can only have 1 count of the quest item in the inventory, regardless of difficulty.
missiletype – Points to the “Id” field from the Missiles.txt file, which determines what type of missile is used when using the throwing weapons
durwarning – Controls the threshold value for durability to display the low durability warning UI. This is only used if the item has durability.
qntwarning – Controls the threshold value for quantity to display the low quantity warning UI. This is only used if the item has stacks.
mindam – The minimum physical damage provided by the item
maxdam – The maximum physical damage provided by the item
StrBonus – The percentage multiplier that gets multiplied the player’s current Strength attribute value to modify the bonus damage percent from the equipped item. If this equals 1, then default the value to 100.
DexBonus – The percentage multiplier that gets multiplied the player’s current Dexterity attribute value to modify the bonus damage percent from the equipped item. If this equals 1, then default the value to 100.
gemoffset – Determines the starting index offset for reading the gems.txt file when determining what effects gems or runes will have the item based on the “gemapplytype” field. For example, if this value equals 9, then the game will start with index 9 (“Chipped Emerald”) and ignore the previously defined gems in the gems.txt file, which can mean that those ignored gems will not apply modifiers when socketed into the item.
bitfield1 – Controls different flags that can affect the item. Uses an integer value to check against different bit fields by using the “&” operator. For example, if the value equals 5 (binary = 101) then that returns true for both the 4 (binary = 100) and 1 (binary = 1) bit field values.
Bit Field One Bits | Binary Equivalent Value | Description |
1 | 1 | Allow the item to be capable of having Magic quality |
2 | 10 | The item is classified as metal |
4 | 100 | The item is classified as a spellcaster item (currently does nothing) |
8 | 1000 | The item is classified as a skill based item (currently does nothing) |
The following fields are separated per NPC in each Act:
[NPC]Min – Minimum amount of this item type in Normal rarity that the NPC can sell at once
[NPC]Max – Maximum amount of this item type in Normal rarity that the NPC can sell at once. This must be equal to or greater than the minimum amount.
[NPC]MagicMin – Minimum amount of this item type in Magical rarity that the NPC can sell at once
[NPC]MagicMax – Maximum amount of this item type in Magical rarity that the NPC can sell at once. This must be equal to or greater than the minimum amount.
[NPC]MagicLvl – Maximum magic level allowed for this item type in Magical rarity
Where [NPC] is one of the following:
Charsi |
Gheed |
Akara |
Fara |
Lysander |
Drognan |
Hratli |
Alkor |
Ormus |
Elzix |
Asheara |
Cain |
Halbu |
Jamella |
Larzuk |
Malah |
Anya |
Transform – Controls the color palette change of the item for the character model graphics
InvTrans – Controls the color palette change of the item for the inventory graphics
Code | Color |
0 | No color change |
1 | Grey |
2 | Grey 2 |
3 | Gold |
4 | Brown |
5 | Grey Brown |
6 | Inventory Grey |
7 | Inventory Grey 2 |
8 | Inventory Grey Brown |
SkipName – Boolean Field. If equals 1 and the item is Unique rarity, then skip adding the item’s base name in its title. If equals 0, then ignore this.
NightmareUpgrade – Links to another item’s “code” field. Used to determine which item will replace this item when being generated in the NPC’s store while the game is playing in Nightmare difficulty. If this field’s code equals “xxx”, then this item will not change in this difficulty.
HellUpgrade – Links to another item’s “code” field. Used to determine which item will replace this item when being generated in the NPC’s store while the game is playing in Hell difficulty. If this field’s code equals “xxx”, then this item will not change in this difficulty.
Nameable – Boolean Field. If equals 1, then the item’s name can be personalized by Anya for the Act 5 Betrayal of Harrogath quest reward. If equals 0, then the item cannot be used for the personalized name reward.
PermStoreItem – Boolean Field. If equals 1, then this item will always appear on the NPC’s store. If equals 0, then the item will randomly appear on the NPC’s store when appropriate.
diablocloneweight – The amount of weight added to the diablo clone progress when this item is sold. When offline, selling this item will instead immediately spawn diablo clone.
The following fields are exclusive to the armor.txt file, because these fields only work with Armor type items:
minac – The minimum amount of Defense that an armor item type can have
maxac – The maximum amount of Defense that an armor item type can have
block – Controls the block percent chance that the item provides (out of 100, but caps at 75).
rArm – Controls the character’s graphics and animations for the Right Arm component when wearing the armor, where the value 0 = Light or “lit”, 1 = Medium or “med”, and 2 = Heavy or “hvy”
lArm – Controls the character’s graphics and animations for the Left Arm component when wearing the armor, where the value 0 = Light or “lit”, 1 = Medium or “med”, and 2 = Heavy or “hvy”
Torso – Controls the character’s graphics and animations for the Torso component when wearing the armor, where the value 0 = Light or “lit”, 1 = Medium or “med”, and 2 = Heavy or “hvy”
Legs – Controls the character’s graphics and animations for the Legs component when wearing the armor, where the value 0 = Light or “lit”, 1 = Medium or “med”, and 2 = Heavy or “hvy”
rSPad – Controls the character’s graphics and animations for the Right Shoulder Pad component when wearing the armor, where the value 0 = Light or “lit”, 1 = Medium or “med”, and 2 = Heavy or “hvy”
lSPad – Controls the character’s graphics and animations for the Left Shoulder Pad component when wearing the armor, where the value 0 = Light or “lit”, 1 = Medium or “med”, and 2 = Heavy or “hvy”