Making Sets (v1.08+)

Making Sets (v1.08+)

Description: by Perfect Cell

Categories: Tutorials (1.09x)




Ok, a lot has changed with this particular file from 1.06 to 1.08...way
too much to mention here, so the tutorial is basically entirely
re-written. First off, these are the files you'll need to edit:

setitems.txt from patch_d2.mpq (location data\global\excel\setitems.txt)
patchstring.tbl from patch_d2.mpq (location data\local\lng\eng\patchstring.tbl)

* there are also other locations for adding these strings to foreign language versions of the game,
and they are as follows:



  • data\local\lng\chi\patchstring.tbl (Chinese)

  • data\local\lng\deu\patchstring.tbl (German)

  • data\local\lng\esp\patchstring.tbl (Spanish)

  • data\local\lng\fra\patchstring.tbl (French)

  • data\local\lng\ita\patchstring.tbl (Italian)


  • data\local\lng\jpn\patchstring.tbl (Japanese)

  • data\local\lng\kor\patchstring.tbl (Korean)

  • data\local\lng\pol\patchstring.tbl (Polish)



For the sake of convenience (and space), I have created a reference guide for the setitems.txt, you can find it here. It gives you the jist of what all the columns mean, and will make this tutorial flow a lot smooother.

*Note: any reference to string.tbl can apply to patchstring.tbl or expansionstring.tbl if you are mofidying those files instead



