Jump to content

[+TUTORIAL+] Modify loot crate contents [v242]


Tom

Recommended Posts

Hi guys,

I hereby present you my tutorial to set up your loot crates. I have done this tutorial in good belief and based on how I got information from Wildcard and my own understanding. Please do not blame me, if it does not work as intended :-)

Explaining the code fragments

I firstly will explain the basic code fragments for you. This example was posted in the patch notes earlier:

ConfigOverrideSupplyCrateItems=(SupplyCrateClassString="SupplyCrate_Level03_C",MinItemSets=1,MaxItemSets=1,NumItemSetsPower=1.0,bSetsRandomWithoutReplacement=true,ItemSets=((MinNumItems=2,MaxNumItems=2,NumItemsPower=1.0,SetWeight=1.0,bItemsRandomWithoutReplacement=true,ItemEntries=((EntryWeight=1.0,ItemClassStrings=("PrimalItemResource_Stone_C"),ItemsWeights=(1.0),MinQuantity=10.0,MaxQuantity=10.0,MinQuality=1.0,MaxQuality=1.0,bForceBlueprint=false,ChanceToBeBlueprintOverride=0.0),(EntryWeight=1.0,ItemClassStrings=("PrimalItemResource_Thatch_C"),ItemsWeights=(1.0),MinQuantity=10.0,MaxQuantity=10.0,MinQuality=1.0,MaxQuality=1.0,bForceBlueprint=false,ChanceToBeBlueprintOverride=0.0)))))

First of all you need to get an overview of the item class names. Therefor you can either use the attached pdf list (it may be outdated with time) or you refer to the english wiki of the Entity IDs here

What you need to copy, is the last part of the name, without the "dot" in front of it and also not including the quotes at the end of the text:

itemname.jpg

 

So, the above mentioned example was using

PrimalItemResource_Stone

and

PrimalItemResource_Thatch

Important:

You now need to add an "_C" to the name itself, so that it will look like this: PrimalItemResource_Stone_C

Now, lets start with the code fragments and what they are doing.

SupplyCrateClassString="SupplyCrate_Level03_C"

is defining that you are going to modify the loot crate that is available from Level 3.

You can choose the following loot crate numbers:

03 - for the white loot crate
15 - for the green loot crate
25 - for the blue loot crate
35 - for the purple loot crate
45 - for the yellow loot crate
60 - for the red loot crate

 

MinItemSets=1 - specifies how many sets will be at least in the loot crate.
MaxItemSets=1 - specifies how many sets will be at most in the loot crate.

One set then can contain one or more items. Therefor you are able to decide how many sets by chance a loot crate will contain. Based on the settings we just saw, the loot crate will always only contain 1 set's items as the minimum and maximum value is set to 1.

NumItemsPower=1.0  - is a multiplicator to modify the item quality. I was talking with @Zane earlier and he told me to stick with that 1.0 and not modify it at all. Otherwise you might get primitive or ascendat items overall. The value of 1.0 will remain a good mix of both.
bSetsRandomWithoutReplacement=true - this value ensures that one item will not be added twice to same loot crate, if it maybe was added to two different item-sets. If you set it to "false" it may happen, that you will get the same item twice with a different quantity, based on what you have specified.

MinNumItems=2 - specifies how many items from that set will be at least in the loot crate
MaxNumItems=2 - specifies how many items from that set will be at most in the loot crate

From these settings there will always be 2 items in the loot crate for now.

As you can see, you are able to not only modify the quantity of sets but also the quantity of the items itself also. THerefor you can generate a highly random loot crate, depending on the setting you have chosen. You could for example determine 5 different kind of sets. And all of these 5 sets have different kind of items in it. And only 2 sets of them are chosen in first place before it will be chosen which items from them will be used for the loot crate.

NumItemSetsPower=1.0  - specifies the item quality. Same here: stick to 1.0 according to Wildcard.
SetWeight=1.0   - specifies the chance that the current set would make it into the loot crate.
ItemEntries=
.... - this is the beginning of the possible contents of the loot crate.

