A recipe defines a crafting formula β ingredients, output quantity, craft time, and optional skill requirement. Recipes are organized by craft type in folders under data/recipes/.
Craft Type β Folder Mapping
| Craft Type | Folder |
forging | data/recipes/ingots/ |
alloys | data/recipes/alloys/ |
circuits | data/recipes/circuits/ |
crystals | data/recipes/Crystals/ |
| other | data/recipes/misc/ |
JSON Shape
{
"type": "forging",
"output": "mypack:ingot_iron",
"outputAmount": 1,
"requires": {
"skill": "mypack:forging",
"level": 1
},
"time_seconds": 30,
"inputs": [
{ "id": "mypack:ore_iron", "amount": 3 },
{ "id": "mypack:ore_coal", "amount": 1 }
]
}
Field Reference
| Field | Type | Required | Description |
type | string | β
| Craft type slug. Determines which crafting station processes this recipe. |
output | string (registry key) | β
| Registry key of the item produced. |
outputAmount | integer | β
| Number of output items produced per craft. |
time_seconds | integer | β
| Time in seconds to complete one craft cycle. |
inputs | array | β
| List of ingredient items. Each entry: { "id": "<registry key>", "amount": <integer> } |
requires.skill | string (registry key) | No | Registry key of the skill required. Omit if no skill requirement. |
requires.level | integer | No | Minimum skill level required. |
Crafting Time Guide
| time_seconds | Meaning |
0 β 15 | Instant or very fast β basic materials |
15 β 60 | Short β common ingots |
60 β 300 | Medium β uncommon materials |
300 β 1200 | Long β rare materials |
1200+ | Very long β high-tier exotic materials |
Example β Basic Ore-to-Ingot (No Skill)
{
"type": "forging",
"output": "mypack:ingot_copper",
"outputAmount": 1,
"time_seconds": 15,
"inputs": [
{ "id": "mypack:ore_copper", "amount": 1 },
{ "id": "mypack:ore_coal", "amount": 1 }
]
}
Example β Intermediate Ingot (Skill Required)
{
"type": "forging",
"output": "mypack:ingot_uranium",
"outputAmount": 1,
"requires": {
"skill": "mypack:forging",
"level": 3
},
"time_seconds": 180,
"inputs": [
{ "id": "mypack:ore_uranium", "amount": 2 },
{ "id": "mypack:ore_coal", "amount": 5 }
]
}
Example β Alloy Recipe
{
"type": "alloys",
"output": "mypack:alloy_xenite_uranium",
"outputAmount": 1,
"requires": {
"skill": "mypack:alloying",
"level": 6
},
"time_seconds": 600,
"inputs": [
{ "id": "mypack:ingot_uranium", "amount": 1 },
{ "id": "mypack:ingot_xenite", "amount": 2 },
{ "id": "mypack:ore_coal", "amount": 8 }
]
}
Design Tips
- Chain your materials. Design a clear progression: ore β ingot β alloy β equipment.
- Match craft time to rarity. Common materials: 15β60s. Legendary: 10+ minutes.
- Use skill level as a gate. Lock key recipes behind skill levels to prevent progression skipping.