Files
wiki/Crafting-Guide-Data-Format-V2.md
T

85 lines
3.8 KiB
Markdown

Version 2 of the Crafting Guide file format is a very simple command-based language which is very similar to [YAML](http://www.yaml.org). There are commands for entering all various kinds of data needed to describe a mod, its items, and the recipes for those items. Most commands are optional, and can be entered in any order. Anywhere this isn't true will be called out below.
## Example
```yaml
schema: 2
name: Applied Energistics 2
version: rv1-stable-1
description: Crafting recipes from Applied Energistics, by AlgorithmX2
item: 128³ Spatial Component
recipe:
input: Glowstone Dust, 16³ Spatial Component, Engineering Processor
pattern: 010 121 010
tools: Crafting Table
item: Cable Anchor
recipe:
input: Iron Ingot
pattern: ... .0. ...
quantity: 3
tools: Nether Quartz Cutting Knife
recipe:
input: Tin Ingot
pattern: ... .0. ...
quantity: 3
tools: Nether Quartz Cutting Knife
item: Certus Quartz Crystal
gatherable: yes
```
## Command Reference
* `schema: <version>` _(required)_
The data schema used by the file. The current version is: 2.
* `name: <mod name>` _(required)_
The name of the mod described in the file. This should be the full name of the mod as referred to in
its own documentation; only use abbreviations if they are as commonly used as the full name itself
(e.g., "IC2").
* `version: <mod version>` _(required)_
The version of the mod being described by the file. This should use whatever version scheme is used
by the mod itself, and should match whatever is shown in the in-game "Mods" screen.
* `item: <item name>`
Starts and item declaration. The item name should be the item's actual in-game name. Spelling,
punctuation (if any), and spaces are relevant. Extended UTF-8 characters are permitted.
This command should be used once for each item in the mod. You should avoid using it to declare any
items from vanilla Minecraft, or from other mods as these will already be added by other files.
After an item declaration, the following commands may be used to describe it: `gatherable`, `recipe`.
* `gatherable: [yes|no]`
Indicates whether an item may be gathered in-game without crafting (e.g., Iron Ore can be gathered,
but Iron Ingots cannot). If an item is gatherable, then it will never be crafted, even if it has
recipes listed (e.g., Diamonds will never be crafted, even though they could be made from Diamond
Blocks).
* `recipe:`
Starts a recipe declaration. This should be repeated once for each unique way of making the given
item. Due to limitations with the crafting algorithm, the following rules should be followed when
entering recipes:
1. Do not enter multiple recipes for alternate ingredients. For example, sticks can be made from
any combination of any kind of planks (e.g., Oak Wood Planks, Spruce Planks). When entering a
recipe for such an item, simply choose a variant of the ingredients and enter a single recipe
using that variant (e.g., only use Oak Wood Planks).
2. Break cycles using `gatherable`. For example, IndustrialCraft adds a recipe to make String from
Wool. Minecraft, however, already has a recipe for making Wool from String. This creates a cycle
which can cause an infinite loop in crafting. Avoid such loops by marking the appropriate
item(s) as `gatherable`
3. Put the most basic recipe first. For example, with Mekanism, Iron Ingots can be produced in many
different ways, each yielding more and more iron. Recipes should be listed in order from least
to most complex.
4. Put the highest yielding recipe first. Where all recipes are of equivalent complexity (e.g.,
producing Rose Red from Poppies or Rose Bushes), place the recipe which produces the most first.