EntryWeight=1.0 - this specifies the probability that the current item will be chosen for the loot crate. 0.1 eqals 10%, 0.2 equals 20% and so on. 1.0 would be 100% - so the set will always be part of the loot crate.
MinQuantity=10.0 - this specifies what the quantity of the current item would be at least
MaxQuantity=10.0  - this specifies what the quantity of the current item would be at most
MinQuality=1.0 - this specifies what the quality of the current item would be at least (stick to Wildcard's recommendation and keep it with 1.0)
MaxQuality=1.0 - this specifies what the quality of the current item would be at most (stick to Wildcard's recommendation and keep it with 1.0)
bForceBlueprint=false - this specifies if you always want to generate a blueprint instead of the item. If you choose "true" you will always get a blueprint.
ChanceToBeBlueprintOverride=0.0   - if you chose "false" above, then here you can specify the probability of getting a blueprint by using the same values as for the above mentioned percentage values. 1.0 would be equal to setting "true" in the " bForceBlueprint" setting.

 

Adding one or more items for a single set

Now, if you want to have different items in one set, you are going to separate them by comma:

Example for one item would be:

(EntryWeight=1.0,ItemClassStrings=("PrimalItemResource_Stone_C"),ItemsWeights=(1.0),MinQuantity=10.0,MaxQuantity=10.0,MinQuality=1.0,MaxQuality=1.0,bForceBlueprint=false,ChanceToBeBlueprintOverride=0.0)

Example for two items would be:

(EntryWeight=1.0,ItemClassStrings=("PrimalItemResource_Stone_C"),ItemsWeights=(1.0),MinQuantity=10.0,MaxQuantity=10.0,MinQuality=1.0,MaxQuality=1.0,bForceBlueprint=false,ChanceToBeBlueprintOverride=0.0),
(EntryWeight=1.0,ItemClassStrings=("PrimalItemResource_Thatch_C"),ItemsWeights=(1.0),MinQuantity=10.0,MaxQuantity=10.0,MinQuality=1.0,MaxQuality=1.0,bForceBlueprint=false,ChanceToBeBlueprintOverride=0.0)

Example for three items would be:

(EntryWeight=1.0,ItemClassStrings=("PrimalItemResource_Stone_C"),ItemsWeights=(1.0),MinQuantity=10.0,MaxQuantity=10.0,MinQuality=1.0,MaxQuality=1.0,bForceBlueprint=false,ChanceToBeBlueprintOverride=0.0),
(EntryWeight=1.0,ItemClassStrings=("PrimalItemResource_Thatch_C"),ItemsWeights=(1.0),MinQuantity=10.0,MaxQuantity=10.0,MinQuality=1.0,MaxQuality=1.0,bForceBlueprint=false,ChanceToBeBlueprintOverride=0.0),
(EntryWeight=1.0,ItemClassStrings=("PrimalItemResource_Metal_C"),ItemsWeights=(1.0),MinQuantity=10.0,MaxQuantity=10.0,MinQuality=1.0,MaxQuality=1.0,bForceBlueprint=false,ChanceToBeBlueprintOverride=0.0)

Now we have talked about all relevant values.

 

Syntax

Please make sure, to always carefully check all comma that are in the command:

klammern_lootkiste.png.08e2dc398419094ebde4037cef8bbe8a.png

Example Loot Crate #1

Explaination of the example loot crate above:

  • You are going to overwrite the level 3 loot crate
  • It would always contain 10 stone and 10 thatch
    • The min/max qty is both 10 - so you will always get 10 of them
    • The min/max item qty is 2 - so you will always get both items

 

Example Loot Crate #2

Now lets take a look at a more complicated but complete example (please check for the colors to get the values meaning/function):

lootkiste2.jpg.91e6bec7a0ee3d8e5c85e799047e421e.jpg

  • This loot crate will either contain 1 or 2 sets in total
  • The probability for set 1 is 80%, the probability for set 2 is 40% to be in the loot crate finally
  • If set 1 is chosen, then there will at least 1 and at most 2 items be chosen to be in the final loot crate. As there are totally 3 possible items, one item will not make it to the loot crate
  • PrimalItemResource_Stone_C has a 90% chance to be chosen as item, and if its chosen it will contain between 5 and 10 units
  • PrimalItemResource_Thatch_C has a 100% chance to be chosen as item. Therefor it will always be in the lootcrate with exactly 10 units
  • PrimalItemResource_Tintoberry_C has a 20% chance to be chosen as item, and if its chosen it will contain between 10 and 90 units

Now you are maybe asking yourself how these probabilities will work out for the loot crate. Let me explain to you.

As you can see, the first entry (Stone) has a chance of 90% to be in the loot crate. So in 9 out of 10 supply drops you will get stone. If stone is in the crate, it will go to the next item: Thatch. As Thatch has a 100% chance to be in, it will be chosen as next item. Now, we have alreay reached the 2 items max. qty limit. Therefor the set's chosen items are decided now. If stone would not be chosen to be in the loot crate (the odds are 1 out of 10 for that), then Thatch would be checked next. Thatch again will be in the crate, as it still has 100% chance to be chosen. Now we have a 20% chance that the Tinotberry will be added to the loot crate - however, this would only happen 1 out of 5 times. If you combine both probabilities that are used here you might can see, that by statistics you would get the Tintoberries only every 45 drops. And if stone isnt chosen, then 80% of the time, you wont get a second item added to that loot crate from the first items-set.

Now that we have determined which items are chosen from the first set, lets take a look at the second set.

  • As stated above, there is a 40% chance that this second set would be considered to be used for the next loot crate drop, so in 60% of all drops you wont get any items from this second set at all.
  • In the other 40% you would be able to get 1 or 2 items again.
  • PrimalItem_WeaponRocketLauncher_C has a chance of 50% to be chosen for be dropped and if it drops it will contain exactly 1 unit.
  • PrimalItem_WeaponSlingshot_C has a chance of 100% to be chosen and it will contain 1 or 2 units
  • If the rocket launcher will be chosen, there will be a 30% chance to get the blueprint instead of the item itself
  • If the Slingshot will be chosen, it will always be a blueprint

I know this whole thing is a bit hard to explain, but I hope I didnt make it more complicated than it actually is.

BTW:

You must add the configuration in your game.ini  file under [/script/shootergame.shootergamemode]  - please make sure that you dont set up the same loot crate twice.

If you need the second example as text - here it is:

ConfigOverrideSupplyCrateItems=(

SupplyCrateClassString="SupplyCrate_Level03_C",MinItemSets=1,MaxItemSets=2,NumItemSetsPower=1.0,bSetsRandomWithoutReplacement=true,

ItemSets=(

(

MinNumItems=1,MaxNumItems=2,NumItemsPower=1.0,SetWeight=0.8,bItemsRandomWithoutReplacement=true,

ItemEntries=(

(EntryWeight=0.9,ItemClassStrings=("PrimalItemResource_Stone_C"),ItemsWeights=(1.0),MinQuantity=5.0,MaxQuantity=20.0,MinQuality=1.0,
MaxQuality=1.0,bForceBlueprint=false,ChanceToBeBlueprintOverride=0.0),

(EntryWeight=1.0,ItemClassStrings=("PrimalItemResource_Thatch_C"),ItemsWeights=(1.0),MinQuantity=10.0,MaxQuantity=10.0,MinQuality=1.0,
MaxQuality=1.0,bForceBlueprint=false,ChanceToBeBlueprintOverride=0.0),

(EntryWeight=0.2,ItemClassStrings=("PrimalItemResource_Tintoberry_C"),ItemsWeights=(1.0),MinQuantity=10.0,MaxQuantity=90.0,MinQuality=1.0,
MaxQuality=1.0,bForceBlueprint=false,ChanceToBeBlueprintOverride=0.0)

)

),

(

MinNumItems=1,MaxNumItems=2,NumItemsPower=1.0,SetWeight=0.4,bItemsRandomWithoutReplacement=true,

ItemEntries=(

(EntryWeight=0.5,ItemClassStrings=("PrimalItem_WeaponRocketLauncher_C"),ItemsWeights=(1.0),MinQuantity=1.0,MaxQuantity=1.0,MinQuality=1.0,
MaxQuality=1.0,bForceBlueprint=false,ChanceToBeBlueprintOverride=0.3),

(EntryWeight=1.0,ItemClassStrings=("PrimalItem_WeaponSlingshot _C"),ItemsWeights=(1.0),MinQuantity=1.0,MaxQuantity=2.0,MinQuality=1.0,
MaxQuality=1.0,bForceBlueprint=true,ChanceToBeBlueprintOverride=0.0)

)

)

)

)

 

Cheers,

Tom

itemliste09042016.pdf

itemliste09042016.pdf

itemliste09042016.pdf

Link to comment
Share on other sites

  • Replies 493
  • Created
  • Last Reply

Explained it nice and clear :)  just 1 slight clarification please....

How are the considerations for each set made ?

In example 2 ...A random 1 100 die roll and check against both sets would give Set2 a 20% chance or Set1  a 66.6% chance and Set2 a 33.3% chance  as the overall SetWeight is 1.2(120%)) 

