Jump to content

Unofficial XML Fixes


Clockwork Orange

Recommended Posts

EDIT: also this only works for recipes that do not have a weight value for there other ingredients, for eg the iron club uses scrap iron and wood. since wood has no weight it only uses the weight of the scrap iron to calculate when scrapping and forging. Other items that have other ingredients that have a weight will have those weight values included in the scrapping process and can lead to exploiting.

 

But forged iron does not have a weight, and it scraps. The 75% does seem to work for items made with scrap iron. Scrap stairs take 5 scrap and give back 3.75 (1875 for a stack).

 

By the way, I'm not sure what actually determines if something is scrapable. Is it if it has a weight? Or is the scrapable="True" in recipes.xml supposed to do something? For example, barbedFence is set to scrapable="True", and it is made out of forged iron, but it still cannot be scrapped, and putting it in the forge doesn't consume it.

 

A spiked club gives 50 iron in the forge.

 

- - - Updated - - -

 

That is because I have not gone through all of the scrapable blocks and balanced them properly. I will do that after the next update if it does not get addressed.

 

I'm still using the stock XML at the moment.

Link to comment
Share on other sites

Is there any official word on which groups info should be used going forwards?

 

There's the groups.xml and also the misc.xml that both have groups info in them. From what I could tell in a12 the groups.xml file was used for the color part, but the misc.xml data was used for the menus and grouping of items (or something like that), but of course they now have different group names and not all of the groups are in both places.

Link to comment
Share on other sites

But forged iron does not have a weight

 

That is why I have added a weight of 10 to forged Iron. And a weight of 5 to shortMetalPipe. And weight of 20 and <property name="RepairTime" value="0.5" />

<property name="RepairAmount" value="200" /> to forged steel.

 

and changed steel pickaxe to require forged steel to repair.

Link to comment
Share on other sites

By the way, I'm not sure what actually determines if something is scrapable. Is it if it has a weight? Or is the scrapable="True" in recipes.xml supposed to do something? For example, barbedFence is set to scrapable="True", and it is made out of forged iron, but it still cannot be scrapped, and putting it in the forge doesn't consume it.

 

The scrapable attribute was for when we could dismantle ammo etc.

 

It is the material that determines what an item scraps to. Specifically the forge_category attribute in the material and the relevant recipe:

<recipe name="cloth" count="1" scrapable="False" tooltip="ttScrapMetalBrass" >

<wildcard_forge_category />

</recipe>

 

(side note, the tool tip is wrong on this recipe? :) )

Link to comment
Share on other sites

The only problem with that is I need some sort of baseline that i can go off of in order to do that properly and I will do my best to get an official baseline when it comes to doing that if I can.

 

1 nail == 1 unit_iron

 

That seems to be the least common denominator.

 

That is why I have added a weight of 10 to forged Iron.

Because an item or block does not need "Weight" when a recipe for it exists.

 

These two don't match up then. Since forgedIron has a recipe:

<recipe name="forgedIron" count="1" scrapable="False" craft_area="forge" material_based="true">
   <ingredient name="unit_clay" count="5"/>
   <ingredient name="unit_iron" count="10"/>
</recipe>

it shouldn't need a weight property.

 

The scrapable attribute was for when we could dismantle ammo etc.

 

That's what I thought. So it doesn't do anything now?

 

It is the material that determines what an item scraps to. Specifically the forge_category attribute in the material and the relevant recipe:

<recipe name="cloth" count="1" scrapable="False" tooltip="ttScrapMetalBrass" >

<wildcard_forge_category />

</recipe>

 

(side note, the tool tip is wrong on this recipe? :) )

 

Ah, ok. and the extra categories are for the scrappable but not forgeable things (paper, leather, cloth).

 

So wildcard_forge_category means "anything with the same forge category as me scraps to me"?

Link to comment
Share on other sites

 

That was for the ladder and metal trussing, those weights needed to be changed to stop infinite loop exploit.

 

I also had to add weight of 5 to short metal pipe otherwise you get 10 units of iron in the forge for 1 short metal pipe then you can craft 1 forged iron using the 10 units of iron then craft 2 short metal pipes then place them in the forge and get 20 units of iron then craft 2 forged iron then craft 4 short metal pipes etc etc etc.

 

It turns out I did not technically need to add weights to the forged Iron and forged steel but the pipes are a must!

 

