The first time Pyrotech is loaded, it will generate some data and prompt you to reload.


Ore Compatibility System

When Pyrotech is loaded, it will derive some data based on the contents of pre-defined oredicts and save that data to a file: core.compat.Ore-Generated.json. This file will be overwritten each time Pyrotech loads in order to provide the user with any generated changes.

When this file is created, it will also create another file if it doesn't already exist: core.compat.Ore-Custom.json. When the custom file is first created, it is simply a copy of the generated file. The custom file is the data that Pyrotech actually uses and will never be overwitten.

The data in the custom file is used to generate slag and bloomery recipes automatically.

Pre-defined Oredicts

These are the oredicts that Pyrotech uses when it creates core.compat.Ore-Generated.json. If your ore does not have an entry in one of these oredicts with a corresponding nugget entry in the nugget* oredict, you will have to add it to the core.compat.Ore-Custom.json file manually.

oreAluminum
oreArdite
oreCobalt
oreCopper
oreGold
oreIridium
oreIron
oreLead
oreMithril
oreNickel
oreOctine
oreOsmium
orePlatinum
oreSilver
oreSyrmorite
oreTin
oreUranium

Ore Compat Entries

"oreGold": {
  "slagColor": "fcee4b",
  "langKey": [
    "minecraft:tile.oreGold"
  ],
  "output": [
    "minecraft:gold_nugget:0"
  ]
}

An entry in the ore compat file, shown above, consists of an oredict key, a hexidecimal slag color, a list of lang keys, and a list of output items.

The oredict key, oreGold in the example, must correspond to an existing oredict as it will be used for the bloomery recipe's input.

The slagColor is a hexidecimal string without the #. This defines the color used for the generated slag.

The langKey entries are strings in the format (domain):(key). The domain is added by the generator and is useful for determining which mod a lang key came from. The domain is purely optional if you're adding entries manually. Entries in the format (key) will work just fine so long as the key is a valid, existing lang key. The first valid lang key found in the list will be the lang key used for the generated content.

Hint

Use the command, /ptlang, to copy the lang key for a held item to the clipboard.

The output list defines a recipe output for the generated recipes. These strings are in the familiar item string format (domain):(path):(meta). Again, like the lang key list, the first item from the list that is valid will be used for the output of generated recipes. You can select which item you want to use by moving it to the top of the list or deleting all other entries.

Adding Slag Only

Note

It is recommended that you try to implement your compat using the compat files discussed above.

If you would like to just generate some slag, however, use the module.tech.Bloomery.Slag-Custom.json file.

The module.tech.Bloomery.Slag-*.json files are an artifact from before the ore compat was implemented. The custom file is still relevant, meaning it will still generate slag items. The generated file, however, won't have any contents because the mod doesn't use it to generate its slag anymore.

{
  "registryName": "gold",
  "langKey": "tile.oreGold",
  "color": "fcee4b"
}

A slag entry, shown above, consists of a registry name, lang key, and hexadecimal color. The registryName is used to register the slag, the langKey is used to derive the display names of the slag, and the color is used to color the slag.

Adding Bloomery Recipes

Note

If you're using the ore compat files, you don't need to add Bloomery recipes; they will be added for you.

See this page for docs and examples for the Bloomery ZenScript.