If a separate roll check is made against each set what happens if neither Sets are considered ?

I can assume an empty crate wont come down...as MinItemSets=1....    does this mean an crate wont come down (therefore reducing the frequency of drops) or does the server go into meltdown rerolling until a crate is filled ?

 

 

Sorry 2 clarifications... :)

If SetWeight=% of being included in a set & EntryWeight is % of being included in an Entry .......ItemWeight = % of being included in.....????

 

Cheers in advance

Link to comment
Share on other sites

Think I figured out what ItemWeights=  is for.

The clue is in the plurals of ItemClassStringand ItemWeights and the fact they are ( bracketed ) variables (indicating a list of variables to be considered).

This would add a 3rd tier to % chance of something appearing.

Example ...

 

ItemSets=( 
	( 
		MinNumItems=1,
		MaxNumItems=2,
		NumItemsPower=1.0,
		SetWeight=0.8,
		bItemsRandomWithoutReplacement=true,
		ItemEntries=( 
			(EntryWeight=0.85, 
			ItemClassStrings=( 
				"Saddle1", 
				"Saddle2",
				"Saddle3",
				"Saddle4"), 
			ItemsWeights=(
				0.50,
				0.15,
				0.10,
				0.05),
			MinQuantity=1.0, 
			MaxQuantity=1.0,
			MinQuality=1.0, 
			MaxQuality=1.0,
			bForceBlueprint=false,
			ChanceToBeBlueprintOverride=0.0), 
			(EntryWeight=0.10, 
			ItemClassStrings=( 
				"Saddle1", 
				"Saddle2",
				"Saddle3",
				"Saddle4"), 
			ItemsWeights=(
				0.50,
				0.15,
				0.10,
				0.05),
			MinQuantity=1.0, 
			MaxQuantity=1.0,
			MinQuality=2.0, 
			MaxQuality=2.0,
			bForceBlueprint=false,
			ChanceToBeBlueprintOverride=0.0),
			(EntryWeight=0.05, 
			ItemClassStrings=( 
				"Saddle1", 
				"Saddle2",
				"Saddle3",
				"Saddle4"), 
			ItemsWeights=(
				0.50,
				0.15,
				0.10,
				0.05),
			MinQuantity=1.0, 
			MaxQuantity=1.0,
			MinQuality=1.0, 
			MaxQuality=1.0,
			bForceBlueprint=true,
			ChanceToBeBlueprintOverride=0.0),
		) 
	) 
)

 