Any time a recipe uses a count of more than 1 for the output item or block a weight must be added to the corresponding recipe output to adjust for that!

Link to comment
Share on other sites

That was for the ladder and metal trussing, those weights needed to be changed to stop infinite loop exploit.

 

I also had to add weight of 5 to short metal pipe otherwise you get 10 units of iron in the forge for 1 short metal pipe then you can craft 1 forged iron using the 10 units of iron then craft 2 short metal pipes then place them in the forge and get 20 units of iron then craft 2 forged iron then craft 4 short metal pipes etc etc etc.

 

It turns out I did not technically need to add weights to teh forged Iron and forged steel but the pipes are a must!

 

The real problem here is multiple-output recipes. Besides the fact that the UI for them is poor (since the list doesn't tell you how many it makes until it's in the queue), a lot of them have been broken forever in terms of balance. I remember metal trusses were the iron multiplying exploit back in Alpha 10.

 

Apparently the auto-weight code doesn't take multiple outputs into account either. So just change the pipe recipe to make 1 pipe, and the weight is automagically fixed. This is easier to do now for things like trusses and ladders, since you don't have to draw the shape anymore.

 

Here's what I've found out with experiments with shelving:

storeShelving01 is craftable (10 forged iron). It melts to 32 iron with weight=32. It melts to 100 iron with no weight for it or forgedIron. Setting weight=10 on forgedIron doesn't change anything.

 

storeShelving01Top is not craftable. It melts to 32 iron with weight=32, and just sits there in the forge with the weight removed.

 

I asked earlier about barbed fences. They don't scrap because they have their own category:

<material id="barbedFence">

it should probably have a forge_category of iron.

 

So for something to be scrappable/forgeable, it has to a) be made of a material with a forge_category, so the game knows what it turns into, and b) either have a chain of recipes leading back to something with a weight, or have a weight itself.

 

I didn't know items had materials before. For items, is the material used for anything else besides forge_category?

 

EDIT: I removed weight from wrench. It's made of pipes, which are made of forgedIron, and it does auto-calculate the weight correctly (7 pipes * 1 pipe/forgedIron * 10 iron/forgedIron = 70 iron). So it does go through multiple levels.

 

Also, you keep editing your posts to say the same thing I'm in the middle of saying :)

 

EDIT2: Classes are starting back up for me, so I'm not going to be able to work much on my block editor project for a while. So I've tagged and uploaded what I've completed to date, if anyone wants to use it or hack on it. I'm open to pull requests. https://github.com/smaeul/7DaysToolbox/releases/tag/v0.1-alpha

Link to comment
Share on other sites

Lol :)

 

Well now is the time to get these issues out in the open so they can hopefully get addressed!

 

Anything that does not get addressed in the next update I will make sure to get it fixed.

 

For now I will put the fixing on hold and wait for the next update as I will have a lot of work to do when it comes to comparing files and making sure anything that did not get addressed gets fixed for as many people as possible.

Link to comment
Share on other sites

Hi

 

I've check the full changelog and I don't see anything regarding campfire and forge duplicate bug ao I assume the duplicate bug do still have a chance to occur even with your xml files pack am I correct?

 

Yeah the duplication bug has nothing to do with the xml coding that will have to be fixed by TFP and that will be no easy task and probably not a high priority since that bug can reoccur after each update depending on what features get added or changed.

 

These fixes only fix weight values that cause infinite loop exploits of placing items and resources into the forge. And all of those are fixed. Well obviously not the only thing it fixes but at least in regards to "duping" or exploiting.

Link to comment
Share on other sites

It looks like as you get higher quality spiked club you get lower chances for bleeding. correct me if I'm wrong about this, please.

 

 

 

 

<item id="3" name="clubSpiked">

<property name="Meshfile" value="Items/Weapons/Melee/Club/Club_Wood_Spiked" />

<property name="Material" value="metal" />

<property name="HoldType" value="2" />

<property name="Stacknumber" value="1" />

<property name="RepairTools" value="forgedIron" />

<property name="Degradation" value="200" param1="true" />

<property name="SoundDestroy" value="wooddestroy1" />

<property name="FuelValue" value="16" />

<property name="Weight" value="15" />

<property class="Action0">

<!-- AttackAction -->

<property name="Class" value="Melee" />

<property name="Delay" value="1.33" />

<property name="Range" value="2.2" />

<property name="Sphere" value="0.3" />

