Skip to content
Thermal Series

Thermal Series

Generated page, edit scripts/gen_schema_pages.py instead.

Thermal Series recipes (1.20.1), pkl4mc dialect.

Thermal isn’t open source, verified against decompiled bytecode (CFR) from the actual jars in a real modpack instance (thermal_foundation/expansion/dynamics/integration, plus thermal_core which ships jar-in-jar inside thermal_foundation’s META-INF/jarjar/). All 14 standard machines share one generic recipe shape (MachineRecipeSerializer in cofh.thermal.lib.util.recipes), same input/output/energy/experience fields, item vs. fluid auto-detected per entry. Only insolator differs (adds a water field). The 3 *_catalyst types are a separate concept (chance/energy modifiers for existing recipes when a bonus item is present), modeled separately.

energy_mod/water_mod (scale-the-default-instead-of-setting-an-absolute-value) are not exposed, set energy/water directly instead.

Usage

amends "@pkl4mc/thermal_recipes.pkl"

Example

recipes
// Thermal Series recipes - one example per machine type.
// Each entry becomes `<name>.json` under this file's directory.
amends "@pkl4mc/thermal_recipes.pkl"

furnace {
  new {
    name = "example_furnace_iron_ingot"
    inputs { new { item = "minecraft:raw_iron" } }
    outputs { new { item = "minecraft:iron_ingot" } }
  }
}

sawmill {
  new {
    name = "example_sawmill_planks"
    inputs { new { tag = "minecraft:logs" } }
    outputs { new { item = "minecraft:oak_planks"; count = 6 } new { item = "minecraft:stick"; count = 1; chance = 0.25 } }
  }
}

pulverizer {
  new {
    name = "example_pulverizer_iron_dust"
    inputs { new { tag = "forge:ores/iron" } }
    outputs { new { item = "thermal:iron_dust"; count = 2 } new { item = "minecraft:cobblestone"; chance = 0.2 } }
  }
}

pulverizer_recycle {
  new {
    name = "example_pulverizer_recycle_iron_dust"
    inputs { new { item = "thermal:iron_dust" } }
    outputs { new { item = "minecraft:raw_iron" } }
  }
}

smelter {
  new {
    name = "example_smelter_bronze_ingot"
    inputs {
      new { tag = "forge:ingots/copper"; count = 3 }
      new { tag = "forge:ingots/tin" }
    }
    outputs { new { item = "thermal:bronze_ingot"; count = 4 } }
    energy = 4000
  }
}

smelter_recycle {
  new {
    name = "example_smelter_recycle_bronze_ingot"
    inputs { new { item = "thermal:bronze_ingot" } }
    outputs {
      new { item = "minecraft:copper_ingot"; count = 3; chance = 1.0; locked = true }
      new { item = "thermal:tin_ingot"; chance = 1.0; locked = true }
    }
  }
}

centrifuge {
  new {
    name = "example_centrifuge_sludge"
    inputs { new { item = "thermal:sludge" } }
    outputs {
      new { item = "minecraft:dirt"; chance = 0.5 }
      new { item = "minecraft:clay_ball"; chance = 0.1 }
      new { item = "minecraft:gravel"; chance = 0.1 }
    }
  }
}

press {
  new {
    name = "example_press_iron_plate"
    inputs { new { item = "minecraft:iron_ingot" } }
    outputs { new { item = "thermal:iron_plate" } }
  }
}

crucible {
  new {
    name = "example_crucible_molten_iron"
    inputs { new { item = "minecraft:iron_ingot" } }
    outputs { new { fluid = "thermal:iron"; amount = 144 } }
  }
}

chiller {
  new {
    name = "example_chiller_iron_ingot"
    inputs { new { fluid = "thermal:iron"; amount = 144 } }
    outputs { new { item = "minecraft:iron_ingot" } }
  }
}

refinery {
  new {
    name = "example_refinery_separate_oil"
    inputs { new { fluid = "thermal:refined_oil"; amount = 100 } }
    outputs {
      new { fluid = "thermal:naphtha"; amount = 40 }
      new { fluid = "thermal:fuel"; amount = 60 }
    }
  }
}

pyrolyzer {
  new {
    name = "example_pyrolyzer_charcoal"
    inputs { new { tag = "minecraft:logs" } }
    outputs {
      new { item = "minecraft:charcoal" }
      new { fluid = "thermal:creosote"; amount = 20 }
    }
  }
}

bottler {
  new {
    name = "example_bottler_water_bucket"
    inputs {
      new { item = "minecraft:bucket" }
      new { fluid = "minecraft:water"; amount = 1000 }
    }
    outputs { new { item = "minecraft:water_bucket" } }
  }
}

brewer {
  new {
    name = "example_brewer_honey_water"
    inputs {
      new { fluid = "thermal:water"; amount = 250 }
      new { item = "minecraft:honey_bottle" }
    }
    outputs { new { fluid = "thermal:honeyed_water"; amount = 250 } }
  }
}

crystallizer {
  new {
    name = "example_crystallizer_certus_quartz"
    inputs { new { fluid = "thermal:redstone"; amount = 100 } }
    outputs { new { item = "minecraft:redstone"; count = 4 } }
  }
}

insolator {
  new {
    name = "example_insolator_wheat_seeds"
    inputs { new { item = "minecraft:wheat_seeds" } }
    outputs {
      new { item = "minecraft:wheat_seeds"; count = 2 }
      new { item = "minecraft:wheat"; chance = 0.5 }
    }
    water = 20
  }
}

pulverizer_catalyst {
  new {
    name = "example_pulverizer_catalyst_sand"
    ingredient { item = "minecraft:sand" }
    primaryMod = 1.1
    useChance = 0.5
  }
}

smelter_catalyst {
  new {
    name = "example_smelter_catalyst_flux"
    ingredient { item = "thermal:flux_dust" }
    energyMod = 0.9
  }
}

insolator_catalyst {
  new {
    name = "example_insolator_catalyst_fertilizer"
    ingredient { item = "minecraft:bone_meal" }
    secondaryMod = 1.5
    minChance = 0.1
  }
}