Starbound patch format examples

Ignore what I have to teach you and I will mock you in public.

Snippet: Adding a default blueprint

player.config.patch
[
  { "op" : "add", "path" : "/defaultBlueprints/tier1/-",
    "value" : { "item" : "shroomtable" }
  }
]

Removing a blueprint

Unfortunately, you can't (?) remove a specific item by name, because the item ID is a value and you can only refer keys and indices.

minimal example
{
  "defaultBlueprints" : {
    "tier1" : [
      { "item" : "mininglantern" },
      { "item" : "copperarmorhead" },
      { "item" : "copperarmorchest" },
      { "item" : "copperarmorpants" },
      { "item" : "darkwoodmaterial" },
      { "item" : "yarnspinner" }
    ]
  }
}
[
  { "op" : "remove", "path" : "/defaultBlueprints/tier1/4" }
  //Removes darkwoodmaterial, assuming the default list doesn't change.
]

Template: Villager

villager.npctype.patch
[
  //SMALL TALK
  //From other species NPCs to a myspecies PC
  { "op" : "add",
    "path" : "/scriptConfig/converse/dialog/apex/myspecies",
    "value" : [
      "Do not come too close to me. I have fleas."
      //More lines, vicar?
    ]
  },
  { "op" : "add",
    "path" : "/scriptConfig/converse/dialog/floran/myspecies",
    "value" : [
      "Example looks ssssstupid!"
    ]
  },

  //From a myspecies NPC to other PC
  { "op" : "add",
    "path" : "/scriptConfig/converse/dialog/myspecies",
    "value" : {
      //If the PC is of an otherwise unsupported species...
      "default" : [
        "You came this far to visit?"
      ],
      "apex" : [
        "Minikong? Is that a smaller Apex?"
      ],
      //If both NPC and PC are myspecies
      "myspecies" : [
        "Always good to see another one of us!"
      ]
    }
  },

  //RESPONSES
  //These can be left out to use default fallback lines.
  { "op" : "add",
    "path" : "/scriptConfig/flee/dialog/helpme/myspecies",
    "value" : [
      "Heeeelp!"
    ]
  },
  { "op" : "add",
    "path" : "/scriptConfig/flee/dialog/helpthem/myspecies",
    "value" : [
      "What have you done!?"
    ]
  },
  { "op" : "add",
    "path" : "/scriptConfig/flee/dialog/encourage/myspecies",
    "value" : [
      "Get 'em!"
    ]
  },

  //COSTUMES AND SUCH
  { "op" : "add",
    "path" : "/items/myspecies",
    "value" : [
      //Each of these blocks limits to a given level, specified in dungeon NPC brushes.
      [0, [
        //Each of these blocks is a single overall costume choice.
        {
          //A random entry is picked from each of these lists.
          "chest" : [
            { "name" : "conceptchest", "data" : { "colorIndex" : 1 } },
            { "name" : "shirtshort1chest", "data" : { "colorIndex" : 1 } },
            { "name" : "shirtlong1chest", "data" : { "colorIndex" : 1 } },
          ],
          "legs" : [
            { "name" : "jeans1legs", "data" : { "colorIndex" : 1 } },
          ]
        }
      ] ]
    ]
  }
]

Template: Merchant

merchant.npctype.patch
[
	//LINES
  { "op" : "add",
    "path" : "/scriptConfig/returnToStore/dialog/follow/myspecies",
    "value" : [
      "Follow me to my store, please."
    ]
  },
  { "op" : "add",
    "path" : "/scriptConfig/returnToStore/dialog/welcome/myspecies",
    "value" : [
      "Does anything catch your eyes?"
    ]
  },
  { "op" : "add",
    "path" : "/scriptConfig/returnToStore/dialog/tout/myspecies",
    "value" : {
      //Each block is another species for yours to react to.
      "default" : [
        "I got the best goods!"
      ],
      "myspecies" : [
        "I got the best goods!"
      ]
    }
  },
  { "op" : "add",
    "path" : "/scriptConfig/merchant/dialog/start/myspecies",
    "value" : {
      //Each block is another species for yours to react to.
      "default" : [
        "Stuff for sale!"
      ]
    }
  },
  { "op" : "add",
    "path" : "/scriptConfig/merchant/dialog/end/myspecies",
    "value" : {
      //Each block is another species for yours to react to.
      "default" : [
        "Let's do business again."
      ]
    }
  },

  //STOCK
  //These can be referenced in dungeon files' NPC brushes.
  { "op" : "add",
    "path" : "/scriptConfig/merchant/items/myspecies_samplecategory",
    "value" : [
      //The 0 is the minimal tier for this set to appear on.
      [ 0, [
        { "item": { "name": "cheese" }, "cost": 5 },
        { "item": { "name": "tomato" }, "cost": 5 },
        { "item": { "name": "wheat" }, "cost": 5 },
        { "item": { "name": "corn" }, "cost": 5 }
      ] ]
    ]
  },

  //COSTUMES
  //As with the villager.
  { "op" : "add",
    "path" : "/items/myspecies",
    "value" : [
      [0, [
        {
          "chest" : [
            { "name" : "kimonochest", "data" : { "colorIndex" : 1 } },
          ],
          "legs" : [
            { "name" : "kimonolegs", "data" : { "colorIndex" : 1 } },
          ]
        }
      ] ]
    ]
  }
]

Comments

lol