Overview
This file controls the functionalities for miscellaneous type items, such as the non-weapons and non-armor 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 a “Sound” field 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 a “Sound” field 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 Value | Binary 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 misc.txt file because these fields only used with Miscellaneous type items:
autobelt – Boolean Field. If equals 1, then the item will automatically be placed is a free slot in the belt when picked up, if possible. If equals 0, then ignore this.
bettergem – Links to another item’s “code” field. Used by the function 18 in the “Code” field from the shrines.txt file to know what a selected gem’s upgrade will be when the player uses the gem shrine.
multibuy – Boolean Field. If equals 1, then use the multi-buy transaction function when holding the shift key and buying this item from an NPC store. This multi-buy function will automatically purchase enough of the item to fill up to a full quantity stack or fill the available belt slots if the item is has the “autobelt” field enabled. If equals 0, then ignore this.
spellicon – Determines the icon asset for displaying the item’s spell. This uses an ID value based on the global skillicon file. If this value equals -1, then the item’s spell will not display an icon. Used as a parameter for a “pspell” function.
pspell – Uses an ID value to select a spell function when the item is used. This depends on the item type.
Code | Parameters | Description |
0 | Do nothing | |
1 | spellicon | SkillItemIdentify – Sets the spell icon. Identifies an item. |
2 | SkillItemTownPortal – The player creates a town portal | |
3 | state stat1, calc1 stat2, calc2 stat3, calc3 len | SkillItemHealPotion1. Applies a “state” on the player that is controlled by the “len” field2. This function requires that the stat parameters be either “hitpoints”, “hpregen”, “mana”, or “manarecovery”3. Calculates a flat amount of these stats to restore to the player, based on the class and Vitality/Energy attribute for Life/Mana stats |
4 | state stat1, calc1 stat2, calc2 stat3, calc3 len | SkillItemHealPotion21. Applies a “state” on the player that is controlled by the “len” field2. This function requires that the stat parameters be either “hitpoints”, “hpregen”, “mana”, or “manarecovery”3. Calculates a flat amount of these stats to restore to the player |
5 | stat1, calc1 stat2, calc2 stat3, calc3 | SkillItemHealPotion3 – Adds a percentage of the stat’s “maxstat” value (see ItemStatCost.txt) to the current stat. This percentage is determined by the related calculated value. |
6 | state cstate1 cstate2 len | SkillItemPotionAntidote – Clears the “cstate1” and “cstate2” states on the user and applies the “state” state with its duration controlled by the “len” field. |
7 | SkillItemTransmogrify – Opens the Horadric Cube UI | |
8 | SkillItemElixir – Get a stat from item’s mod class and set it to the it’s “value” stat | |
9 | state stat1, calc1 stat2, calc2 stat3, calc3 len | SkillItemHerb1. Applies a “state” on the player that is controlled by the “len” field2. Calculates a flat amount of the stats to set on the player3. Has a special case where if the stat equals “staminarecoverybonus” then also set the current “stamina” stat to be equals to the “maxstamina” stat |
10 | SkillItemSkill – Cast a level 1 Sorceress Fire Ball skill at a targeted enemy or targeted location | |
11 | SkillItemSkillXY – Cast a level 1 Sorceress Fire Ball skill at a targeted location |
state – Links to a “state” field defined in the states.txt file. It signifies what state will be applied to the player when the item is used. Used as a parameter for a “pspell” function.
cstate1 & cstate2 – Links to a “state” field defined in the states.txt file. It signifies what state will be removed from the player when the item is used. Used as a parameter for a “pspell” function.
len – Calculates the frame length of a state. Used as a parameter for a “pspell” function.
stat1 (to stat3) – Controls the stat modifier when the item is used (Uses the “code” field from Properties.txt). Used as a parameter for a “pspell” function.
calc1 (to calc3) – Calculates the value of the relative “stat#” field. Used as a parameter for a “pspell” function.
spelldesc – Uses an ID value to select a function to format a string and add this string to the item’s tooltip
Code | Parameters | Description |
0 (or empty) | Do nothing | |
1 | spelldescstrspelldescstr2 | 1. Add the “spelldescstr” string to the item tooltip2. If “spelldescstr2” is not null, then use this string instead of “spelldescstr” string when playing in controller mode |
2 | spelldescstrspelldesccalcstat1 | 1. Evaluate the “spelldesccalc” field2. If the “stat1” value equals “hitpoints” or “hpregen” then adjust the calculated value based on the relative “HealthPotionPercent” value from charstats.txt file.3. If the “stat1” value equals “mana” or “manarecovery” then adjust the calculated value based on the relative “ManaPotionPercent” value from charstats.txt file.4. Insert the calculated value into the “spelldescstr” string and add the string to the item tooltip |
3 | spelldescstrspelldesccalc | 1. Evaluate the “spelldesccalc” field2. Add the “spelldescstr” string to the item tooltip3. Append a space string and the calculated value after the “spelldescstr” string to the item tooltip |
4 | spelldescstrspelldesccalc | 1. Evaluate the “spelldesccalc” field2. Insert the calculated value into the “spelldescstr” string and add the string to the item tooltip |
spelldescstr & spelldescstr2 – String Key. Used as a parameter for the “spelldesc” function.
spelldesccalc – Calculates the numeric equation. Used as a parameter for the “spelldesc” function.
spelldesccolor – Uses a code number to change the color of the string used in the “spelldesc” function.
Code | Description |
0 | White (R=255, G=255, B=255) |
1 | Red (R=255, G=77, B=77) |
2 | Green (R=0, G=255, B=0) |
3 | Blue (R=105, G=105, B=255) |
4 | Light Gold (R=199, G=179, B=119) |
5 | Grey (R=105, G=105, B=105) |
6 | Black (R=0, G=0, B=0) |
7 | Dark Gold (R=208, G=194, B=125) |
8 | Orange (R=255, G=168, B=0) |
9 | Yellow (R=255, G=255, B=100) |
10 | Dark Green (R=0, G=128, B=0) |
11 | Purple (R=174, G=0, B=255) |
12 | Medium Green (R=0, G=200, B=0) |