D3Inferno

SetItemBonuses.gam Files

This section discusses the "\GameBalance\SetItemBonuses.gam" file in the "CoreData.mpq" file. MPQ Patches to this file are located in the "base" subdirectory of the Diablo 3 "MPQs" directory. Please see the MPQs section for general MPQ information and basic information about how files are encoded.

SetItemBonus Structure

The SetItemBonus structure size is 0x1D0 bytes. The set name accounts for 0x100 bytes, and optional ModCodes account for most of the rest, so it is not a very large structure. Here are the details of this structure:

struct SetItemBonus// sizeof 0x1D0
{
0x000DWord unknown1;// always 0x00000000
0x004char itemSetName[256];// non-NLS key name of the Item Set
0x104DWord parentHash;// hash of the parent Item Set
0x108DWord numOfSet;// number in set to activate bonus
0x00CDWord unknown2;// always 0x00000000
0x110ModCode mods[8];// ModCodes (Attributes)
}

The ModCode (sometimes called Attribute) structure is the same as the one used for Items.

The entries in the "SetItemBonuses.gam" file fall into two groups:

Most "Item Set Bonus" entries have a "numOfSet" value greater than zero. This is the number of Set Item pieces that a character must wear to trigger the bonus (e.g., a 2-piece bonus). All such entries have one or more ModCodes defined that specify the Set bonuses.

Here is a partial example of one of the Sets in the "SetItemBonuses.gam" file:

itemSetNameparentHashnumOfSetModCode1ModCode2
Inferno Set 010FFFFFFFF0FFFFFFFFFFFFFFFF
Inferno Set 010 (1)1010E22E20000000D000000F9
Inferno Set 010 (2)1010E22E0FFFFFFFFFFFFFFFF
Inferno Set 010 (3)1010E22E300000040FFFFFFFF
Inferno Set 010 (4)1010E22E4000000FC000000A5
Inferno Set 010 (5)1010E22E0FFFFFFFFFFFFFFFF

Note that 0x1010E22E is the String Hash for "Inferno Set 010".

The Set Items Bonuses "Inferno Set 010 (2)" and "Inferno Set 010 (5)" have a "numOfSet" of "0" and no ModCodes defined. The other three Set Items Bonuses provide the 2-piece, 3-piece, and 4-piece bonuses for this Item Set. Each of the bonuses grants (in the above case) 1-2 mods each.

The ModCode with value 0x00D corresponds to Defense. The min/max data for the ModCodes is also stored in "SetItemBonuses.gam", at the end of the file as ModCode Variable Data.

For a complete list of Set Items and their bonuses, check out D3Lexicon's Item Sets.

Email Contact:

contact_email