The Diablo 2 Wiki
The Diablo 2 Wiki archive is available for anyone looking for information on Diablo 2. All information here is pre-D2R but contains a lot of useful information that is still relevant. Updated sections for new D2R features can be found on the PureDiablo Diablo 2 section

Item Generation Tutorial: Difference between revisions

From Diablo 2 Wiki
No edit summary
No edit summary
Line 4:Line 4:




=1. Basics=
=Basics=


The goal of most players in ''Diablo II'' is to kill enemies while staying alive. There are three things that largely determine how effective your character is at this goal:
The goal of most players in ''Diablo II'' is to kill enemies while staying alive. There are three things that largely determine how effective your character is at this goal:
Line 15:Line 15:




=2. Terminology=
=Terminology=


* '''Item Type:''' The kind of item; a cap, a gem, a short sword, a ring, etc.
* '''Item Type:''' The kind of item; a cap, a gem, a short sword, a ring, etc.
Line 30:Line 30:
* '''SP:'''Single Player mode.
* '''SP:'''Single Player mode.


=3. Short Explanation of Drop Process=
=Short Explanation of Drop Process=


When you kill a monster or open a chest the game may generate items to reward you. The properties of these items are generated at that moment, even though the item may be unidentified. The game creates dropped items with algorithm of such kind:
When you kill a monster or open a chest the game may generate items to reward you. The properties of these items are generated at that moment, even though the item may be unidentified. The game creates dropped items with algorithm of such kind:
Line 49:Line 49:
# selects item properties
# selects item properties


=4.Game Data Files=
=Game Data Files=


This section discusses the data files that are used in item generation process.
This section discusses the data files that are used in item generation process.
Line 55:Line 55:
Many parameters of drops are stored in txt files, that are packed to MPQ files when ''Diablo II'' is installed. If you have installed [[ATMA]] you may find that files unpacked in its data folder. These files are stored in CSV format, a plain text format that may be viewed with Excel or OpenOffice.org. You do not need to know everything about these complicated files to be effective in item hunting, but it will help if you know something about their structure. Truly dedicated item hunters will want to dig deeper into the files, and will find the D2 file guides posted at the Phrozen Keep, of value.
Many parameters of drops are stored in txt files, that are packed to MPQ files when ''Diablo II'' is installed. If you have installed [[ATMA]] you may find that files unpacked in its data folder. These files are stored in CSV format, a plain text format that may be viewed with Excel or OpenOffice.org. You do not need to know everything about these complicated files to be effective in item hunting, but it will help if you know something about their structure. Truly dedicated item hunters will want to dig deeper into the files, and will find the D2 file guides posted at the Phrozen Keep, of value.


==4.1. TreasureClassEx.txt==
==TreasureClassEx.txt==


