Jump to content

Question about limitations.


Recommended Posts

Hi all,

I recently decided to give 7d2d a go after almost half a decade of last playing/attempting modding it...

After the initial excitement of walking about in a familiar yet refreshed environment..old minor annoyances started to surface..some of which i am sure are shared amongst everyone. 

Anyway,  to cut a long story short, Google is no help in finding the info i am looking for (unless i was looking to read through 5 years of patch notes) and any decent information is buried within articles from 2015 and 404's

So I was wondering if any of the elders of the board could recall any of the hardcoded limitations having being changed over the years?

examples of the types of limitations i'm referring to:

-There can only be 1 recipe per item at any given time.

-An items 'Action' can only have a single result.

The info would really help me (and any new ppl thinking of potentially modding 7d2d) save a lot of time trying to figure out what can and can't be achieved given that some of them are not imposed by Unity itself.

Thanks in advance. :)
 

Link to comment
Share on other sites

8 hours ago, DW420 said:

Hi all,

I recently decided to give 7d2d a go after almost half a decade of last playing/attempting modding it...

After the initial excitement of walking about in a familiar yet refreshed environment..old minor annoyances started to surface..some of which i am sure are shared amongst everyone. 

Anyway,  to cut a long story short, Google is no help in finding the info i am looking for (unless i was looking to read through 5 years of patch notes) and any decent information is buried within articles from 2015 and 404's

So I was wondering if any of the elders of the board could recall any of the hardcoded limitations having being changed over the years?

examples of the types of limitations i'm referring to:

-There can only be 1 recipe per item at any given time.

-An items 'Action' can only have a single result.

The info would really help me (and any new ppl thinking of potentially modding 7d2d) save a lot of time trying to figure out what can and can't be achieved given that some of them are not imposed by Unity itself.

Thanks in advance. :)
 

Hey, you can have more than one recipe for one item - check out cloth recipes - one made of cotton, the other made from plant fibers (after learning the recipe by reading the Wasteland treasures magazine). Items "Action" can actually have several results, but I guess it mainly depends on what kind of results you would expect. Take the edible items that can boost couple of your stats as an example, several stats can be boosted at once, not just one. If you could figure out how to exploit this feature to expand it with other "actions", you could possibly achieve something more with it.

Link to comment
Share on other sites

Thats odd..i'm pretty sure i had my recipes correct...but the game would throw an xml error...guess i have to go back and look what i did wrong.

I basically want to be able to collect liquids from the environment...its a pet peeve since last time i played the game.
eg. sap from trees, wine from wine barrels, petrol from gas pumps, dirty water from loos, clean water from water coolers etc etc

as you already know...i came up short with managing to assign multiple "action1" to the jar (which would be the simplest way to do it)

i then looked into turning a gas pump into a forge that doesn't use fuel and can only accept glass jars as input..with a single jar->gasjar recipe available...(i even made "tools".. namely a hose, filter and pump) but as i mentioned before the recipe would throw an xml error.

I know the latter is a lot more work (windows.xml etc needs to be edited with a custom nofuel forge, custom versions of gaspumps, sinks need to be made etc) but i've fallen in love with the idea that I would have to stick around teh gas pump and extract the petrol/gasoline...and wouldnt mind spending some of my free time on it.

(i chose the forge so that one can bail out and still get something out of the gas pump...other workbenches seem to output items in one go X amount of time later)

 

Link to comment
Share on other sites

heres my recipes.xml contents..to me everything seems ok...if anyone wants to play find Waldo/Wally i'd be thankful.


<configs>
<append xpath="/recipes">

<recipe name="toolSiphonHose" count="1">
    <ingredient name="casinoCoin" count="50"/>
</recipe>

<recipe name="toolSiphonFilter" count="1">
    <ingredient name="casinoCoin" count="50"/>
</recipe>

<recipe name="toolSiphonPump" count="1">
    <ingredient name="casinoCoin" count="50"/>
</recipe>

<recipe name="drinkJarBoiledWater" count="1" craft_area="cntGasPump" craft_tool="toolSiphonHose,toolSiphonFilter">
    <ingredient name="drinkJarEmpty" count="1"/>
</recipe>

<recipe name="drinkJarRiverWater" count="1" craft_area="cntGasPump" craft_tool="toolSiphonHose">
    <ingredient name="drinkJarEmpty" count="1"/>
</recipe>

<recipe name="GasJar" count="1" craft_area="cntGasPump" craft_tool="toolSiphonHose">
    <ingredient name="drinkJarEmpty" count="1"/>
</recipe>

</append>
</configs>



It keeps throwing me a NullRef Exception : Object reference not set to an instance of an object.
Link to comment
Share on other sites

and here's my blocks.xml --the only reference that could proc the exception is the cntGasPump  (?)

<configs>
<!--Remove GasPump  entry-->
<remove xpath="/blocks/block[@name='cntGasPump']"/>
    