Would Result in ......

Quality1 Item - Saddle1 34% (80%*85%*50%), Saddle2 10.2% (80%*85%*15%), Saddle3 6.8% (80%*85%*10%)  Saddle4 3.4% (80%*85%*5%)

 Quality2 Item - Saddle1 4% (80%*10%*50%), Saddle2 1.2% (80%*10%*15%), Saddle3 0.8% (80%*10%*10%)  Saddle4 0.4% (80%*10%*5%)

Quaily1 Blueprint - Saddle1 2% (80%*5%*50%), Saddle2 0.6% (80%*5%*15%), Saddle3 0.4% (80%*5%*10%)  Saddle4 0.2% (80%*5%*5%)

 

This would make sense, as it gives you more control over the chance of a higher quality item being dropped (rather than a 50/50 chance of a quality2 item being rolled with settings MinQuality=1.0 MaxQuality=2.0).

You could effectively then, reduce the chance of a quailty2 item from being  rolled if you set MinQuality=1.0 MaxQuality=2.0 on the 2nd EntryWeight= Section.

 

Example above uses the same *saddles* across all 3 entries.   Using above (if it works)  you could set it with multiple items across different entries.

Example Of a  Lvl 35 purple loot crate could contain....

Entry (80% to be a Quality 1 lvl 35 Saddle)

Entry (12.5% to be a Quality 2 Lvl 25 Saddle)

Entry (5% to be a Quailty 1 Lvl 35 BluePrint )

Entry (2.5% to be a Quality 2 lvl 25 Blueprint)

 

 