This is the most important file. It organizes all droppable items into a system of Treasure Classes. Since each source of items in the game (except NPCs) drop items from Treasure Classes, this is crucial to understand.
This is the most important file. It organizes all droppable items into a system of Treasure Classes. Since each source of items in the game (except NPCs) drop items from Treasure Classes, this is crucial to understand.
Line 144:Line 144:
* 1/22 for Vortex Shield;
* 1/22 for Vortex Shield;
* 1/22 for Bloodlord Skull.
* 1/22 for Bloodlord Skull.
==Monstats.txt==
This file holds a lot of information about monsters. The fields in this file are as follows:
* '''Id:''' Internal name of a monster type, the game refer to a monster using this field.
* '''NameStr:''' OIt is either the actual name of the monster or a reference to name table for names with spaces.
* '''rangedtype:''' 1 for monsters with ranged attack, blank for others.
* '''minion1 and minion2:''' Type of minions for the monster, e.g. normal fallen shamans usually have normal fallens as minions.
* '''PartyMin-PartyMax:''' The range for quantity of minions.
* '''MinGrp-MaxGrp:''' The range for quantity of normal monsters in one grope.
* '''Velocity:''' Movement speed, walking, flying, etc.
* '''Run:''' Run speed. Only a few monsters can run at a different speed than they walk.
* '''Level:'''  Monster level in Normal difficulty.
* '''Level (N):''' Only for bosses. Monster level in Nightmare difficulty
* '''Level (H):''' Only for bosses. Monster level in Hell difficulty.
* '''lUndead:''' 1 for melee undeads.
* '''hUndead:''' 1 for ranged undeads.
* '''demon:''' 1 for demons.
* '''boss:''' 1 for bosses. They save their mlvl in Nightmare and Hell difficulties.
* '''Drain, Drain(N), Drain(H):'''Life and mana leech effectiveness in Normal, Nightmare and Hell difficulties (percents).
* '''coldeffect, coldeffect(N), coldeffect(H):''' Chill and freeze effectiveness in Normal, Nightmare and Hell difficulties (listed in percentages).
* '''ResDm, ResDm(N), ResDm(H):''' Damage resistance in Normal, Nightmare and Hell difficulties (percents).
* '''ResMa, ResMa(N), ResMa(H):''' Magic resistance.
* '''ResFi, ResFi(N), ResFi(H):''' Fire resistance.
* '''ResLi, ResLi(N), ResLi(H):''' Lightning resistance.
* '''ResCo, ResCo(N), ResCo(H):''' Cold resistance.
* '''ResPo, ResPo(N), ResPo(H):''' Poison resistance.
* '''ToBlock, ToBlock(N), ToBlock(H):''' Chance to block.
* '''Crit:''' Critical hit chance (5% for every monsters as of now).
* '''TreasureClass1:''' TC of normal monster in Normal difficulty.
* '''TreasureClass2:''' TC of champion monster in Normal difficulty.
* '''TreasureClass3:''' TC of unique monster in Normal difficulty (non-quest drop).
* '''TreasureClass4:''' TC of unique monster in Normal difficulty (quest drop).
* '''TreasureClass1(N):''' TC of normal monster in Nightmare difficulty.
* '''TreasureClass2(N):''' TC of champion monster in Nightmare difficulty.
* '''TreasureClass3(N):''' TC of unique monster in Nightmare difficulty (non-quest drop).
* '''TreasureClass4(N):''' TC of unique monster in Nightmare difficulty (quest drop).
* '''TreasureClass1(H):''' TC of normal monster in Hell difficulty.
* '''TreasureClass2(H):''' TC of champion monster in Hell difficulty.
* '''TreasureClass3(H):''' TC of unique monster in Hell difficulty (non-quest drop).
* '''TreasureClass4(H):''' TC of unique monster in Hell difficulty (quest drop).
* '''TCQuestId and TCQuestCP:''' Values for special quest drops like Mephisto's Soulstone.
The most important part for item drops is Treasure Classes of the monster and his level.
==Magicprefix.txt and Magicsuffix.txt==
These two files contains all affixes available in the game. They have almost the same field, so they're covered in the same section in this guide.
* '''Name:''' The name of the affix as it appears in the game.
* '''version:''' 0 for Classic, 100 for LoD.
* '''spawnable:''' 1 for available affixes, 0 for affixes, that cannot appear in the game.
* '''rare:''' 1 for affixes, that can appear on rare items, 0 for magic only affixes.
* '''level:''' Minimum Affix Level of an item that may spawn with this affix.
* '''maxlevel:'''Maximum Affix Level of an itemthat may spawn with this affix.
* '''levelreq:''' Minimum required character level for using item with this affix.
* '''classspecific:''' The class for which this affix will work, — ama, sor, nec, pal, bar, dru. (ArchAngel's prefix will only add skills for sorceress, for instance.)
* '''classlevelreq:''' Minimum required character level for using item with this affix. Although it usually is overrules by levelreq.
* '''frequency:''' The rate of appearance in the game of this affix (0 for items that cannot be selected at all).
* '''group:''' Group Id for selecting affixes for rare and crafted items. They cannot have more than one affix per group.
* '''mod1code, mod2code, mod3code:''' The codes of effects of this affix. This codes refer to internal game functions, however all of them are quite self-explanation, e.c. "ac%" is Armor Class increase, "dmg%" is Damage increase, "res-all" is resist all.
* '''mod1param, mod2param, mod3param:''' Parameters for the affix function. E.c. poison duration in frames, skill index, cold duration in frames. (Diablo II runs at an internal clock speed of 25 frames per second.)
* '''mod1min, mod2min, mod3min:''' Minimum parameters for affix function such as minimum of life range given by +life affix
* '''mod1max, mod2max, mod3max:''' Maximum parameters for affix function such as maximum of life range given by +life affix.
* '''transform:''' 1 for affixes that do palette shift on base item.
* '''transformcolor:''' Color code for affixes that do color shift on base item; "dgld" is dark gold, "lpur" is light purple, edtc.
* '''itype1, itype2, itype3, itype4, itype5, itype6, itype7:''' Include Type, item type codes of items, on which this affix may occur. These codes are stored in armor.txt, weapon.txt, misc.txt and ItemTypes.txt files.
* '''etype1, etype2, etype3, etype4, etype5, etype6, etype7:''' Exclude Type, item type codes of items, on which this affix may NOT occur.
* '''divide, multiply, add:'''Values for modifying item price.
The usage of these files is explained in more detail in chapter 11, when affix generation is covered.
==Weapons.txt==
This file is used to store information about weapon item types.
* '''name:''' The name of the weapon as it appears in the game.
* '''type, type2:''' Item type code, the index of respective raw in itemtypes.txt file.
* '''code:''' Internal item name.
* '''alternateGfx:''' Item code for choosing animation. Unimportant for item generation.
* '''namestr:''' Reference to the table. Contained correct name of the item.
* '''version:''' 0 for Classic, 100 for Lod.
* '''compactsave:'''Empty. Unimportant for item generation.
* '''rarity:''' The rate of dropping the weapon from weapon racks.
* '''spawnable:'''0 for items, that cannot be generated (except special cases like quests), 1 for others.
* '''mindam-maxdam:''' One-handed damage.
* '''1or2handed:''' 1 for two-handed weapons that may be held in one hand by the Barbarian.
* '''2handed:''' 1 for two-handed weapons.
* '''2handmindam-2handmaxdam:''' Two-handed damage.
* '''minmisdam-maxmisdam:''' Ranged damage.
* '''rangeadder:''' Weapon range adder. Weapon range=1+rangeadder.
* '''speed:''' Base weapon attack speed.
* '''StrBonus:''' Strange bonus for weapon damage. Enhanced damage percent=Strength*StrBonus/100.
* '''DexBonus:''' Dexterity bonus for weapon damage. Enhanced damage percent=Dexterity*DexBonus/100.
* '''reqstr:''' Strength required.
* '''reqdex:''' Dexterity required.
* '''durability:''' Base durability.
* '''nodurability:''' 1 for indestructible weapons.
* '''level:''' Quality Level.
* '''levelreq:''' Character level required.
* '''cost:''' base weapon cost.
* '''gamble cost:''' gambling cost.
* '''magic lvl:''' Magic Level (see chapter 11 and chapter 22).
* '''auto prefix:''' The code number of prefix, that always occurs on the weapon (like +mana on orbs).
* '''OpenBetaGfx:''' Unimportant for item generation.
* '''normcode:''' Code of normal version of the weapon.
* '''ubercode:''' Code of exceptional version of the weapon.
* '''ultracode:''' Code of elite version of the weapon.
* '''wclass, 2handedwclass:''' Weapon class for animation. Unimportant for item generation.
* '''component:''' Unimportant for item generation.
* '''hit class:''' Unimportant for item generation.
* '''invwidth:''' Width of the item in the inventory.
* '''invheight:''' Height of the item in the inventory.
* '''stackable:''' 1 for stackable weapons (throwing).
* '''minstack-maxstack:''' The range of quantity of items of this type in on stack.
* '''spawnstack:''' Quantity of items of this type in on stack upon founding.
* '''flippyfile, invfile, uniqueinvfile, setinvfile:''' Graphics files for the weapon.
* '''hasinv:''' 1 for socketable weapons.
* '''gemsockets:''' Maximum possible number of sockets in the weapon.
* '''gemapplytype:''' Item class for gems and runes. 0 for all weapons.
* '''special:''' Unimportant for item generation.
* '''useable:''' 1 for items, that you may use (e.c. town portal scroll). 0 for all weapons.
* '''dropsound, dropsfxframe, usesound:''' Sound-related information. Unimportant for item generation.
* '''unique:''' 1 for special quest items.
* '''transparent, transtbl:''' Not used.
* '''quivered:''' 1 for weapons, that need ammo.
* '''lightradius, belt, quest, questdiffcheck, missiletype:''' Unimportant for item generation.
* '''durwarning:''' Id of low durability warning icon.
* '''qntwarning:''' Id of low quantity warning icon.
* '''gemoffset:''' Unimportant for item generation.
* '''bitfield1:''' Weapon material code (is used in golem creation and rack drop checks).
* '''CharsiMin (and all other *Min fields):''' Should be minimal quantity of the item in vendor's price list, but isn't used (see chapter 12).
* '''CharsiMax (and all other *Max fields):''' If CharsiMax>0 then she can sell this item (see chapter 12).
* '''CharsiMagicMin (and all other *MagicMin fields):''' Should be minimal quantity of the item in vendor's price list, but isn't used (see chapter 12).
* '''CharsiMagicMax (and all other *MagicMax fields):''' If CharsiMagicMax>0 then she can sell this item (see chapter 12).
* '''CharsiMagicLvl (and all other *MagicLvl fields):''' If ilvl>=CharsiMagicLvl then she can sell this item (see chapter 12).
Source Art, Game Art, Transform, InvTrans, SkipName:''' Unimportant for item generation.
* '''NightmareUpgrade:''' Item code for selling by Nightmare difficulty vendors, "xxx" for items, that don't get upgrade (see Chapter 12).
* '''HellUpgrade:''' Item code for selling by Hell difficulty vendors, "xxx" for items, that don't get upgrade (see Chapter 12).
* '''Nameable:''' 1 for items that may be personalized by Anya's quest reward.
* '''PermStoreItem:''' Unimportant for item generation.
==armor.txt==
This is a file similar to weapons.txt.
* '''name:''' The name of the weapon as it appear in the game.
* '''version:''' 0 for Classic, 100 for Lod.
* '''compactsave:''' Unimportant for item generation.
* '''rarity:''' The rate of dropping the armor from weapon racks.
* '''spawnable:''' 0 for items, that cannot be generated (except special cases like quests), 1 for others.
* '''minac-maxac:''' Defence range.
* '''absorbs:''' Not used. Unimportant for item generation.
* '''speed:''' Run/walk speed penalty.
* '''reqstr:''' Strength required.
* '''block:''' Base chance to block.
* '''durability:''' Base durability.
* '''nodurability:''' 1 for indestructible armors.
* '''level:''' Quality Level.
* '''levelreq:''' Character level required.
* '''cost:''' Base weapon cost.
* '''gamble cost:''' Gambling cost.
* '''code:''' Internal item name.
* '''namestr:''' Reference to the table, contained correct name of the item.
* '''magic lvl:''' Magic Level (see chapter 11 and chapter 22).
* '''auto prefix:''' The code number of prefix, that always occurs on the armor (like poison damage on heads).
* '''alternategfx, OpenBetaGfx:''' Unimportant for item generation.
* '''normcode:''' Code of normal version of the armor.
* '''ubercode:''' Code of exceptional version of the armor.
* '''ultracode:''' Code of elite version of the armor.
* '''spelloffset, component:''' Unimportant for item generation.
* '''invwidth:''' Width of the item in the inventory.
* '''invheight:''' Height of the item in the inventory.
* '''hasinv:''' 1 for socketable armors.
* '''gemsockets:''' Maximum possible number of sockets in the armor.
* '''gemapplytype:''' Item class for gems and runes. 1 for headgear and body armor, 2 for shields.
* '''flippyfile, invfile, uniqueinvfile, setinvfile:''' Graphics files for the armor.
* '''rArm, lArm, Torso, Legs, rSPad, lSPad:''' Types of used graphics files.
* '''useable:''' 1 for items, that you may use (e.c. Town portal scroll). 0 for all armors.
* '''throwable:''' Not used.
* '''stackable:''' 1 for stackable items (not used for armors).
* '''minstack-maxstack:''' The range of quantity of items of this type in on stack (not used for armors).
* '''type, type2:''' Item type code, the index of respective raw in itemtypes.txt file.
* '''dropsound, dropsfxframe, usesound:''' Sound-related information. Unimportant for item generation.
* '''unique:''' 1 for special quest items.
* '''transparent, transtbl:''' Not used.
* '''quivered:''' 1 for weapons that need ammo (not used for armors).
* '''lightradius, belt, quest, questdiffcheck, missiletype:''' Unimportant for item generation.
* '''durwarning:''' Id of low durability warning icon.
* '''qntwarning:''' Id of low quantity warning icon (not used for armors).
* '''mindam-maxdam:''' Damage range for smite or kick.
* '''StrBonus:''' Strength bonus for kick damage. Enhanced damage percent=Strength*StrBonus/100.
* '''DexBonus:''' Dexterity bonus for kick damage. Enhanced damage percent=Dexterity*DexBonus/100.
* '''gemoffset:''' Unimportant for item generation.
* '''bitfield1:''' Armor material code (is used in golem creation and rack drop checks).
* '''CharsiMin (and all other *Min fields):''' Should be minimal quantity of the item in vendor's price list, but isn't used (see chapter 12).
* '''CharsiMax (and all other *Max fields):''' If CharsiMax>0 then she can sell this item (see chapter 12).
* '''CharsiMagicMin (and all other *MagicMin fields):''' Should be minimal quantity of the item in vendor's price list, but isn't used (see chapter 12).
* '''CharsiMagicMax (and all other *MagicMax fields):''' If CharsiMagicMax>0 then she can sell this item (see chapter 12).
* '''CharsiMagicLvl (and all other *MagicLvl fields):''' If ilvl>=CharsiMagicLvl then she can sell this item (see chapter 12).
* '''Source Art, Game Art, Transform, InvTrans, SkipName:''' Unimportant for item generation.
* '''NightmareUpgrade:''' Item code for selling by Nightmare difficulty vendors, "xxx" for items, that don't get upgrade (see Chapter 12).
* '''HellUpgrade:''' Item code for selling by Hell difficulty vendors, "xxx" for items, that don't get upgrade (see Chapter 12).
* '''mindam, maxdam:''' Not used.
* '''Nameable:''' 1 for items that may be personalized by Anya's quest reward.
==Misc.txt==
This file is similar to weapons.txt and armor.txt, but contains information about all items, that are neither weapon nor armor.
* '''name, *name:''' The name of the item as it appears in the game.
* '''szFlavorText, compactsave:''' Unimportant for item generation.
* '''version:''' 0 for Classic, 100 for Lod.
* '''level:''' Quality Level.
* '''levelreq:''' Character level required.
* '''rarity:''' The rate of dropping the item from different objects (e.c. book shelves).
* '''spawnable:''' 0 for items, that cannot be generated (except special cases like quests), 1 for others.
* '''speed:''' Not used for misc items.
* '''nodurability:''' 1 for indestructible items.
* '''cost:''' Base item cost.
* '''gamble cost:''' Gambling cost.
* '''code:''' Internal item name.
* '''alternategfx:''' Unimportant for item generation.
* '''namestr:''' Reference to the table, contained correct name of the item.
* '''component:''' Unimportant for item generation.
* '''invwidth:''' Width of the item in the inventory.
* '''invheight:''' Height of the item in the inventory.
* '''hasinv:''' 1 for socketable items.
* '''gemsockets:''' Maximum possible number of sockets in the item (not used for misc items).
* '''gemapplytype:''' Item class for gems and runes (not used for misc items).
* '''flippyfile, invfile, uniqueinvfile:''' Graphics files for the item.
* '''special:''' Not used.
* '''Transmogrify, TMogType, TMogMin, TMogMax:''' Unimportant for item generation.
* '''useable:''' 1 for items, that you may use (e.c. Town portal scroll). 0 for all others.
* '''throwable:''' Not used.
* '''type, type2:''' Item type code, the index of respective raw in itemtypes.txt file.
* '''dropsound, dropsfxframe, usesound:''' Sound-related information. Unimportant for item generation.
* '''unique:''' 1 for special quest items.
* '''transparent, transtbl:''' Not used.
* '''lightradius, belt:''' Unimportant for item generation.
* '''autobelt:''' 1 for items that automatically get placed on the belt.
* '''stackable:''' 1 for stackable items.
* '''minstack-maxstack:''' The range of quantity of items of this type in on stack.
* '''spawnstack:''' Quantity of items of this type in on stack upon founding.
* '''quest:''' >0 for quest items. Unimportant for item generation.
* '''questdiffcheck:''' Unimportant for item generation.
* '''missiletype, spellicon:''' Not used.
* '''pSpell, state, cstate1, cstate2, len:''' Unimportant for item generation.
* '''stat1, stat2, stat3:''' Effect of usable item. E.c. life restore for life potion.
* '''calc1, calc2, calc3:''' The value for effect of usable item. E.e. 100% life and mana for full * '''rejuvenation potion.
* '''spelldesc, spelldescstr, spelldesccalc:''' Used to refer to description of item effect.
* '''durwarning:''' Id of low durability warning icon.
* '''qntwarning:''' Id of low quantity warning icon.
* '''gemoffset:''' Unimportant for item generation.
* '''BetterGem:''' The code of gem for upgrade with cube or shrine.
* '''bitfield1:''' Item material code (is used in golem creation and rack drop checks).
* '''CharsiMin (and all other *Min fields):''' Should be minimal quantity of the item in vendor's price list, but isn't used (see chapter 12).
* '''CharsiMax (and all other *Max fields):'''  If CharsiMax>0 then she can sell this item (see chapter 12).
* '''CharsiMagicMin (and all other *MagicMin fields):''' Should be minimal quantity of the item in vendor's price list, but isn't used (see chapter 12).
* '''CharsiMagicMax (and all other *MagicMax fields):''' If CharsiMagicMax>0 then she can sell this item (see chapter 12).
* '''CharsiMagicLvl (and all other *MagicLvl fields):''' If ilvl>=CharsiMagicLvl then she can sell this item (see chapter 12).
* '''Source Art, Game Art, Transform, InvTrans, SkipName:''' Unimportant for item generation.
* '''NightmareUpgrade:''' Item code for selling by Nightmare difficulty vendors, "xxx" for items, that don't get upgrade (see Chapter 12).
* '''HellUpgrade:''' Item code for selling by Hell difficulty vendors, "xxx" for items, that don't get upgrade (see Chapter 12).
* '''mindam, maxdam:''' Not used.
* '''PermStoreItem:''' 1 for items, that always available in stores.
* '''multibuy:''' 1 for items, that may be bought with Shift+Click (Multiple Buy function).
* '''Nameable:''' 1 for items that may be personalized by Anya's quest reward.
* '''*eol:''' Not used (however "eol" is usually End Of Line in programming).





Revision as of 13:26, 11 May 2008

This massive article explains item generation in great detail; far more detail than casual gamers are likely to be interested in. Skim this item generation encyclopedia by the chapter headings if you want one specific question answered. Read it cover to cover if you really want to understand how the game works.

For a similar article discussing item generation in earlier versions of the game, check out the v1.09 Item Generation Tutorial.


Basics

The goal of most players in Diablo II is to kill enemies while staying alive. There are three things that largely determine how effective your character is at this goal:

  1. Your tactics.
  2. The build of your character.
  3. The items used by your character.

All three have a great impact on gameplay -- characters die quickly on Hell difficulty if they play without wise tactics and kill slowly with poor skill distribution, but most players find that the essential element is proper use of items. A magic using character will see her effectiveness increase dramatically if she doubles her skill levels, and the effectiveness of a melee fighter or bow user is a direct reflection of the quality of their weapon. As a result, most players spend hours seeking top quality items, and then hours more trying to improve their gear further. At the highest end, most truly dedicated players spend virtually all their game time item hunting.

This guide explains how best to find the items you seek, and explains why this task often seems so difficult.


Terminology

  • Item Type: The kind of item; a cap, a gem, a short sword, a ring, etc.
  • Item Quality: Different qualities of the same item type. These are, in order of increasing scarcity: low quality > normal > superior > magic > rare > set > unique.
  • Affixes The magical modifiers on an item; prefixes and suffixes. (Not all item properties are affixes. For example: stuffmods, pre—defined properties of crafted items and some special mods of set and unique items. E.g. "+60 to Mana" on magic ring is affix, "+20% crushing blow" isn't affix.
  • Qlvl: Quality level. 1) A level of item type. All these levels are stored in the weapons.txt, armor.txt and misc.txt data files. 2) A level of set or unique item. All this levels are stored in UniqueItems.txt and SetItems.txt data files.
  • Ilvl: Item Level. All items in the game have levels. These levels are generated when the item is created. This value is not displayed in the game, so identical items can have very different ilvls, depending on which monster dropped them. Be sure not to confuse Item Level with the item's level requirement -- they are different things.
  • Mlvl: Monster Level. All monsters in the game have levels as well as players. These are determined largely by the level upon which a monster spawns. (The same monster type found on different levels will have different mlvls.)
  • Area Level: Area Level. All areas in the game also have levels. These determine or at least factor into mlvl, ilvl, and more.
  • Alvl: Affix Level. It is a level of prefix or suffix. They are stored in MagicPrefix.txt and MagicSuffix.txt in "Level" column. The name "Affix Level" is used to differ them from other "Levels".
  • TC: Treasure Class. All item types in the game are organized into treasure classes. In v1.10 there are 29 weapon and 29 armor Treasure Classes (see those here), with additional TCs covering all the smaller, miscellaneous items such as runes, charms, gems, potions, etc. All TCs are recursive: this means that one treasure class may include another treasure class. E.c. Hell Baal drop all his items from "Baal (H)" treasure class, which consists of "Act 5 (H) Equip B", "Act 5 (H) Junk" and "Act 5 (H) Good" treasure classes. Each of them consists of several other treasure classes, each containing fewer entries and growing more specific.
  • Clvl: Character Level. It is one of few levels, that you can actually see in the game.
  • Rarity:Rarity is a value assigned to every set and unique item in the game. This comes into play largely when there are more than one unique or set item of the same type, and makes some such items much more common than others. For example, the unique ring Stone of Jordan has a Rarity of 1, while the far more common unique ring Manald Heal has a Rarity of 15.
  • SP:Single Player mode.

