Modding Help Remove commands in a file in a .patch?

Discussion in 'Starbound Modding' started by soopytwist, Jul 24, 2016.

  1. soopytwist

    soopytwist Pangalactic Porcupine

    Okay, I know how to change a value in a config file (in a .patch file) e.g.

    [{"op":"add","path":"/maxStack","value":25}]

    In potato.consumable and adding .patch extension to the file name. But how do you remove or comment out a command using the same principle?

    I'd like to remove the "rottingMultiplier" command from all food items. I can do this manually but then the mod would be incompatible with future updates to the game so the .patch method would be better.

    Any ideas how to do this?

    Would [{"op":"add","path":"/rottingMultiplier","value"://1.0}] work? i.e commenting out the value with the "//"? Or would I need to comment out the whole "rottingMultiplier" : 1.0 line?

    FYI setting rottingMultiplier to 0.0 causes that item to rot instantaneously. A higher number works to a certain degree but appears to mess with the text strings for that item, plus it causes stackable items not to stack because they're still at different levels of rotting, despite the longer time to rot.
     
  2. The | Suit

    The | Suit Agent S. Forum Moderator

  3. soopytwist

    soopytwist Pangalactic Porcupine

    Hmm, okay I see it. not to sure how to work this this array though:

    {
    "itemName" : "bakedpotato",
    "rarity" : "Common",
    "price" : 100,
    "category" : "preparedFood",
    "inventoryIcon" : "bakedpotato.png",
    "description" : "Crispy on the outside, hot as molten lava on the inside.",
    "shortdescription" : "Baked Potato",
    "foodValue" : 20,
    "tooltipKind" : "food",
    "builder" : "/items/buildscripts/buildfood.lua",
    "maxStack" : 1,
    "itemAgingScripts" : ["/scripts/items/rotting.lua"],
    "rottingMultiplier" : 1.0,
    "blockingEffects" : [
    "wellfed"
    ]
    }

    So if I want to change the maxStack I just put:

    [{"op":"replace","path":"/maxStack","value":25}]

    And if I want to remove rottingmultiplier I put:

    [{"op":"remove","path":"/rottingMultiplier","value":1.0}]

    ? Does that remove just the value or the whole rottingMultiplier command line?

    So in my bakedpotato.consumable.patch I have this:

    [{"op":"replace","path":"/maxStack","value":25}]
    [{"op":"remove","path":"/rottingMultiplier","value":1.0}]

    And that'll work? I've not tested this yet.
     
  4. The | Suit

    The | Suit Agent S. Forum Moderator

    Read the full thing - especially the part in orange in the first paragraph.
     
  5. soopytwist

    soopytwist Pangalactic Porcupine

    Invalid JSON: parse error on everything I paste in there, even after removing comment tags ("\\")
     
  6. Inf_Wolf14

    Inf_Wolf14 Parsec Taste Tester

    Lets see:
    Code:
    [
      { "op" : "replace",
        "path" : "/maxStack",
        "value" : 25 },
      { "op" : "remove",
        "path" : "/rottingMultiplier",
        "value" : 1.0 }
    ]
    
    The square brackets contain the whole of your patch. You should only have one set at the beginning and end of the file.
    Separate the operations with curly braces and separate operations by using a comma after you close one curly brace to start another.

    I can't say anything to your patch working like you expect, but that should fix most of the validation.

    What The | Suit is trying to do is get you to study the tutorials until you can figure out your error yourself. :)
    Of course, we can help you out here, but you'll come much farther when you can troubleshoot solo. ;)
     
  7. soopytwist

    soopytwist Pangalactic Porcupine

    [{
    "op" : "replace",
    "path" : "/foodDelta/0/baseValue",
    "value" : -0.0
    }]

    This doesn't work, it doesn't crash the game it just doesn't stop the hunger bar.
    --- Post updated ---
    This works in the chatbubbles.config.patch though:

    [
    { "op" : "replace",
    "path" : "/maxAge",
    "value" : 5 }
    ]

    EDIT

    And this doesn't stop the loosing of pixels on death either (I just set it to 0 to test):

    [
    { "op" : "replace",
    "path" : "/survival/3/reviveCostPercentile",
    "value" : 0.0 }
    ]

    reviveCostPercentile is the third one down under "survival" (not counting "generic", "liquid", "material" and "consumable" under deathDropItemTypes.
     
    Last edited: Jul 25, 2016
  8. Mackinz

    Mackinz The Waste of Time

    That's because you didn't format the path correctly.

    You can use my mod to customize your difficulties.
     
  9. soopytwist

    soopytwist Pangalactic Porcupine

    Not sure what I did but following your guide above for the food items all food items have turned into Perfectly Generic items (green cubes). I even got an achievement for picking them up. If I go to the shop at the Outpost all the food there are Perfectly Generic items too. Good thing I backed-up my save because I've totally screwed the game up.
    --- Post updated ---
    Okay. Reset. Making a patch file of rotting.config doesn't work, it messes the game up as above, turning all food into Perfectly Generic items for some really weird reason. So I left the rotting.config file in as a non-patch file. It looks like this:

    {
    "baseTimeToRot" : 10800,
    "rottedItem" : "rottenfood",

    "rotTimeDescriptions" : [ //freshness text removed as food no longer rots
    [300, "^red;^reset;"],
    [1800, "^orange;^reset;"],
    [3600, "^yellow;^reset;"],
    [10800, "^green;^reset;"],
    [999999, "^green;^reset;"]
    ]
    }

    Good luck turning that into a patch file!

    This works for changing stack sizes and removing the rotting values:

    [
    { "op" : "replace",
    "path" : "/maxStack",
    "value" : 25 },
    { "op" : "remove",
    "path" : "/rottingMultiplier",
    "value" : 1.0 }
    ]

    But still can only stack food items if they're picked-up at the same time. If you spawn food items then wait a moment before picking them then they don't stack. Even though rotting is now disabled.

    And this in the playermodes.config works:

    [
    { "op" : "replace",
    "path" : "/survival/reviveCostPercentile",
    "value" : 0.05 },
    { "op": "replace",
    "path": "/survival/deathDropItemTypes",
    "value" : [ "generic" ] }
    ]

    And I also changed the text string on the respawn screen to reflect the 5% instead of 30% charge for respawning. 5% might seem like a pretty low number - it's place holder until I decide how much money I can stand being lost every time I die and since the difficulty level is all over the place right now this might be often, so 5% seems like a good start to me.

    This works for having NPC speech bubbles stick around for longer than 3 damn seconds:

    [
    { "op" : "replace",
    "path" : "/maxAge",
    "value" : 5 }
    ]

    This though, for removing (or changing to lower value such as -0.0200, doesn't seem to work so perhaps the path is wrong? I can't figure it out:

    [
    { "op" : "replace",
    "path" : "/foodDelta/baseValue",
    "value" : -0.0000 }
    ]

    If the value is changed in a non-patch file it works, do it via a .patch as above and it doesn't work, hunger still goes down at the vanilla amount. I've tried really high values too.

    This is part of the full code in the player.config file:

    "stats" : {
    "maxHealth" : {
    "baseValue" : 100.0
    },
    "healthRegen" : {
    "baseValue" : 0.0
    },
    "maxEnergy" : {
    "baseValue" : 100.0
    },
    "energyRegenPercentageRate" : {
    "baseValue" : 0.585 // 1.75 second recharge time (STABLE)
    // "baseValue" : 0.5 // 2 second recharge time
    // "baseValue" : 0.45 // 2.25 second recharge time
    // "baseValue" : 0.4 // 2.5 second recharge time
    },
    "energyRegenBlockTime" : {
    "baseValue" : 1.5
    },
    "foodDelta" : {
    "baseValue" : -0.0583 // -70 food over 20 minutes

    etc...

    Should the path be /foodDelta/baseValue or /stats/foodDelta/baseValue? Or maybe /statusControllerSettings/stats/foodDelta/baseValue, since the foodDelta code appears to branch off from statusControllerSettings in the full thing.

    I've tried them all, none of them work.
     
    Last edited: Jul 26, 2016
  10. but guys inside the pdb files it was only text NUL ,SOH ,DC thats it but i didnt know what did it saying
     
  11. xaliber

    xaliber Scruffy Nerf-Herder

Share This Page