Maybe ??????  makes sense to me /shrug

 

 

 

 

 

Link to comment
Share on other sites

12 minutes ago, bestscreenname said:

What if I just want to change the Cave loot?  I'm not sure if it works but I assume I just need to change this to the proper cave drop name:


SupplyCrateClassString="SupplyCrate_Level03_C"

 

correct.

SupplyCrate_Cave_QualityTier1_C green cave drop
SupplyCrate_Cave_QualityTier2_C blue cave drop
SupplyCrate_Cave_QualityTier3_C yellow cave drop
SupplyCrate_Cave_QualityTier4_C red cave drop

Link to comment
Share on other sites

  • Volunteer Moderator

@Tom

Good stuff.  I may be trying this out today.  I may set up a spreadsheet that will let you construct these, so that you don't have to do comma and parenthesis.

 

But, I have a question.   What happens if you have mods that either override or add to the loot tables?  Does this supersede those?  Additionally, can we include mod items in the loot tables?  (I am assuming this is partly based on when/where our table settings are used).

Link to comment
Share on other sites

Has anyone actually been able to get this to work?
Because I followed your guide, even followed your example, and nothing changed. Drops were unnafected. Spawned a bunch of supply crates, just the same general loot.
I upped the 

MinItemSets=1,MaxItemSets=1

to 8 each respectively. No change. Changed every value. No change. The config is working just fine as each time I run the test I change the player carry weight quite high. the weight changes properly. But your code doesn't seem to change the supply drops. As well as everyones code. I've spawned in supply drops to see if it changes, nothing. Gone to naturally spawning supply drops, nothing. Copy pasting your code 100% with no additional stuff added or any changes, again, nothing.

 

Link to comment
Share on other sites

1 hour ago, BlackWolfVillage said:

Has anyone actually been able to get this to work?
Because I followed your guide, even followed your example, and nothing changed. Drops were unnafected. Spawned a bunch of supply crates, just the same general loot.
I upped the 


MinItemSets=1,MaxItemSets=1

to 8 each respectively. No change. Changed every value. No change. The config is working just fine as each time I run the test I change the player carry weight quite high. the weight changes properly. But your code doesn't seem to change the supply drops. As well as everyones code. I've spawned in supply drops to see if it changes, nothing. Gone to naturally spawning supply drops, nothing. Copy pasting your code 100% with no additional stuff added or any changes, again, nothing.

 

As stated in several previous answers above, there is something missing what the Devs forgot to tell us and what let all the theory above just remain theory. There is something missing that assigns this code to a variable or something.

 

@Jeremy Stieglitz or @Zane might could bring some light into the dark.

Link to comment
Share on other sites

from http://steamcommunity.com/app/346110/discussions/10/350532536100692514/?ctp=12

Originally posted by Red River:
Originally posted by bradislumpster:
ConfigOverrideSupplyCrateItems=
nope
doesn't seem to work
anybody got a working sample?

Yea, i verified this. 

ConfigOverrideSupplyCrateItems=
(SupplyCrateClassString="SupplyCrate_Level03_C",MinItemSets=1,MaxItemSets=1,NumItemSetsPower=1.0,bSetsRandomWithoutReplacement=true,ItemSets=((MinNumItems=2,MaxNumItems=2,NumItemsPower=1.0,SetWeight=1.0,bItemsRandomWithoutReplacement=true,ItemEntries=((EntryWeight=1.0,ItemClassStrings=("PrimalItemResource_Stone_C"),ItemsWeights=(1.0),MinQuantity=10.0,MaxQuantity=10.0,MinQuality=1.0,MaxQuality=1.0,bForceBlueprint=false,ChanceToBeBlueprintOverride=0.0),(EntryWeight=1.0,ItemClassStrings=("PrimalItemResource_Thatch_C"),ItemsWeights=(1.0),MinQuantity=10.0,MaxQuantity=10.0,MinQuality=1.0,MaxQuality=1.0,bForceBlueprint=false,ChanceToBeBlueprintOverride=0.0)))))