Short Explanation of Drop Process

When you kill a monster or open a chest the game may generate items to reward you. The properties of these items are generated at that moment, even though the item may be unidentified. The game creates dropped items with algorithm of such kind:

  1. At the beginning it finds treasure class (TC), that describes all drops of the monster you killed, a chest you opened, a hidden stash you found, etc. All drop sources have treasure classes.
  2. The game then makes one or several iterations, that are called "Picks", when it selects one choice from several possibilities.
    1. One of the possibilities is "NoDrop", which does what it sounds like. Many monsters have multiple "picks," so even if one of them is NoDrop, the other picks may overrule it. Most normal monsters have only one pick, though.
    2. If nothing is selected from the first TC, the next one down the list will be consulted, then the next, then the next, until an item or NoDrop is selected.
  3. Once an item is selected, the item properties are determined. Since most items have numerous possible types, game's algorithm of quality determination is highly complicated. Items such as keys, runes, and potions are only found in normal quality, but items like rings, short swords, helms, and bucklers have different qualities like magic or unique. Note that Magic Find is checked during this step.
  4. For every selected item an ilvl is calculated.
  5. If the rarity check hits upon an item of unique or set quality, the game creates the list of all valid item types (determined by their ilvl) and randomly selects one to drop. If there is not a unique of that type, a rare item with triple durability will generate. If there is no set item of the selected type, a magical item with double durability will appear.
  6. After the game selects item type and item quality, it generates item affixes if needed. It also generates all other properties of an item, if there are such properties. Items like Runes, mana potions, and identify scrolls doesn't have variable properties, but magic rings, rare kite shields, cracked sashes needs property generation.