<property name="Sound_start" value="swoosh" />

<property name="Stamina_usage" value="8" />

<property name="Buff" value="bleeding,criticalBlunt" />

<property name="Buff_chance" value=".5,.4" />

<property name="DamageBonus.head" value="6" />

<property name="DamageBonus.glass" value="25" />

</property>

<property class="Attributes">

<property name="EntityDamage" value="12,30" />

<property name="BlockDamage" value="3,13" />

<property name="DegradationMax" value="100,600" />

<property name="DegradationRate" value="2,1" />

</property>

<property name="CritChance" value=".4" />

<property name="Group" value="Ammo/Weapons" />

<property class="Preview">

<property name="Zoom" value="8" />

<property name="Pos" value="-0.1,-0.7" />

</property>

<property name="DescriptionKey" value="clubSpikedDesc"/>

<property name="ActionSkillGroup" value="Blunt Weapons"/>

<property name="CraftingSkillGroup" value="Weapon Smithing"/>

</item>

 

 

Edit, I realize now that the first percentage is for the bleeding buff and the second is for the criticalBlunt buff

Link to comment
Share on other sites

It looks like as you get higher quality spiked club you get lower chances for bleeding. correct me if I'm wrong about this, please.

 

 

 

 

<item id="3" name="clubSpiked">

<property name="Meshfile" value="Items/Weapons/Melee/Club/Club_Wood_Spiked" />

<property name="Material" value="metal" />

<property name="HoldType" value="2" />

<property name="Stacknumber" value="1" />

<property name="RepairTools" value="forgedIron" />

<property name="Degradation" value="200" param1="true" />

<property name="SoundDestroy" value="wooddestroy1" />

<property name="FuelValue" value="16" />

<property name="Weight" value="15" />

<property class="Action0">

<!-- AttackAction -->

<property name="Class" value="Melee" />

<property name="Delay" value="1.33" />

<property name="Range" value="2.2" />

<property name="Sphere" value="0.3" />

<property name="Sound_start" value="swoosh" />

<property name="Stamina_usage" value="8" />

<property name="Buff" value="bleeding,criticalBlunt" />

<property name="Buff_chance" value=".5,.4" />

<property name="DamageBonus.head" value="6" />

<property name="DamageBonus.glass" value="25" />

</property>

<property class="Attributes">

<property name="EntityDamage" value="12,30" />

<property name="BlockDamage" value="3,13" />

<property name="DegradationMax" value="100,600" />

<property name="DegradationRate" value="2,1" />

</property>

<property name="CritChance" value=".4" />

<property name="Group" value="Ammo/Weapons" />

<property class="Preview">

<property name="Zoom" value="8" />

<property name="Pos" value="-0.1,-0.7" />

</property>

<property name="DescriptionKey" value="clubSpikedDesc"/>

<property name="ActionSkillGroup" value="Blunt Weapons"/>

<property name="CraftingSkillGroup" value="Weapon Smithing"/>

</item>

 

 

The .5 is for bleeding and the .4 is for criticalBlunt.

Link to comment
Share on other sites

I have implemented your changes on our systems and noticed an immediate difference with how the game behaves. It seems more stable. We are around day 59. The hordes are epic now, where before they were hit or miss. Was chased by three lumberjacks the other day, then fought off a horde later to have 5 ferals just trashing our base. By the time we brought them all down, we were very low on resources. Then later when we were doing repairs, we must have been too "hot" from the fight with the horde because we triggered a screamer and it started all over again. Ended up hopping on our bikes and riding to a backup base to save our skins. We are only playing with medium spawn and were still kept on our toes with a stable game. It was the craziest 2 days I've ever played in the game. Finding a lot of stuff now I've never found looting before and finding rares more consistently too. I salute you on a job well done. I would have paid for a fix like this! The pimps should put you on payroll, even if all you do is implement patches.

Link to comment
Share on other sites

I have implemented your changes on our systems and noticed an immediate difference with how the game behaves. It seems more stable. We are around day 59. The hordes are epic now, where before they were hit or miss. Was chased by three lumberjacks the other day, then fought off a horde later to have 5 ferals just trashing our base. By the time we brought them all down, we were very low on resources. Then later when we were doing repairs, we must have been too "hot" from the fight with the horde because we triggered a screamer and it started all over again. Ended up hopping on our bikes and riding to a backup base to save our skins. We are only playing with medium spawn and were still kept on our toes with a stable game. It was the craziest 2 days I've ever played in the game. Finding a lot of stuff now I've never found looting before and finding rares more consistently too. I salute you on a job well done. I would have paid for a fix like this! The pimps should put you on payroll, even if all you do is implement patches.

 

 