does in fact make white beacons spawn in with just thatch and stone. Very good examples and breakdowns['https]

 

ConfigOverrideSupplyCrateItems=

 

 

Link to comment
Share on other sites

Now that we have this working, does anyone have some basic recommendations on what should be added or is currently missing from the crates? I've used several replacement mods and several of the mods like Annunaki Gen which make their own changes, but they seem to go a bit far. Some negate most of the need for crafting in the early stages.

Link to comment
Share on other sites

@Tom

My thought on  ItemWeights and  ItemClassStrings are correct.

 

ConfigOverrideSupplyCrateItems=(SupplyCrateClassString="SupplyCrate_Level03_C",MinItemSets=1,MaxItemSets=1,NumItemSetsPower=1.0,bSetsRandomWithoutReplacement=true,ItemSets=((MinNumItems=1,MaxNumItems=1,NumItemsPower=1.0,SetWeight=1.0,bItemsRandomWithoutReplacement=true,ItemEntries=((EntryWeight=1.0,ItemClassStrings=("PrimalItemResource_Stone_C", "PrimalItemResource_Thatch_C"),ItemsWeights=(0.5,0.5),MinQuantity=10.0,MaxQuantity=10.0,MinQuality=1.0,MaxQuality=1.0,bForceBlueprint=false,ChanceToBeBlueprintOverride=0.0)))))

results in a Total of 10 resources being dropped.  Qty of each resource varies but total Is 10.. ie 6 stone 4 thatch, 7 stone 3 thatch  etc etc.

 

ConfigOverrideSupplyCrateItems=(SupplyCrateClassString="SupplyCrate_Level03_C",MinItemSets=1,MaxItemSets=1,NumItemSetsPower=1.0,bSetsRandomWithoutReplacement=true,ItemSets=((MinNumItems=1,MaxNumItems=1,NumItemsPower=1.0,SetWeight=1.0,bItemsRandomWithoutReplacement=true,ItemEntries=((EntryWeight=1.0,ItemClassStrings=("PrimalItemResource_Stone_C", "PrimalItemResource_Thatch_C"),ItemsWeights=(0.5,0.5),MinQuantity=1.0,MaxQuantity=1.0,MinQuality=1.0,MaxQuality=1.0,bForceBlueprint=false,ChanceToBeBlueprintOverride=0.0)))))

results in either 1 Stone OR 1 Thatch dropping.

Link to comment
Share on other sites

18 minutes ago, Theocrates said:

Now that we have this working, does anyone have some basic recommendations on what should be added or is currently missing from the crates? I've used several replacement mods and several of the mods like Annunaki Gen which make their own changes, but they seem to go a bit far. Some negate most of the need for crafting in the early stages.

Until there is a reply on how the random generator works, I would recommend you make sure that all your weights add up to 1.0 in the sub categories  eg..

 

Item Set(    
			(setweight=.05
				item entries( 
					(entryweight=0.7
						(itemweight=0.5,0.5)
					(entryweight=0.3
						(itemweight=0.5,0.5)
			)
			(setweight=.05
				item entries( 
					(entryweight=0.6
						(itemweight=0.8,0.2)
					(entryweight=0.4
						(itemweight=0.5,0.5)
			)
)
	
	

 

Having them <>1.0 could result in the %chance of something dropping varying from the xxxxweight= you define

 

Link to comment
Share on other sites

ConfigOverrideSupplyCrateItems=
(SupplyCrateClassString="SupplyCrate_Level03_C",MinItemSets=1,MaxItemSets=1,NumItemSetsPower=1.0,bSetsRandomWithoutReplacement=true,ItemSets=((MinNumItems=2,MaxNumItems=2,NumItemsPower=1.0,SetWeight=1.0,bItemsRandomWithoutReplacement=true,ItemEntries=((EntryWeight=1.0,ItemClassStrings=("PrimalItemConsumable_Veggie_Savoroot_C"),ItemsWeights=(1.0),MinQuantity=10.0,MaxQuantity=10.0,MinQuality=1.0,MaxQuality=1.0,bForceBlueprint=false,ChanceToBeBlueprintOverride=0.0),(EntryWeight=1.0,ItemClassStrings=("PrimalItemConsumable_BugRepellant_C"),ItemsWeights=(1.0),MinQuantity=10.0,MaxQuantity=10.0,MinQuality=1.0,MaxQuality=1.0,bForceBlueprint=false,ChanceToBeBlueprintOverride=0.0)))))

 

That should be good then ?

Link to comment
Share on other sites

Archived

This topic is now archived and is closed to further replies.


×
×
  • Create New...