A simplified example in action: Mephisto is killed! What does the game do to determine your reward?

  1. calculates the number of items to drop
  2. selects item types
  3. selects item qualities
  4. selects certain unique or set items if needed
  5. selects item properties

Game Data Files

This section discusses the data files that are used in item generation process.

Many parameters of drops are stored in txt files, that are packed to MPQ files when Diablo II is installed. If you have installed ATMA you may find that files unpacked in its data folder. These files are stored in CSV format, a plain text format that may be viewed with Excel or OpenOffice.org. You do not need to know everything about these complicated files to be effective in item hunting, but it will help if you know something about their structure. Truly dedicated item hunters will want to dig deeper into the files, and will find the D2 file guides posted at the Phrozen Keep, of value.

TreasureClassEx.txt

This is the most important file. It organizes all droppable items into a system of Treasure Classes. Since each source of items in the game (except NPCs) drop items from Treasure Classes, this is crucial to understand.

We'll start with description of all fields of TreasureClassEx.txt table.

  • Treasure Class: The name of a TC, one the game usually refers to.
  • Group: An identification number of similar TCs. This is used in TC upgrade process according to Mlvl.
  • Level: The level of a given TC. It is also used in TC upgrade process.
  • Picks: A quantity of iterations of the selection process.
    • Unique: A modification number for chance to drop unique item from given TC (more is better).
    • Set: A modification number for set chance.
    • Rare: A modification number for rare chance.
    • Magic: A modification number for magic chance.
  • NoDrop: A rate of skipping drops from the TC (the higher NoDrop, the less items the TC will generate).
  • Item1-Item10: A code of item to drop or a name of TC to drop from (item codes are stored in weapons.txt, armor.txt and misc.txt data files).
  • Prob1-Prob10: A rate of selecting respective Item1-Item10 (more is better).
  • SumItems, TotalProb, DropChance, Term Unimportant fields for item drop routine.