<append xpath="/blocks">
<!--Append new GasPump entry -->
<block name="cntGasPump">
    <property name="Class" value="Workstation"/>
    <property name="Material" value="Mmetal_thin"/>
    <property name="Shape" value="Ext3dModel"/> <property name="Texture" value="293"/>
    <property name="Mesh" value="models"/>
    <property name="Path" value="solid"/>
    <property name="Model" value="Industrial/gas_pump" param1="main_mesh"/> <property name="Place" value="TowardsPlacerInverted"/>
    <property name="DisplayType" value="blockMulti"/>
    <property name="MultiBlockDim" value="1,2,1"/>
    <property name="ImposterExchange" value="imposterDontBlockCTRPlate" param1="90"/>
    <property name="IsTerrainDecoration" value="true"/>
    <property class="Explosion">
        <property name="ParticleIndex" value="4"/> <!-- which prefab/particle is used -->
        <property name="RadiusBlocks" value="5"/> <!-- damage radius for blocks -->
        <property name="BlockDamage" value="5000"/> <!-- damage for blocks in the center of the explosion -->
        <property name="RadiusEntities" value="3"/> <!-- damage radius for entities -->
        <property name="EntityDamage" value="150"/> <!-- damage for entities in the center of the explosion -->
    </property>
    <drop event="Harvest" name="terrStone" count="0" tool_category="Disassemble"/>
    <drop event="Harvest" name="resourceElectricParts" count="2,7" tag="salvageHarvest"/>
    <drop event="Harvest" name="resourceElectricParts" count="0,4" tag="salvageHarvest"/>
    <drop event="Harvest" name="resourceMechanicalParts" count="2,4" tag="salvageHarvest"/>
    <drop event="Destroy" count="0"/>
    <property name="LPHardnessScale" value="0"/> <!-- disable LP for TNT blocks -->
    <property name="EconomicValue" value="400"/> <!-- disassemble value -->
    <property name="FilterTags" value="floot,ffurniture"/>
    
    <property class="Workstation">
            <property name="Modules" value="tools,output"/>
    </property>
    <property name="WorkstationIcon" value="ui_game_symbol_chemistry"/>
    <property name="CraftActionName" value="lblContextActionCraft"/>
    <property name="CraftIcon" value="ui_game_symbol_chemistry"/>
    <property name="OpenSound" value="forge_open"/>
    <property name="CloseSound" value="forge_close"/>
    <property name="CraftSound" value="chem_station_mix_click"/>
    <property name="CraftCompleteSound" value="chem_station_complete_item"/>
</block>
</append>
<!-- GasPump  -->
</configs>

Link to comment
Share on other sites

and lastly...just to cover all bases...my items.xml (for the items referenced in the recipes).  
 

  
<append xpath="/items">
<item name="toolSiphonPump">
    <property name="CustomIcon" value="420JarWine"/>
    <property name="HoldType" value="45"/>
    <property name="Meshfile" value="#Other/Items?Misc/sackPrefab.prefab"/>
    <property name="DropMeshfile" value="#Other/Items?Misc/sack_droppedPrefab.prefab"/>
    <property name="Material" value="MmechanicalParts"/>
    <property name="Weight" value="10"/>
    <property name="Stacknumber" value="1"/> <!-- STK resource -->
    <property name="EconomicValue" value="100"/>
    <property name="Group" value="Tools/Traps"/>
    <property name="DisplayType" value="toolSiphonPump"/>
    <effect_group tiered="false">
        <passive_effect name="CraftingSmeltTime" operation="perc_add" value="-.666"/> <!-- this is essentially a multiplier -->
        <display_value name="dCraftingSmeltTime" value=".5"/>
    </effect_group>
</item>

<item name="toolSiphonHose">
    <property name="CustomIcon" value="420JarCofee"/>
    <property name="HoldType" value="45"/>
    <property name="Meshfile" value="#Other/Items?Misc/sackPrefab.prefab"/>
    <property name="DropMeshfile" value="#Other/Items?Misc/sack_droppedPrefab.prefab"/>
    <property name="Material" value="MresourceScrapPolymers"/>
    <property name="Weight" value="2"/>
    <property name="Stacknumber" value="1"/> <!-- STK loot -->
    <property name="EconomicValue" value="1"/>
    <property name="Group" value="Tools/Traps"/>
    <property name="DisplayType" value="toolSiphonHose"/>
    <effect_group tiered="false">
        <passive_effect name="CraftingTime" operation="perc_add" value="-.333"/>
        <display_value name="dCraftingTime" value=".5"/>
    </effect_group>
</item>