I am very happy to hear that, thank you for the feedback it is greatly appreciated!

 

There is a few things here and there that still need addressing but those things are merely a few balance changes for some weight values that have only been recently brought to my attention nothing exploitative or game breaking.

 

However I will not be making any more major changes now until the next patch is released, as I suspect many of these fixes have been addressed.

 

Thanks again!

 

- - - Updated - - -

 

Update (1/21/16)

 

+Items

 

pufferCoat: Fixed changed <property name="RepairTools" value="cloth" /> from leather since this item uses a material of cloth and the tailoring skill

Link to comment
Share on other sites

The leatherDuster has a weight value of 5 ,but takes 20 leather to make.

 

Leather also has a weight value of 5. If you scrap the duster you only get 1 leather.

 

Recommend changing duster to weight value of 80. That is a 20% loss when scrapping.

Link to comment
Share on other sites

Yeah I will go through and thoroughly check all the weight values of items and blocks after the next update, for now I will be stopping any further updates unless it is an exploit or more of a serious matter.

 

But if if anyone finds anything just make sure to keep posting it here and I will be sure not to miss it when I go through the files after the next update.

 

Thanks! :)

Link to comment
Share on other sites

<item id="765" name="flamingArrow">
<property name="Meshfile" value="Items/Weapons/Ranged/Bows/WoodenBow/flamingArrowPrefab" />
<property name="DropMeshfile" value="Items/Misc/arrow_flaming_dropped" />
<property name="HandMeshfile" value="Items/Misc/arrow_flaming_hand" />
<property name="HoldType" value="32" />
<property name="Material" value="wood" />
<property name="Stacknumber" value="250" />
<property name="FuelValue" value="8" />
[color="#B22222"]<property name="DamageBonus.head" value="6" />
<property name="DamageBonus.glass" value="25" />
<property name="DamageBonus.wood" value="2" />
<property name="DamageBonus.earth" value="0.1" />
<property name="DamageBonus.metal" value="0.1" />
<property name="DamageBonus.cloth" value="0.5" />[/color]
<property class="Action1">
<property name="Class" value="Projectile" />
<property name="Explosion.ParticleIndex" value="0" />
<property name="Velocity" value="75" />
<property name="FlyTime" value="0.15" />
<property name="LifeTime" value="12" />
<property name="ActionExp" value="30" />
<property name="ActionExpBonusMultiplier" value="10" />
</property>
<property name="Group" value="Ammo/Weapons" />
<property class="Attributes">
<property name="GetQualityFromWeapon" value="true" />
<property name="EntityDamage" value="25,55" />
<property name="BlockDamage" value="7,12" />
<property name="ApplyBuff" value="1, 1" param1="burning" />
</property>
<property name="ActionSkillGroup" value="Archery" />
<property name="CraftingSkillGroup" value="Weapon Smithing" />
</item>

 

All other arrows have the damagebonus properties in action1 so presumably flamingarrows do no extra damage with headshots because of this (didn't test it)

Link to comment
Share on other sites

This was something I was originally going to post and totally forgot. It's a bug with the mining helmet flashlight. It always works fine until you exit and then reload the game and then it quits working. A "fix" I do, is if you remove it from your head and put it back in your inventory, when you put it back on again, the flashlight will start working again. Not sure what placing it in inventory has to do with anything, but maybe it would give you an idea about whats wrong with the code. Thanks again!

Link to comment
Share on other sites

This was something I was originally going to post and totally forgot. It's a bug with the mining helmet flashlight. It always works fine until you exit and then reload the game and then it quits working. A "fix" I do, is if you remove it from your head and put it back in your inventory, when you put it back on again, the flashlight will start working again. Not sure what placing it in inventory has to do with anything, but maybe it would give you an idea about whats wrong with the code. Thanks again!

 

I don't believe that is going to be a xml edit to fix this. I think it is a game engine mechanic that needs to be addressed by the developers.

FYI, you don't need to put it in your inventory. If you click on the item, drag it off the slot and put it back then it works again as well. Something about this seems to reset the light.

Link to comment
Share on other sites

Archived

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

×
×
  • Create New...