TreasureClassEx.txt file doesn't contains all treasure classes. At run time the game adds quite a few additional TCs. Their names are ArmoXX and WeapXX, where XX is two digit number. The game creates them from the armor.txt and weapons.txt files, by looking at quality levels. The first TC of armors, Armo03, contains all armor items with levels from 1 to 3: Cap, Quilted Armor, Leather Armor, Buckler, Gloves, Boots and Sash. The next armor TC, Armo06 contains all armor items with levels from 4 to 6, and so on. The last armor TC, Armo87, contains all armor items with levels from 85 to 87. Weapons are organized in their TCs, Weap03-Weap87 by the same manner.

In this TCs Prob1-Prob10 values determine how likely the given items in those TCs are to drop. Some items have penalties and are therefore seen less frequently. A few of these, for illustrative purposes:

  • Normal items: 3
  • Assassin claws: 2
  • All other class-specific items: 1
  • Wands/Staves/Scepters: 1

These values interact with how many items are found in a given TC to create item shortages and abundances. The given items in a TC with 12 items will be comparatively less common than the items in a TC with 7 items. And if those 7 items include several wands and claws, the normal items in that TC will be highly overrepresented. Breast Plates, for instance.

To further demonstrate, let's look at the process of item selection from a given TC.

All monsters have treasure classes, written in monstats.txt file. When you kill a monster in normal difficulty the game simply uses its TC to drop items. However in Nightmare and Hell difficulty the given TC may be upgraded. When determining the TC for a monster, the game selects the highest level TC in the group that is equal to or less than the Mlvl. If there is no group for TC of this monster, than it doesn't upgrade TC. Treasure classes that are included in the selected TC aren't upgraded.

Selecting from a TC the game makes one or several attempts of dropping according to Picks field. Each pick choses from several possibilities, including NoDrop, and each non-empty entry from Item1-Item10 fields. The chance of every choice is equal to X/Sum, where X is respective value from Prob1-Prob10 fields for Item1-Item10, or NoDrop value for NoDrop choice, and Sum is the sum of all that values (NoDrop+Prob1+Prob2+...+Prob10).

If the game selects another TC during this process it will initiates the same cycle for it, then another cycle for newly selected TC, then another and another until it selects an item or NoDrop.

In multilayer game NoDrop value is reduced.

NewNoDrop=int( ProbSum/(1/((NoDrop/(NoDrop+ProbSum))^N)-1) ), where N=int (1+AdditionalPlayers/2+ClosePartiedPlayers/2), AdditionalPlayers — the number of all additional players in the game, where the monster is killed, ClosePartiedPlayers — the number of players in your party near you (not far than two screens away), ProbSum=Prob1+Prob2+Prob3+...+Prob10, int — operation of truncating fractional part of a number.

In SP the Players X command sets the number of NON-partied players, e.g. /players8 command sets N=4.

For example: a character kills a non-boss Devilkin in The Pit level 1 in Hell in /players8 mode (or in a full game on Battle.net). The Devilkin has Mlvl=85. In monstats.txt file Devilkin is figured under "fallen3" name. Non-unique fallen3 drop items from "Act 1 (H) H2H B" TC in Hell difficulty. In TreasureClassEx.txt file "Act 1 (H) H2H B" TC has group=7 and level=66. Because Mlvl=85 the TC is upgraded to "Act 5 (H) H2H C" TC, which has level=85 (less or equal to mlvl). So Devilkins in The Pit drop items from "Act 5 (H) H2H C" TC.

It has 1 pick from fallowing possibilities:

  • NoDrop (100);
  • gld (21);
  • Act 5 (H) Equip C (16);
  • Act 1 (H) Junk (21);
  • Act 5 (H) Good (2).

The numbers in (parenthesis) are probabilities.

Lets calculate NewNoDrop:

  • ProbSum=21+16+21+2=60.
  • NoDrop=100.
  • N=4.
  • NewNoDrop=int( 60/(1/((100/(100+60))^4)-1) )=11.