<item name="toolSiphonFilter">
    <property name="CustomIcon" value="420JarWaterClean"/>
    <property name="HoldType" value="45"/>
    <property name="Meshfile" value="#Other/Items?Misc/sackPrefab.prefab"/>
    <property name="DropMeshfile" value="#Other/Items?Misc/sack_droppedPrefab.prefab"/>
    <property name="Material" value="Morganic"/>
    <property name="Weight" value="5"/>
    <property name="Stacknumber" value="1"/>
    <property name="Group" value="Tools/Traps"/>
    <property name="EconomicValue" value="50"/>
    <property name="SellableToTrader" value="false"/>
</item>    

<item name="GasJar">
    <property name="CustomIcon" value="GasJar"/>
    <property name="Tags" value="gasoline"/>
    <property name="HoldType" value="3"/>
    <property name="Meshfile" value="#Other/Items?Food/bottled_waterPrefab.prefab"/>
    <property name="DropMeshfile" value="#Other/Items?Misc/sack_droppedPrefab.prefab"/>
    <property name="Material" value="Mglass"/>
    <property name="Weight" value="10"/>
    <property name="Stacknumber" value="10"/> <!-- STK resource -->
    <property name="FuelValue" value="1"/>
    <property name="EconomicValue" value="10"/> <!-- oil barrel 500 -->
    <property name="EconomicBundleSize" value="100"/>
    <property name="Group" value="Resources,Chemicals,CFChemicals"/>
    <property class="UMA">
            <property name="OverlayTints" value="C7D5BA" />
    </property>
</item>
</append>   
Link to comment
Share on other sites

Ugh... If you're willing to go this far, you may as well try something simpler. Just create a fake empty jar which would really be a one time use harvesting tool with a special tag, then add harvest drop event to wineBarrel (and other blocks you want to "harvest"), fill in the liquids you want to harvest from them and then set the tag to match your fake empty jar. I haven't tested this, but if it worked, you would probably end up with a simpler solution that is much closer to your original idea lol

Link to comment
Share on other sites

8 minutes ago, Gazz said:

You would have to do at least 1 point of damage to get a harvest amount.

You know, the old wine barrels... Who knows how long they have been collecting dust, sometimes their sealing is stuck and you have to kinda break it to get it open...

Link to comment
Share on other sites

9 hours ago, mr.devolver said:

Ugh... If you're willing to go this far, you may as well try something simpler. Just create a fake empty jar which would really be a one time use harvesting tool with a special tag, then add harvest drop event to wineBarrel (and other blocks you want to "harvest"), fill in the liquids you want to harvest from them and then set the tag to match your fake empty jar. I haven't tested this, but if it worked, you would probably end up with a simpler solution that is much closer to your original idea lol

its not that much work tbh (so far anyways)....the rest of the blocks are just a repeating of the process due for the gas pump... and by replacing the loot containers with "siphoning workstations" ...they will be used in pois without further editing.

I might need to dig deeper into the forums for info (there were a couple of threads about custom forge/workbenches but none mentioned anything about changing the class of a vanilla item...all talks were about introducing new blocks into the game) but the more i think of how gameplay would be affected by it VS simply using an 'action' ..the more attracted i am to it.

If i were to "guess" where the issue is ...i would say its my blocks.xml  ...i couldn't find a working way to change the "class" value from loot to workshop and then append the workstation code...so i've tried removing the whole entry and appending the modified version.

I guess i will have to do the xmls again one by one, simplifying w/e i can even more (as few edits as possible)...just to make sure everything is in order.
 

Link to comment
Share on other sites

so..i followed the example here:


a) Word for word (excluding the color tags)...the example workbench shows ingame...but no interaction is possible.
b) changed references of windowToolsResearchTable to windowToolsworkstationResearchTable in the example ...no interaction was possible.

c) Word for word (without excluding the color tags) ...(to cover all bases) ...threw an error due to the color tags. :)

At this point i'm either going to give up...or just look for mods that introduce custom workbenches to study from. I can't find any kind of tutorial /thread that doesn't seem to hold archaic information 😕

 

Link to comment
Share on other sites

Ugh ...so my issue was....missing a capitalised letter...which it seems was an error carried over from copy/pasting code from examples. ....if i manage to get this right...i'm so making a tutorial for dummies...from dummies.

edit@ gas pumps in my game are now workstations :D giggidy giggidy :)

Link to comment
Share on other sites

Hello again...got another quick fire set of questions about 18.4 (sorry for being a pain...but getting info that isn't from 2016 is hard.) :)

Do the following lines function in 18.4? If not...is there a way to achieve similar results?

 

    <property class="UMA">
            <property name="OverlayTints" value="8A0032" />
    </property> 

used it to apply a tint on the drinkJar texture..but without luck )

    <property name="DisplayInfo" value="Siphoned Gas Jar"/>

(used it to change the display name when one hovers over the item..but without luck )

 

PS.I feel the need to apologise ahead of time for the amount of questions i am asking (and the ignorance that might show with some of them) , please be patient with me ..as most of these are going to help me create a proper tutorial on how a dummy like me can create a custom block or item and put it in the game.

Link to comment
Share on other sites

Archived

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

×
×
  • Create New...