Advanced Rocketry Recipe Configuration



Welcome to the Advanced Rocketry advanced recipe configuration readme!

Since Advanced Rocketry 1.5.0, resource packs are the preferred way to configure recipes for Advanced Rocketry. Advanced Rocketry provides its own recipe types; one for each machine. Each recipe type has essentially the same tags. The recipe types are as follows:

  • rollingmachine
  • precisionassembler
  • electricarcfurnace
  • cuttingmachine
  • chemicalreactor
  • electrolyser
  • crystallizer

Each of these types create a recipe for the corresponding machine. In Advanced Rocketry 1.5.0+ for Minecraft 1.12, both the XML recipes and JSON recipes will be accepted. Recipes added as a resource pack may be saved in XML.

This document will guide you through manually adding recipes to AR's various machines.
Each machine will generate a "MACHINENAME.xml" in the config/advancedRocketry folder with an empty set of "Recipes" tags.

Due to the complexity of recipes allowed in AdvancedRocketry's machines, the tags for the JSON may look a little different.

Below is a sample JSON that takes one bone and 10mb of nitrogen then converts it to 8 bonemeal and 10mb of water in the chemical reactor:

{
    "type": "advancedrocketry:chemicalreactor",
    "itemingredients":
    [
        {
            "item": "minecraft:bone"
        }
    ],
    "fluidingredients":
    [
        {
            "fluid": "nitrogen",
            "amount": 10
        }
    ],
    "time": 100,
    "energy": 1,
    "itemresults":
    [
        {
            "item": "minecraft:dye",
            "data": 15,
            "count": 8
        }
    ],
    "fluidresults":
    [
        {
            "fluid": "water",
            "amount": 10
        }
    ]
}
  • itemingredients: itemstack ingredients that are to be used as the recipe input. These work just like shapeless recipes except you CAN use the count tag here to specify the minimum accepted stacksize.
  • fluidingredients: Fluids used in the recipe input. These tags are AR specific. Like itemingredients, it is an array, however each element must use the "fluid" tag and "amount" tag to specify the fluid type and amount. This uses the fluid dictionary
  • itemresults: Item outputs go here. Just like itemingredients, this is an array of items.
  • fluidresults: Fluid outputs go here. Just like fluidingredients, this is an array of objects containing "fluid" and "amount"
  • time: Amount of time the recipe takes in ticks. It is also number of seconds multiplied by 20. If you want it to take 5 seconds, then time should be 100 because 100 ticks = 5seconds * 20 ticks per second.
  • energy: Amount of energy per tick this recipe consumes. Total amount of energy is this tag multiplied by the number entered for time.

Explanation of usable tags for XML:

The "Recipe" tag surrounds each recipe entry, this tag contains the "timeRequired" and "power" attributes, which determines the amount of time in ticks and the power consumption in RF/t respectively.

Each recipe node must contain an input and output node.

Each input node and output node must contain at least one of the following:

  • "itemStack" node: <itemStack>"namespace:unlocallized_name" OR "blockid/itemid" [size] [meta]</itemStack> where size and meta are optional
  • "oreDict" node: <oreDict>"oreDictionaryName" [size] </oreDict> where size (the stack size) is optional
  • "fluidStack" node: <fluidStack>"fluidName" [size] </fluidStack> where size (the number of millibuckets) is optional

Example (2 spruce logs and five iron ore makes 1 gold ore)

--- ./config/advancedRocketry/CuttingMachine.xml ---
<Recipes>
    <Recipe timeRequired="10" power="50">
        <input>
            <itemStack>minecraft:log 2 1</itemStack>
            <oreDict>oreIron 5</oreDict>
        </input>
        <output>
            <itemStack>minecraft:gold_ore</itemStack>
        </output>
    </Recipe>
</Recipes>