So The Pit Devilkin has fallowing chances:

  • 11/71 for dropping nothing
  • 21/71 for dropping gold
  • 16/71 for dropping from Act 5 (H) Equip C
  • 21/71 for dropping from Act 1 (H) Junk
  • 2/71 for dropping from Act 5 (H) Good

Lets assume, that the game decided to drop from "Act 5 (H) Equip C" TC. Here it is: Picks=1, NoDrop=0, Item1="weap81", Prob1=2, Item2="armo81", Prob2=1, Item3="weap84", Prob3=6, Item4="armo84", Prob4=3, Item5="weap87", Prob5=14, Item6="armo87", Prob6=7, Item7="weap87", Prob7=1, Item8="armo87", Prob8=1, Item9="Act 5 (H) Equip B", Prob9=1530. Note, that weap87 and armo87 TCs are mentioned twice, it is not a error.

So this TC has fallowing chances:

  • 2/1565 for dropping from weap81;
  • 1/1565 for dropping from armo81;
  • 6/1565 for dropping from weap84;
  • 3/1565 for dropping from armo84;
  • 15/1565 for dropping from weap87;
  • 8/1565 for dropping from armo87;
  • 1530/1565 for dropping from "Act 5 (H) Equip B".

Lets assume, that the game decided to drop from armo87. This TC has picks=1, NoDrop=0, Item1="Diadem", Prob1=3, Item2="Corona", Prob2=3, Item3="Sacred Armor", Prob3=3, Item4="Ogre Gauntlets", Prob4=3, Item5="Myrmidon Greaves", Prob5=3, Item6="Colossus Girdle", Prob6=3, Item7="Dream Spirit", Prob7=1, Item8="Guardian Crown", Prob8=1, Item9="Vortex Shield", Prob9=1, Item10="Bloodlord Skull", Prob10=1.

So armo87 has fallowing chances:

  • 3/22 for Diadem;
  • 3/22 for Corona;
  • 3/22 for Sacred Armor;
  • 3/22 for Ogre Gauntlets;
  • 3/22 for Myrmidon Greaves;
  • 3/22 for Colossus Girdle;
  • 1/22 for Dream Spirit;
  • 1/22 for Guardian Crown;
  • 1/22 for Vortex Shield;
  • 1/22 for Bloodlord Skull.

Monstats.txt

This file holds a lot of information about monsters. The fields in this file are as follows:

  • Id: Internal name of a monster type, the game refer to a monster using this field.
  • NameStr: OIt is either the actual name of the monster or a reference to name table for names with spaces.
  • rangedtype: 1 for monsters with ranged attack, blank for others.
  • minion1 and minion2: Type of minions for the monster, e.g. normal fallen shamans usually have normal fallens as minions.
  • PartyMin-PartyMax: The range for quantity of minions.
  • MinGrp-MaxGrp: The range for quantity of normal monsters in one grope.
  • Velocity: Movement speed, walking, flying, etc.
  • Run: Run speed. Only a few monsters can run at a different speed than they walk.
  • Level: Monster level in Normal difficulty.
  • Level (N): Only for bosses. Monster level in Nightmare difficulty
  • Level (H): Only for bosses. Monster level in Hell difficulty.
  • lUndead: 1 for melee undeads.
  • hUndead: 1 for ranged undeads.
  • demon: 1 for demons.
  • boss: 1 for bosses. They save their mlvl in Nightmare and Hell difficulties.
  • Drain, Drain(N), Drain(H):Life and mana leech effectiveness in Normal, Nightmare and Hell difficulties (percents).
  • coldeffect, coldeffect(N), coldeffect(H): Chill and freeze effectiveness in Normal, Nightmare and Hell difficulties (listed in percentages).
  • ResDm, ResDm(N), ResDm(H): Damage resistance in Normal, Nightmare and Hell difficulties (percents).
  • ResMa, ResMa(N), ResMa(H): Magic resistance.
  • ResFi, ResFi(N), ResFi(H): Fire resistance.
  • ResLi, ResLi(N), ResLi(H): Lightning resistance.
  • ResCo, ResCo(N), ResCo(H): Cold resistance.
  • ResPo, ResPo(N), ResPo(H): Poison resistance.
  • ToBlock, ToBlock(N), ToBlock(H): Chance to block.
  • Crit: Critical hit chance (5% for every monsters as of now).
  • TreasureClass1: TC of normal monster in Normal difficulty.
  • TreasureClass2: TC of champion monster in Normal difficulty.
  • TreasureClass3: TC of unique monster in Normal difficulty (non-quest drop).
  • TreasureClass4: TC of unique monster in Normal difficulty (quest drop).
  • TreasureClass1(N): TC of normal monster in Nightmare difficulty.
  • TreasureClass2(N): TC of champion monster in Nightmare difficulty.
  • TreasureClass3(N): TC of unique monster in Nightmare difficulty (non-quest drop).
  • TreasureClass4(N): TC of unique monster in Nightmare difficulty (quest drop).
  • TreasureClass1(H): TC of normal monster in Hell difficulty.
  • TreasureClass2(H): TC of champion monster in Hell difficulty.
  • TreasureClass3(H): TC of unique monster in Hell difficulty (non-quest drop).
  • TreasureClass4(H): TC of unique monster in Hell difficulty (quest drop).
  • TCQuestId and TCQuestCP: Values for special quest drops like Mephisto's Soulstone.

The most important part for item drops is Treasure Classes of the monster and his level.


Magicprefix.txt and Magicsuffix.txt

