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.

CodeDescription
0Head
1Torso
2Legs
3Right Arm
4Left Arm
5Right Hand
6Left Hand
7Shield
8Special 1
9Special 2
10Special 3
11Special 4
12Special 5
13Special 6
14Special 7
15Special 8
16Do 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)

CodeDescription
0Weapon
1Armor or Helmet
2Shield

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.

CodeDescription
0Transparency at 25%
1Transparency at 50%
2Transparency at 75%
3Black Alpha Transparency
4White Alpha Transparency
5No Transparency
6Dark Transparency (Unused)
7Highlight Transparency (Used when mousing over the unit)
8Blended

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.

CodeDescription
0Not a quest item
1Act 1 Prologue
2Den of Evil
3Sisters’ Burial Grounds
4Tools of the Trade
5The Search for Cain
6The Forgotten Tower
7Sisters to the Slaughter
8Act 2 Prologue
9Radament’s Lair
10The Horadric Staff
11The Tainted Sun
12The Arcane Sanctuary
13The Summoner
14The Seven Tombs
15Act 2 Traversed
16Lam Esen’s Tome
17Khalim’s Will
18Blade of the Old Religion
19The Golden Bird
20The Blackened Temple
21The Guardian
22Act 4 Prologue
23The Fallen Angel
24Terror’s End
25The Hellforge
26Rogue Warning
27Guard in Town Warning
28Guard in Desert Warning
29Dark Wanderer Seen
30Angel Warning
31Respec from Akara Complete
Act 5 Prologue
32Siege on Harrogath
33Rescue on Mount Arreat
34Prison of Ice
35Betrayal of Harrogath
36Rite of Passage
37Eve 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 ValueBinary ValueDescription
11Allow the item to be capable of having Magic quality
210The item is classified as metal
4100The item is classified as a spellcaster item (currently does nothing)
81000The 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

CodeColor
0No color change
1Grey
2Grey 2
3Gold
4Brown
5Grey Brown
6Inventory Grey
7Inventory Grey 2
8Inventory 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.

CodeParametersDescription
0 Do nothing
1spelliconSkillItemIdentify – Sets the spell icon. Identifies an item.
2 SkillItemTownPortal – The player creates a town portal
3state
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
4state
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
5stat1, 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.
6state
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
9state
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

CodeParametersDescription
0 (or empty) Do nothing
1spelldescstrspelldescstr21.    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
2spelldescstrspelldesccalcstat11.    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
3spelldescstrspelldesccalc1.    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
4spelldescstrspelldesccalc1.    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.

CodeDescription
0White (R=255, G=255, B=255)
1Red (R=255, G=77, B=77)
2Green (R=0, G=255, B=0)
3Blue (R=105, G=105, B=255)
4Light Gold (R=199, G=179, B=119)
5Grey (R=105, G=105, B=105)
6Black (R=0, G=0, B=0)
7Dark Gold (R=208, G=194, B=125)
8Orange (R=255, G=168, B=0)
9Yellow (R=255, G=255, B=100)
10Dark Green (R=0, G=128, B=0)
11Purple (R=174, G=0, B=255)
12Medium Green (R=0, G=200, B=0)