Bag/holder Item Tutorial for 1.1x

Post here about all aspects of D2 mod making whether it's information, problems or whatever. Please specify whether your post is relating to Classic D2 or the Expansion.

Moderator: Nizari

Post Reply
Hells_Lord
Junior Member
Paladin
Posts: 138
Joined: Mon Aug 06, 2012 10:55 pm
United States of America

Bag/holder Item Tutorial for 1.1x

Post by Hells_Lord » Wed May 20, 2015 5:47 pm

Tutorial on how to make Holding Items such as gem potion and or rune bags. On a side note everything is in code things becuase if I didnt there would be 800+ lines (837 in notepad++ with a font increase)

Everything in this tutorial will enable you to make a holding item of any of the above type or for other things. There are other ways to do this, this is just the way I did it.

General knowledge of creating new items and properties will come in handy for this tutorial. As well as general knowledge on how to make a mod run and work properly.

Level of knowledge required : Beginner and or Intermediate

Spoon Fed : Pretty much

Files Required :

CubeMain.txt (same concept for all gem bags)
ItemStatCost.txt (this will be usable for all gem bags and gem removers)
UniqueItems.txt (makes things easier in my opinion (removers will be usable for all gem bags))
Properties.txt (this will be usable for all gem bags and gem removers)
Misc.txt (the removers will be usable for all gem bags)
ItemTypes.txt (this will be usable for all gem bags and gem removers)
TreasureClassEx.txt (if you want to make them as drops(I won't be going over this in this guide))
patchstring.tbl (strings will all be interchangeable between all gem bags and gem removers)

Applications/Programs Required :

A table editor (I'll be using QTblEditor)
A spreadsheet editor (I'll be using D2Excel)

Now for the fun part the actual tutorial. I will be making a chipped gem bag.

Firstly open ItemTypes.txt and add 4 new rows at the bottom.

Code: Select all


1st new row make these changes :

ItemType : Bag (or Bags depending on what you want to call it)
Code : BAG (easier to remember)
Repair : 0
Body : 0
Throwable
Reload : 0
ReEquip : 0
AutoStack : 0
Normal : 0
Charm : 0
Gem : 0
Beltable : 0
MaxSock1 : 0
MaxSock25 : 0
MaxSock40 : 0
TreasureClass : 0
Rarity : 3 (or whatever you want)
CostFormula : 0
ValInvGfx : 0
StorePage : misc
*eol : 0

2nd new row copy & paste the first new row and make these changes :

ItemType : Gem Bag
Code : GBAG (easier to remember)

3rd new row paste again and make these changes :

ItemType : Remover
Code : RMVR (easier to remember)

4th new row paste again and make these changes :

ItemType : Gem Remover
Code : GRMV (easier to remember)

Save and close ItemTypes.txt

Secondly open misc.txt and add 8 new rows at the bottom.

Code: Select all


1st new row make these changes :

Name : Chipped Gem Bag
*Name : Gem Bag
compactsave : 0
version : 100
level : 1 (or whatever you want)
levelreq : 0 (or whatever you want)
rarity : 999 (or whatever you want)
spawnable : 1
speed : 0
nodurability : 1
cost : 1 (or whatever you want)
gamble cost : 1 (or whatever you want)
code : GB1 (easier to remember but your choice)
alternategfx : GB1
namestr : GBAG
component : 16
invwidth : 1
invheight : 1
hasinv : 0
gemsockets : 0
gemapplytype : 0
flippyfile : flpchm1 (I just used a small charm graphic)
invfile : invchm (I just used a small charm graphic)
Transmorgify : 0
TMogType : xxx
usable : 0
throwable : 0
type : GBAG
type2 : leave blank
dropsound : item_gem (used a gem sound can use any sound you want)
dropfxframe : 12
usesound : item_gem (same as above)
unique : 1
transparent 0 :
transbl : 5
lightradius : 0
belt : 0
autobelt : 0
stackable : 0
minstack : 0
maxstack : 0
spawnstack : 0
missiletype : 0
spellicon : -1
durwarning : 0
qntwarning : 0
gemoffset : 0
BetterGem : non
bitfeild1 : 0
CharsiMagicLvl : 255
GheedMagicLvl : 255
AkaraMin : 1 (or leave blank depends on if you want to sell or not)
AkaraMax : 1 (same as above)
AkaraMagicLvl : 255
FaraMagicLvl : 255
LysanderMagicLvl : 255
DrognanMagicLvl : 255
HraltiMagicLvl : 255
AlkorMagicLvl : 255
OrmusMagicLvl : 255
ElzixMagicLvl : 255
AshearaMagicLvl : 255
CainMagicLvl : 255
HalbuMagicLvl : 255
MalahMagicLvl : 255
LarzukMagicLvl : 255
DrehyaMagicLvl : 255
JamellaMagicLvl : 255
Transform : 5 (enable color changes via UniqueItems.txt or leave 0)
InvTrans : 8 (same as above)
SkipName : 0
NightmareUpgrade : xxx
HellUpgrade : xxx
PermStoreItem : 1 (if you set akara to 1 otherwise leave blank)
multibuy : 1 (same as above)
Nameable : 0 (1 = personalizable)
*eol : 0

2nd row copy and paste the 1st new row and make these changes :

name : Gem Remover 1
*name : Remover
code : GR00
alternategfx : GR00
namestr : RMVR
type : GRMV

3rd row copy and paste the 2nd new row and make these changes :

name : Gem Remover 2
code : GR01
alternategfx : GR01
AkaraMin : make blank
AkaraMax : make blank
PermStoreItem : make blank
multibuy : make blank

4th row copy and paste the 3rd new row and make these changes :

name : Gem Remover 3
code : GR02
alternategfx : GR02

5th row paste and make these changes

name : Gem Remover 4
code : GR03
alternategfx : GR03

6th row paste and make these changes

name : Gem Remover 5
code : GR04
alternategfx : GR04

7th row paste and make these changes

name : Gem Remover 6
code : GR05
alternategfx : GR05

8th row paste and make these changes

name : Gem Remover 7
code : GR06
alternategfx : GR06

Save and exit Misc.txt

Thridly open up UniqueItems.txt and add 8 new rows.

Code: Select all


1st new row make these changes :

index : Chipped Gem Bag
version : 100
enabled : 1
rarity : 999 (or whatever you choose)
nolimit : 1 (0/blank means only 1 will drop per game)
lvl : 1 (or whatever you choose)
lvl req : 0 (or whatever you choose)
code : GB1
*type : Gem Bag
invtransform : bwht (bright white color from Colors.txt)
flippyfile : flpmss (anni charm file)
invfile : invmss (same as above)
dropsound : item_gem
dropsfxframe : 12
usesound : item_gem
*eol : 0

2nd row copy and paste the 1st new row and make these changes :

name : Gem Remover 1
code : GR00
*type : Gem Remover
invtransform : dpur
prop1 : GR-Amethyst
min1 : 1
max1 : 1

3rd row copy and paste the 2nd new row and make these changes :

name : Gem Remover 2
code : GR01
invtransform : dyel
prop1 : GR-Topaz
min1 : 1
max1 : 1

4th row paste and make these changes :

name : Gem Remover 3
code : GR02
invtransform : dblu
prop1 : GR-Sapphire
min1 : 1
max1 : 1

5th row paste and make these changes :

name : Gem Remover 4
code : GR03
invtransform : dgrn
prop1 : GR-Emerald
min1 : 1
max1 : 1

6th row paste and make these changes :

name : Gem Remover 5
code : GR04
invtransform : dred
prop1 : GR-Ruby
min1 : 1
max1 : 1

7th row paste and make these changes :

name : Gem Remover 6
code : GR05
invtransform : bwht
prop1 : GR-Diamond
min1 : 1
max1 : 1

8th row paste and make these changes :

name : Gem Remover 7
code : GR06
invtransform : whit
prop1 : GR-Skull
min1 : 1
max1 : 1

Save and close UniqueItems.txt

Fourthly open up ItemStatCost.txt and add 14 new rows.

Code: Select all


1st new row make these changes :

Stat : GB_Amethyst
ID : (next ID number in your file)
Signed : leave blank or 1 doesn't matter for these
Send Bits : 16
Divide : 1024
1.09-Save Bits : 10
1.09-Save Add : 10
Save Bits : 11
Save Add : 10
descpriority : 7 (will be 1st description on the gem bag always)
descfunc : 3
descval : 2
descstrpos : GBAmethyst
descstrneg : GBAmethyst
*eol : 0

2nd row copy and paste 1st new row and make these changes :

Stat : GB_Topaz
ID : (next ID)
descpriority : 6
descstrpos : GBTopaz
descstrneg : GBTopaz

3rd row paste again and make these changes :

Stat : GB_Sapphire
ID : (next ID)
descpriority : 5
descstrpos : GBSapphire
descstrneg : GBSapphire

4th row paste again and make these changes :

Stat : GB_Emerald
ID : (Next ID)
descpriority : 4
descstrpos : GBEmerald
descstrneg : GBEmerald

5th row paste again and make these changes :

Stat : GB_Ruby
ID : (Next ID)
descpriority : 3
descstrpos : GBRuby
descstrneg : GBRuby

6th row paste again and make these changes :

Stat : GB_Diamond
ID : (Next ID)
descpriority : 2
descstrpos : GBDiamond
descstrneg : GBDiamond

7th row paste again and make these changes :

Stat : GB_Skull
ID : (Next ID)
descpriority : 1
descstrpos : GBSkull
descstrneg : GBSkull

8th new row make these changes :

Stat : GR_Amethyst
ID : (next ID number in your file)
Signed : leave blank or 1 doesn't matter for these
Send Bits : 8
Divide : 1024
ValShift : leave blank
1.09-Save Bits : 7
1.09-Save Add : 0
Save Bits : 7
Save Add : 0
descpriority : 1
descfunc : 3
descval : 0
descstrpos : GRAmethyst
descstrneg : GRAmethyst
*eol : 0

9th row copy and paste 8th new row and make these changes :

Stat : GR_Topaz
ID : (Next ID)
descstrpos : GRTopaz
descstrneg : GRTopaz

10th row paste again and make these changes :

Stat : GR_Sapphire
ID : (Next ID)
descstrpos : GRSapphire
descstrneg : GRSapphire

11th row paste again and make these changes :

Stat : GR_Emerald
ID : (Next ID)
descstrpos : GREmerald
descstrneg : GREmerald

12th row paste again and make these changes :

Stat : GR_Ruby
ID : (Next ID)
descstrpos : GRRuby
descstrneg : GRRuby

th row paste again and make these changes :

Stat : GR_Diamond
ID : (Next ID)
descstrpos : GRDiamond
descstrneg : GRDiamond

th row paste again and make these changes :

Stat : GR_Skull
ID : (Next ID)
descstrpos : GRSkull
descstrneg : GRSkull

Save and exit ItemStatCost.txt

Fifthly open up Properties.txt and add 14 new rows.

Code: Select all


1st new row make these changes

code : GB-Amethyst
*done : 1
func1 : 17
stat1 : GB_Amethyst
*notes : none
*eol : 0

2nd new row copy and paste the 1st row and make these changes :

code : GB-Topaz
stat1 : GB_Topaz

3rd new row paste again and make these changes :

code : GB-Sapphire
stat1 : GB_Sapphire

4th new row paste again and make these changes :

code : GB-Emerald
stat1 : GB_Emerald

5th new row paste again and make these changes :

code : GB-Ruby
stat1 : GB_Ruby

6th new row paste again and make these changes :

code : GB-Diamond
stat1 : GB_Diamond

7th new row paste again and make these changes :

code : GB-Skull
stat1 : GB_Skull

8th new row paste again and make these changes :

code : GR-Amethyst
func1 : 1
stat1 : GR_Amethyst

9th new row paste again and make these changes :

code : GR-Topaz
func1 : 1
stat1 : GR_Topaz

10th new row paste again and make these changes :

code : GR-Sapphire
func1 : 1
stat1 : GR_Sapphire

11th new row paste again and make these changes :

code : GR-Emerald
func1 : 1
stat1 : GR_Emerald

12th new row paste again and make these changes :

code : GR-Ruby
func1 : 1
stat1 : GR_Ruby

13th new row paste again and make these changes :

code : GR-Diamond
func1 : 1
stat1 : GR_Diamond

14th new row paste again and make these changes :

code : GR-Skull
func1 : 1
stat1 : GR_Skull

Save and exit Properties.txt

Sixthly open up CubeMain.txt and add 21 new rows.

Code: Select all


1st new line make these changes :

description : remover changer 1
enabled : 1
version : 100
input 1 : "GR00,uni"
output : "GR01,uni"
lvl : 99
plvl : 0
ilvl : 0
*eol : 0

2nd line copy and paste 1st line and make these changes :

description : remover changer 2
input 1 : "GR01,uni"
output : "GR02,uni"

3rd line paste again and make these changes :

description : remover changer 3
input 1 : "GR02,uni"
output : "GR03,uni"

4th line paste again and make these changes :

description : remover changer 4
input 1 : "GR03,uni"
output : "GR04,uni"

5th line paste again and make these changes :

description : remover changer 5
input 1 : "GR04,uni"
output : "GR05,uni"

6th line paste again and make these changes :

description : remover changer 6
input 1 : "GR05,uni"
output : "GR06,uni"

7th and final remover line paste and make these changes :

description : remover changer 7
input 1 : "GR06,uni"
output : "GR00,uni"

8th new line make these changes start of gem bag stuff :

description : gem bag add amethyst
enabled : 1
version : 100
op : 16
param : ID of your 1st new stat in ItemStatCost
value : 2036 (or whatever number from 0 - 2036 you want the gem bag to stop accepting gems)
input 1 : GB1
input 2 : gcv
output : useitem
lvl : 99
plvl : 0
ilvl : 0
mod 1 : GB-Amethyst
mod 1 min : 1
mod 1 max : 1
*eol : 0

9th line copy and paste 8th and make these changes :

description : gem bag add topaz
param : ID of your 2nd new stat in ItemStatCost
input 2 : gcy
mod 1 : GB-Topaz

10th line paste again and make these changes :

description : gem bag add sapphire
param : ID of your 3rd new stat in ItemStatCost
input 2 : gcb
mod 1 : GB-Sapphire

11th line paste again and make these changes :

description : gem bag add emerald
param : ID of your 4th new stat in ItemStatCost
input 2 : gcg
mod 1 : GB-Emerald

12th line paste again and make these changes :

description : gem bag add ruby
param : ID of your 5th new stat in ItemStatCost
input 2 : gcr
mod 1 : GB-Ruby

13th line paste again and make these changes :

description : gem bag add diamond
param : ID of your 6th new stat in ItemStatCost
input 2 : gcw
mod 1 : GB-Diamond

14th line paste again and make these changes :

description : gem bag add skull
param : ID of your 7th new stat in ItemStatCost
input 2 : skc
mod 1 : GB-Skull

15th line paste again and make these changes for the remover :

description : gem bag remove amethyst
op : 15
param : ID of your 1st new stat in ItemStatCost
value : 1 (or whatever number from 1 - 2037 you want the gem remover to stop removing gems)( 1 means it stops at 0)
input 2 : "GR00,uni"
mod 1 : GB-Amethyst
output b : GR00
output c : gcv

16th line copy and paste the 15th line and make these changes :

description : gem bag remove topaz
param : ID of your 2nd new stat in ItemStatCost
input 2 : "GR01,uni"
mod 1 : GB-Topaz
output b : GR01
output c : gcy

17th line paste again and make these changes :

description : gem bag remove sapphire
param : ID of your 3rd new stat in ItemStatCost
input 2 : "GR02,uni"
mod 1 : GB-Sapphire
output b : GR02
output c : gcb

18th line paste again and make these changes :

description : gem bag remove emerald
param : ID of your 4th new stat in ItemStatCost
input 2 : "GR03,uni"
mod 1 : GB-Emerald
output b : GR03
output c : gcg

19th line paste again and make these changes :

description : gem bag remove ruby
param : ID of your 5th new stat in ItemStatCost
input 2 : "GR04,uni"
mod 1 : GB-Ruby
output b : GR04
output c : gcr

20th line paste again and make these changes :

description : gem bag remove diamond
param : ID of your 6th new stat in ItemStatCost
input 2 : "GR05,uni"
mod 1 : GB-Diamond
output b : GR05
output c : gcw

21st line paste again and make these changes :

description : gem bag remove skull
param : ID of your 7th new stat in ItemStatCost
input 2 : GR06
mod 1 : "GB-Skull,uni"
output b : GR06
output c : skc

Save and exit CubeMain.txt

Lastly open patchstring.tbl and add 24 new rows. This one may seem counter productive but I do it this way to ensure there are absolutely no errors unless I save to the wrong folder.

Code: Select all


1st new row :

Left side : GB1
Right side : Chipped Gem Bag

2nd new row :

Left side : Chipped Gem Bag
Right side : Chipped Gem Bag

3rd new row :

Left side : BAG
Right side : Bag

4th new row :

Left side : Bag
Right side : Bag

5th new row :

Left side : GBAG
Right side : \white;Cube with Gem Remover.
To remove Gems

\gold;Gem Bag

6th new row :

Left side : Gem Bag	
Right side : \white;Cube with Gem Remover.
To remove Gems

\gold;Gem Bag

7th new row :

Left side : GRMV
Right side : Gem Remover

8th new row :

Left side : Gem Remover
Right side : Gem Remover

9th new row :

Left side : RMVR
Right side : Remover

10th new row :

Left side : Remover
Right side : Remover

11th new row :

Left side : GBAmethyst
Right side : \purple;Amethysts

12th new row :

Left side : GBTopaz
Right side : \yellow;Topazes

13th new row :

Left side : GBSapphire
Right side : \blue;Sapphires

14th new row :

Left side : GBEmerald
Right side : \green;Emeralds

15th new row :

Left side : GBRuby
Right side : \red;Rubies

16th new row :

Left side : GBDiamond
Right side : \white;Diamonds

17th new row :

Left side : GBSkull	
Right side : \grey;Skulls

18th new row :

Left side : GRAmethyst	
Right side : \purple;Amethyst
\orange;Removes :

\white;Cube to change remove type.

19th new row :

Left side : GRTopaz	
Right side : \yellow;Topaz
\orange;Removes :

\white;Cube to change remove type.

20th new row :

Left side : GRSapphire	
Right side : \blue;Sapphire
\orange;Removes :

\white;Cube to change remove type.

21st new row :

Left side : GREmerald	
Right side : \green;Emerald
\orange;Removes :

\white;Cube to change remove type.

22nd new row :

Left side : GRRuby	
Right side : \red;Ruby
\orange;Removes :

\white;Cube to change remove type.

23rd new row :

Left side : GRDiamond	
Right side : \white;Diamond
\orange;Removes :

\white;Cube to change remove type.

24th new row :

Left side : GRSkull	
Right side : \grey;Skull
\orange;Removes :

\white;Cube to change remove type.


Attached a plugin type thing it has all the files/code for all the gem, potion and rune bags. The bags all hold 2037 of each of their respective items.




Credits :

The Phrozen Keep Team for having this great site full of reference material.

Gozzy for peaking my interest in this item.

Black_Eternity for helping me fix error after error.

Whom so ever came up with the item idea (I think it was the makers of the mod Eastern Sun).

Myself for making the guide on how to do it and extensive editing, redoing, and testing.
Attachments
Plugin.zip
Has all the code I personally made with the resources available on this site. Contains the code for Gem, Potion and Rune bags.
(13.55 KiB) Downloaded 268 times
Last edited by Hells_Lord on Wed May 27, 2015 2:52 am, edited 3 times in total.
Image
Now Modding 1.14D

Holder/Bag Item Tutorial

Hells_Lord
Junior Member
Paladin
Posts: 138
Joined: Mon Aug 06, 2012 10:55 pm
United States of America

Re: Bag/holder Item Tutorial for 1.1x

Post by Hells_Lord » Wed May 27, 2015 4:02 am

Let me know what you guys think whether it be I should add something, remove something or even change something.

Edit : Added a plugin for ease of use error checking etc.
Image
Now Modding 1.14D

Holder/Bag Item Tutorial

User avatar
X6XHellion6X6
Posts: 12
Joined: Mon Aug 17, 2009 8:29 pm
Contact:

Re: Bag/holder Item Tutorial for 1.1x

Post by X6XHellion6X6 » Sun Jun 07, 2015 6:31 pm

I will definitely get this! May be a bit before i put it in my mod but thank you!
We will witness the end of all life, and continue to be the cause of death. -Me

SparrowKane
Posts: 2
Joined: Sun Jul 12, 2015 10:05 pm

Re: Bag/holder Item Tutorial for 1.1x

Post by SparrowKane » Tue Jul 14, 2015 3:10 am

EDIT: Finally managed to get it all working.

User avatar
tmuhlhausen
Junior Member
Paladin
Posts: 104
Joined: Sat Aug 24, 2019 6:43 pm
Canada

Re: Bag/holder Item Tutorial for 1.1x

Post by tmuhlhausen » Tue Feb 25, 2020 1:06 pm

Tutorial is great. I had an issue at first because i have added things into itemstatcost.txt before starting this tutorial. so the ids in itemstatcost.txt were not matching the param column in cubemain.txt hopefully saves someone some time


Also Ber rune's description is named improperly, the string is labelled BUR instead of BER in the row "RB_Ber"

Post Reply

Return to “General Mod Making”