These two files contains all affixes available in the game. They have almost the same field, so they're covered in the same section in this guide.

  • Name: The name of the affix as it appears in the game.
  • version: 0 for Classic, 100 for LoD.
  • spawnable: 1 for available affixes, 0 for affixes, that cannot appear in the game.
  • rare: 1 for affixes, that can appear on rare items, 0 for magic only affixes.
  • level: Minimum Affix Level of an item that may spawn with this affix.
  • maxlevel:Maximum Affix Level of an itemthat may spawn with this affix.
  • levelreq: Minimum required character level for using item with this affix.
  • classspecific: The class for which this affix will work, — ama, sor, nec, pal, bar, dru. (ArchAngel's prefix will only add skills for sorceress, for instance.)
  • classlevelreq: Minimum required character level for using item with this affix. Although it usually is overrules by levelreq.
  • frequency: The rate of appearance in the game of this affix (0 for items that cannot be selected at all).
  • group: Group Id for selecting affixes for rare and crafted items. They cannot have more than one affix per group.
  • mod1code, mod2code, mod3code: The codes of effects of this affix. This codes refer to internal game functions, however all of them are quite self-explanation, e.c. "ac%" is Armor Class increase, "dmg%" is Damage increase, "res-all" is resist all.
  • mod1param, mod2param, mod3param: Parameters for the affix function. E.c. poison duration in frames, skill index, cold duration in frames. (Diablo II runs at an internal clock speed of 25 frames per second.)
  • mod1min, mod2min, mod3min: Minimum parameters for affix function such as minimum of life range given by +life affix
  • mod1max, mod2max, mod3max: Maximum parameters for affix function such as maximum of life range given by +life affix.
  • transform: 1 for affixes that do palette shift on base item.
  • transformcolor: Color code for affixes that do color shift on base item; "dgld" is dark gold, "lpur" is light purple, edtc.
  • itype1, itype2, itype3, itype4, itype5, itype6, itype7: Include Type, item type codes of items, on which this affix may occur. These codes are stored in armor.txt, weapon.txt, misc.txt and ItemTypes.txt files.
  • etype1, etype2, etype3, etype4, etype5, etype6, etype7: Exclude Type, item type codes of items, on which this affix may NOT occur.
  • divide, multiply, add:Values for modifying item price.

The usage of these files is explained in more detail in chapter 11, when affix generation is covered.

Weapons.txt

This file is used to store information about weapon item types.

  • name: The name of the weapon as it appears in the game.
  • type, type2: Item type code, the index of respective raw in itemtypes.txt file.
  • code: Internal item name.
  • alternateGfx: Item code for choosing animation. Unimportant for item generation.
  • namestr: Reference to the table. Contained correct name of the item.
  • version: 0 for Classic, 100 for Lod.
  • compactsave:Empty. Unimportant for item generation.
  • rarity: The rate of dropping the weapon from weapon racks.
  • spawnable:0 for items, that cannot be generated (except special cases like quests), 1 for others.
  • mindam-maxdam: One-handed damage.
  • 1or2handed: 1 for two-handed weapons that may be held in one hand by the Barbarian.
  • 2handed: 1 for two-handed weapons.
  • 2handmindam-2handmaxdam: Two-handed damage.
  • minmisdam-maxmisdam: Ranged damage.
  • rangeadder: Weapon range adder. Weapon range=1+rangeadder.
  • speed: Base weapon attack speed.
  • StrBonus: Strange bonus for weapon damage. Enhanced damage percent=Strength*StrBonus/100.
  • DexBonus: Dexterity bonus for weapon damage. Enhanced damage percent=Dexterity*DexBonus/100.
  • reqstr: Strength required.
  • reqdex: Dexterity required.
  • durability: Base durability.
  • nodurability: 1 for indestructible weapons.
  • level: Quality Level.
  • levelreq: Character level required.
  • cost: base weapon cost.
  • gamble cost: gambling cost.
  • magic lvl: Magic Level (see chapter 11 and chapter 22).
  • auto prefix: The code number of prefix, that always occurs on the weapon (like +mana on orbs).
  • OpenBetaGfx: Unimportant for item generation.
  • normcode: Code of normal version of the weapon.
  • ubercode: Code of exceptional version of the weapon.
  • ultracode: Code of elite version of the weapon.
  • wclass, 2handedwclass: Weapon class for animation. Unimportant for item generation.
  • component: Unimportant for item generation.
  • hit class: Unimportant for item generation.
  • invwidth: Width of the item in the inventory.
  • invheight: Height of the item in the inventory.
  • stackable: 1 for stackable weapons (throwing).
  • minstack-maxstack: The range of quantity of items of this type in on stack.
  • spawnstack: Quantity of items of this type in on stack upon founding.
  • flippyfile, invfile, uniqueinvfile, setinvfile: Graphics files for the weapon.
  • hasinv: 1 for socketable weapons.
  • gemsockets: Maximum possible number of sockets in the weapon.
  • gemapplytype: Item class for gems and runes. 0 for all weapons.
  • special: Unimportant for item generation.
  • useable: 1 for items, that you may use (e.c. town portal scroll). 0 for all weapons.
  • dropsound, dropsfxframe, usesound: Sound-related information. Unimportant for item generation.
  • unique: 1 for special quest items.
  • transparent, transtbl: Not used.
  • quivered: 1 for weapons, that need ammo.
  • lightradius, belt, quest, questdiffcheck, missiletype: Unimportant for item generation.
  • durwarning: Id of low durability warning icon.
  • qntwarning: Id of low quantity warning icon.
  • gemoffset: Unimportant for item generation.
  • bitfield1: Weapon material code (is used in golem creation and rack drop checks).
  • CharsiMin (and all other *Min fields): Should be minimal quantity of the item in vendor's price list, but isn't used (see chapter 12).
  • CharsiMax (and all other *Max fields): If CharsiMax>0 then she can sell this item (see chapter 12).
  • CharsiMagicMin (and all other *MagicMin fields): Should be minimal quantity of the item in vendor's price list, but isn't used (see chapter 12).
  • CharsiMagicMax (and all other *MagicMax fields): If CharsiMagicMax>0 then she can sell this item (see chapter 12).
  • CharsiMagicLvl (and all other *MagicLvl fields): If ilvl>=CharsiMagicLvl then she can sell this item (see chapter 12).

Source Art, Game Art, Transform, InvTrans, SkipName: Unimportant for item generation.

  • NightmareUpgrade: Item code for selling by Nightmare difficulty vendors, "xxx" for items, that don't get upgrade (see Chapter 12).
  • HellUpgrade: Item code for selling by Hell difficulty vendors, "xxx" for items, that don't get upgrade (see Chapter 12).
  • Nameable: 1 for items that may be personalized by Anya's quest reward.
  • PermStoreItem: Unimportant for item generation.

armor.txt

This is a file similar to weapons.txt.

  • name: The name of the weapon as it appear in the game.
  • version: 0 for Classic, 100 for Lod.
  • compactsave: Unimportant for item generation.
  • rarity: The rate of dropping the armor from weapon racks.
  • spawnable: 0 for items, that cannot be generated (except special cases like quests), 1 for others.
  • minac-maxac: Defence range.
  • absorbs: Not used. Unimportant for item generation.
  • speed: Run/walk speed penalty.
  • reqstr: Strength required.
  • block: Base chance to block.
  • durability: Base durability.
  • nodurability: 1 for indestructible armors.
  • level: Quality Level.
  • levelreq: Character level required.
  • cost: Base weapon cost.
  • gamble cost: Gambling cost.
  • code: Internal item name.
  • namestr: Reference to the table, contained correct name of the item.
  • magic lvl: Magic Level (see chapter 11 and chapter 22).
  • auto prefix: The code number of prefix, that always occurs on the armor (like poison damage on heads).
  • alternategfx, OpenBetaGfx: Unimportant for item generation.
  • normcode: Code of normal version of the armor.
  • ubercode: Code of exceptional version of the armor.
  • ultracode: Code of elite version of the armor.
  • spelloffset, component: Unimportant for item generation.
  • invwidth: Width of the item in the inventory.
  • invheight: Height of the item in the inventory.
  • hasinv: 1 for socketable armors.
  • gemsockets: Maximum possible number of sockets in the armor.
  • gemapplytype: Item class for gems and runes. 1 for headgear and body armor, 2 for shields.
  • flippyfile, invfile, uniqueinvfile, setinvfile: Graphics files for the armor.
  • rArm, lArm, Torso, Legs, rSPad, lSPad: Types of used graphics files.
  • useable: 1 for items, that you may use (e.c. Town portal scroll). 0 for all armors.
  • throwable: Not used.
  • stackable: 1 for stackable items (not used for armors).
  • minstack-maxstack: The range of quantity of items of this type in on stack (not used for armors).
  • type, type2: Item type code, the index of respective raw in itemtypes.txt file.
  • dropsound, dropsfxframe, usesound: Sound-related information. Unimportant for item generation.
  • unique: 1 for special quest items.
  • transparent, transtbl: Not used.
  • quivered: 1 for weapons that need ammo (not used for armors).
  • lightradius, belt, quest, questdiffcheck, missiletype: Unimportant for item generation.
  • durwarning: Id of low durability warning icon.
  • qntwarning: Id of low quantity warning icon (not used for armors).
  • mindam-maxdam: Damage range for smite or kick.
  • StrBonus: Strength bonus for kick damage. Enhanced damage percent=Strength*StrBonus/100.
  • DexBonus: Dexterity bonus for kick damage. Enhanced damage percent=Dexterity*DexBonus/100.
  • gemoffset: Unimportant for item generation.
  • bitfield1: Armor material code (is used in golem creation and rack drop checks).
  • CharsiMin (and all other *Min fields): Should be minimal quantity of the item in vendor's price list, but isn't used (see chapter 12).
  • CharsiMax (and all other *Max fields): If CharsiMax>0 then she can sell this item (see chapter 12).
  • CharsiMagicMin (and all other *MagicMin fields): Should be minimal quantity of the item in vendor's price list, but isn't used (see chapter 12).
  • CharsiMagicMax (and all other *MagicMax fields): If CharsiMagicMax>0 then she can sell this item (see chapter 12).
  • CharsiMagicLvl (and all other *MagicLvl fields): If ilvl>=CharsiMagicLvl then she can sell this item (see chapter 12).
  • Source Art, Game Art, Transform, InvTrans, SkipName: Unimportant for item generation.
  • NightmareUpgrade: Item code for selling by Nightmare difficulty vendors, "xxx" for items, that don't get upgrade (see Chapter 12).
  • HellUpgrade: Item code for selling by Hell difficulty vendors, "xxx" for items, that don't get upgrade (see Chapter 12).
  • mindam, maxdam: Not used.
  • Nameable: 1 for items that may be personalized by Anya's quest reward.


Misc.txt

This file is similar to weapons.txt and armor.txt, but contains information about all items, that are neither weapon nor armor.

  • name, *name: The name of the item as it appears in the game.
  • szFlavorText, compactsave: Unimportant for item generation.
  • version: 0 for Classic, 100 for Lod.
  • level: Quality Level.
  • levelreq: Character level required.
  • rarity: The rate of dropping the item from different objects (e.c. book shelves).
  • spawnable: 0 for items, that cannot be generated (except special cases like quests), 1 for others.
  • speed: Not used for misc items.
  • nodurability: 1 for indestructible items.
  • cost: Base item cost.
  • gamble cost: Gambling cost.
  • code: Internal item name.
  • alternategfx: Unimportant for item generation.
  • namestr: Reference to the table, contained correct name of the item.
  • component: Unimportant for item generation.
  • invwidth: Width of the item in the inventory.
  • invheight: Height of the item in the inventory.
  • hasinv: 1 for socketable items.
  • gemsockets: Maximum possible number of sockets in the item (not used for misc items).
  • gemapplytype: Item class for gems and runes (not used for misc items).
  • flippyfile, invfile, uniqueinvfile: Graphics files for the item.
  • special: Not used.
  • Transmogrify, TMogType, TMogMin, TMogMax: Unimportant for item generation.
  • useable: 1 for items, that you may use (e.c. Town portal scroll). 0 for all others.
  • throwable: Not used.
  • type, type2: Item type code, the index of respective raw in itemtypes.txt file.
  • dropsound, dropsfxframe, usesound: Sound-related information. Unimportant for item generation.
  • unique: 1 for special quest items.
  • transparent, transtbl: Not used.
  • lightradius, belt: Unimportant for item generation.
  • autobelt: 1 for items that automatically get placed on the belt.
  • stackable: 1 for stackable items.
  • minstack-maxstack: The range of quantity of items of this type in on stack.
  • spawnstack: Quantity of items of this type in on stack upon founding.
  • quest: >0 for quest items. Unimportant for item generation.
  • questdiffcheck: Unimportant for item generation.
  • missiletype, spellicon: Not used.
  • pSpell, state, cstate1, cstate2, len: Unimportant for item generation.
  • stat1, stat2, stat3: Effect of usable item. E.c. life restore for life potion.
  • calc1, calc2, calc3: The value for effect of usable item. E.e. 100% life and mana for full * rejuvenation potion.
  • spelldesc, spelldescstr, spelldesccalc: Used to refer to description of item effect.
  • durwarning: Id of low durability warning icon.
  • qntwarning: Id of low quantity warning icon.
  • gemoffset: Unimportant for item generation.
  • BetterGem: The code of gem for upgrade with cube or shrine.
  • bitfield1: Item material code (is used in golem creation and rack drop checks).
  • CharsiMin (and all other *Min fields): Should be minimal quantity of the item in vendor's price list, but isn't used (see chapter 12).
  • CharsiMax (and all other *Max fields): If CharsiMax>0 then she can sell this item (see chapter 12).
  • CharsiMagicMin (and all other *MagicMin fields): Should be minimal quantity of the item in vendor's price list, but isn't used (see chapter 12).
  • CharsiMagicMax (and all other *MagicMax fields): If CharsiMagicMax>0 then she can sell this item (see chapter 12).
  • CharsiMagicLvl (and all other *MagicLvl fields): If ilvl>=CharsiMagicLvl then she can sell this item (see chapter 12).
  • Source Art, Game Art, Transform, InvTrans, SkipName: Unimportant for item generation.
  • NightmareUpgrade: Item code for selling by Nightmare difficulty vendors, "xxx" for items, that don't get upgrade (see Chapter 12).
  • HellUpgrade: Item code for selling by Hell difficulty vendors, "xxx" for items, that don't get upgrade (see Chapter 12).
  • mindam, maxdam: Not used.
  • PermStoreItem: 1 for items, that always available in stores.
  • multibuy: 1 for items, that may be bought with Shift+Click (Multiple Buy function).
  • Nameable: 1 for items that may be personalized by Anya's quest reward.
  • *eol: Not used (however "eol" is usually End Of Line in programming).