In this example, we will create a set (once again) called Diablo's End. The set will contain:

  • 4 items (full plate, amulet, tower shield, and full helm)


  • 2 partial set bonuses (for having 2 and 3 items)

  • 3 items with other set item bonuses (green bonuses for having other pieces in the set)

  • 1 item without other set item bonuses (it will have 5 bonuses that will be there regardless of having other items in the set)

  • the usual full set bonus (when the full set is equipped)


  • So, with that, here are the strings that we will be adding:

    Diablo's End (Diablo's End)

    Armor of Gloom (Armor of Gloom)

    Optic Amulet (Optic Amulet)


    Stormshield (Stormshield)

    Helm of Spirits (Helm of Spirits)
    The
    words on the left correspond to new entries you will have to make in
    the string.tbl (left side), and the words in brackets are what you will
    have to enter in their right side. It is a fairly simple process to add
    strings using tbl edit, but if you use Enquettar (what I use, to save
    time when adding large amounts of strings), you will add the strings
    like this to the stringchanges.txt:

    a 'Diablo's End' 'Diablo's End'

    a 'Armor of Gloom' 'Armor of Gloom'

    etc.

    For this tutorial, we will remove one
    of the original sets (if we add more sets, it will make it a lot harder
    to collect items for even a partial set bonus). I have decided to
    delete row 17 ('s set). Like in the previous tutorial, I will walk you
    through, step by step (every column) for the first item, and then just
    give you the values to fill out for the other items.


    1. Column A (Name) - enter Diablo's End

    2. Column B (Version) - enter 0, so this set can be found in classic Diablo II.


    3. Column C (level) - enter 27. This is the
      level you want the character to be before they can use the full set.
      You can enter any number. 0 means no level requirement.

    4. Column D (numitems) - enter 4. This is how many items this set has.

    5. Column E (transform) - enter 0. This is so items that spawn in this set will not change colour.

    6. Column F (transformcolor) - leave blank, or enter 0.

    7. Column G (Item1) - enter ful. This is the code for the first set item (Armor of Gloom); this will make it a full plate mail.


    8. Column H (Item1 Suffix) - enter Armor of Gloom. This will correspond to the new strings you added prior to step 1.

    9. Column I (Item1 Rarity) - set to 7, as most items have this column set to 7.

    10. Column J (Item1 Add) - set to 2 -- this item will have only 2 bonuses, but will gain extra bonuses for getting other items in the set.

    11. Column K (Item1 Lvlreq) - set to 20 (a level 20 item)


    12. Column L (Item1 cost mult) - set to 5. This column is 5 for all items except Sigon's Guard.

    13. Column M (Item1 cast add) - set to 2500. This column is 2500 for all items except Sigon's Guard.

    14. Column N (I1Code1) - enter ease. This gives the item the -requirements modifier.

    15. Column O (I1Param1) - leave blank or enter 0. This modifier does not require use of the param column.

    16. Column P (I1Min1) - enter -100. As in Diablo I, this item requires no strength to use.


    17. Column Q (I1Max1) - enter -100. There is no need for a range on -requirements on this item.

    18. Column R (I1Code2) - enter ac. This item will add to defense by a specific number (ie. +x to defense) and not by a percentage (ie. x% enhanced defense)

    19. Column S (I1Param2) - leave blank or enter 0. This modifier does not require use of the param column.

    20. Column T (I1Min2) - enter 60. This will add 60 to the base defense of the item, giving a range of 210-221.

    21. Column U (I1Max2) - enter 60. This item
      will not have a range of +to defense. However, if you set it to 80,
      when it is found, it will randomly add anywhere from 60 to 80 to the
      base defense (giving a range of 210-241).


    22. Column V (I1CodeA) - enter light. This item will give a penalty to the light radius of the character when 2 items are worn.

    23. Column W (I1ParamA) - leave blank or enter 0.

    24. Column X (I1MinA) - enter -2. This item gives -2 to the light radius when 2 items are worn.

    25. Column Y (I1MaxA) - enter -2. This item gives -2 to the light radius, no greater penalty is added unless you use a range (enter a larger negative than 2).

    26. Column Z (I1CodeB) - enter ac/lvl. This item will grant a bonus of defense based on character level when 3 items are worn.


    27. Column AA (I1ParamB) - enter 24. This is
      how much defense per character level (in eighths) that is added to the
      defense of the item. This gives the item +3 defense per level, for a
      maximum bonus of 297 at level 99. This is cumulative with the base
      defense and the ac bonus given in Code2.

    28. Column AB (I1MinB) - leave blank or enter 0.

    29. Column AC (I1MaxB) - leave blank or enter 0.

    30. Columns AD-AO can be left blank.

    31. To add the Optic Amulet (gains green item bonuses for having other items in the set):

      item (column AP) = amu -- the item type is an amulet


      suffix (AQ) = Optic Amulet -- the string added prior to step 1

      rarity (AR) = 7

      add (AS) = 2 -- gives green bonuses when 2 or more items of this set are worn

      lvlreq (AT) = 15 -- requires level 15 to equip


      mult (AU) = 5

      add (AV) = 2500

      code1 (AW) = enr -- gives a bonus to energy

      param (AX) = blank or 0

      min (AY) = 5


      max (AZ) = 5

      code2 (BA) = res-ltng -- gives a bonus to lightning resistance

      param (BB) = blank or 0

      min (BC) = 20

      max (BD) = 20


      codea (BE) = light -- gives a bonus to light radius when 2 items are worn

      param (BF) = 0

      min (BG) = 2

      max (BH) = 2

      codeb (BI) = red-dmg -- damage reduced by 2 when 3 items are worn


      param (BJ) = blank or 0

      min (BK) = 2

      min (BL) = 2

      i2codec (BM) to i2maxe (BX) can be left blank

    32. To add the Stormshield (always has 5 bonuses and does not gain any green bonuses for having other items in the set)

      item (column BY) = tow -- the item type is a tower shield


      suffix (BZ) = Stormshield -- the string that we added prior to step 1

      rarity (CA) = 7

      item3 add (CB) = 0 -- this item will always have all of its bonuses, and does not gain additional bonuses for collecting other items in the set

      lvlreq (CC) = 19 -- requires level 19 to equip


      mult (CD) = 5

      add (CE) = 2500

      code (CF) = ac -- gives a +x defense bonus

      param (CG) = blank or 0

      min (CH) = 40


      max (CI) = 40

      code (CJ) = str -- gives a strength bonus

      param (CK) = blank or 0

      min (CL) = 10

      max (CM) = 10


      code (CN) = indestruct -- makes the item indestructible

      param (CO) = 0

      min (CP) = 1

      max (CQ) = 1

      code (CR) = red-dmg -- damage increased by 4 (ie. reduced by negative)


      param (CS) = 0

      min (CT) = -4

      max (CU) = -4

      code (CV) = block1 -- increased block rate by x% (10% with the following min/max) -- block1 is not a typing error ;)

      param (CW) = 0


      min (CX) = 10

      max (CY) = 10

      i3coded (CZ) to i3maxe (DG) can be left blank

    33. To add the Helm of Spirits (gains green item bonuses for having other items in the set):

      item4 (column DH) = fhl -- the item type is a full helm

      suffix (DI) = Helm of Spirits -- the string added prior to step 1


      rarity (DJ) = 7

      add (DK) = 2 -- gives green bonuses when 2 or more items of this set are worn

      lvlreq (DL) = 24 -- requires level 24 to equip

      mult (DM) = 5

      add (DN) = 2500


      code (DO) = lifesteal -- x% life stolen per hit

      param (DP) = blank or 0

      min (DQ) = 5

      max (DR) = 5

      code (DS) = regen -- replenish life +x


      param (DT) = blank or 0

      min (DU) = 5

      max (DV) = 5

      code (DW) = enr -- gives an energy bonus

      param (DX) = blank or 0


      min (DY) = 10

      max (DZ) = 10

      code (EA) = ac/lvl -- +defense based on character level

      param (EB) = 24 -- gives +3 defense per level

      min (EC) = blank or 0


      max (ED) = blank or 0

      i4codec (EE) to i6maxe (HG) can be left blank

    34. Column HH (PCode2) - enter dex. This gives a bonus to dexterity.

    35. Column HI (PParam2) - leave blank or enter 0.

    36. Column HJ (PMin2) - enter 10. A +10 bonus to dexterity.


    37. Column HK (PMax2) - enter 10. No range, it always gives +10 to dex.

    38. Column HL (Pcode3) - enter vit. This gives a bonus to vitality.

    39. Column HM (PParam3) - leave blank or enter 0.

    40. Column HN (PMin3) - enter 10. A +10 bonus to vitality.

    41. Column HO (PMax3) - enter 10. No range, it always gives +10 to vit.


    42. Columns HP (PCode4) to HW (PMax5) can be left blank.

    43. Column HX (FCode1) - enter allskills. This gives a bonus to all skill levels.

    44. Column HY (FParam1) - leave blank or enter 0.

    45. Column HZ (FMin1) - enter 3. This will give a +3 to all skills full set bonus.

    46. Column IA (FMax1) - enter 3. No range, it always gives +3 to skills.


    47. Column IB (FCode2) - enter str. This gives a bonus to strength.

    48. Column IC (FParam2) - leave blank or enter 0.

    49. Column ID (FMin2) - enter 10. This gives a +10 bonus to strength.

    50. Column IE (FMax2) - enter 10. No range, it always gives +10 to strength.

    51. Column IF (FCode3) - enter enr. This gives a bonus to energy.


    52. Column IG (FParam3) - leave blank or enter 0.

    53. Column IH (FMin3) - enter 10. This gives a +10 bonus to energy.

    54. Column II (FMax3) - enter 10. No range, it always gives +10 to energy.

    55. Column IJ (FCode4) - enter dmg-demon. This gives a damage bonus (percentage) against demon creatures.

    56. Column IK (FParam4) - leave blank or enter 0.


    57. Column IL (FMin4) - enter 100. This gives 200% damage vs demons (ie. a 100% damage bonus against demons).

    58. Column IM (FMax4) - enter 100. No range, it always gives a 100% bonus.

    59. Column IN (FCode5) - enter att-demon. This gives a bonus to attack rating vs demons.

    60. Column IO (FParam5) - leave blank or enter 0.

    61. Column IP (FMin5) - enter 100. This gives a +100 to attack rating vs demons bonus.


    62. Column IQ (FMax5) - enter 100. No range, it always gives the +100 bonus.

    63. Column IR (FCode6) - enter hp. This gives a bonus to life.

    64. Column IS (FParam6) - leave blank or enter 0.

    65. Column IT (FMin6) - enter 100. This gives a +100 life bonus.

    66. Column IU (FMax6) - enter 100. No range, it always gives +100 life.


    67. Save the file. If you decided to use enquetter,
      run the script to make your changes to the string.tbl, otherwise just
      double check to make sure you have the proper entries in your tbl
      editor.
    68. You must now add your modified string.tbl and setitems.txt to the .mpq, as follows:

      mpq2k a patch_d2.mpq setitems.txt data\global\excel\setitems.txt

      mpq2k a patch_d2.mpq string.tbl data\local\lng\eng\string.tbl

    69. Create a folder in your Diablo II folder called
      data. In the data folder, create another one called global. And
      finally, create a folder called excel within the global folder. Then,
      run the game using the following command line:

      'Path\to\your\diablo ii\game.exe' -txt

    70. Once in the game, start a game (single player
      or multiplayer) and use a test character (create one if need be). Once
      he is in the game, save and exit, then quit the game.

    71. Copy the setitems.bin from data\global\excel\setitems.bin to the folder where you're working on your mod.

    72. You must now add the .bin to the .mpq as follows:


      mpq2k a patch_d2.mpq setitems.bin data\global\excel\setitems.bin

    73. You're all done! Your new set should be fully
      working ^_^ I will upload a test character to go along with this
      tutorial to ensure that it is working, but will do so at a later date
      (busy with other things atm :p).

    74. A few things that may or may not be worth noting:


      • You must add your new item set information to the string.tbl! The sets will not work properly and you may crash without them!

      • You can use the Itemx Add columns to give green bonuses for having multiple items in the set.

      • You can set the Itemx Add columns to 0 to create set items with as many as 7 bonuses (but no green bonuses)

      • Replacing sets is a good idea, so players can find your sets a little bit easier

        Link to this article: Select all

        [url=https://d2mods.info/forum/kb/viewarticle?a=192&sid=5cac30a014a59d91e1665846ef2ae0bc]Knowledge Base - Making Sets (v1.08+)[/url]