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 TypeFolder
forgingdata/recipes/ingots/
alloysdata/recipes/alloys/
circuitsdata/recipes/circuits/
crystalsdata/recipes/Crystals/
otherdata/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

FieldTypeRequiredDescription
typestringβœ…Craft type slug. Determines which crafting station processes this recipe.
outputstring (registry key)βœ…Registry key of the item produced.
outputAmountintegerβœ…Number of output items produced per craft.
time_secondsintegerβœ…Time in seconds to complete one craft cycle.
inputsarrayβœ…List of ingredient items. Each entry: { "id": "<registry key>", "amount": <integer> }
requires.skillstring (registry key)NoRegistry key of the skill required. Omit if no skill requirement.
requires.levelintegerNoMinimum skill level required.

Crafting Time Guide

time_secondsMeaning
0 – 15Instant or very fast β€” basic materials
15 – 60Short β€” common ingots
60 – 300Medium β€” uncommon materials
300 – 1200Long β€” 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.