Skip to content

Process Blueprints Reference

Process blueprints are the core crafting definitions in CraftingEngine. Stored as YAML files inside plugins/CraftingEngine/processes/, they define multi-stage crafting workflows, item requirements, tools, catalysts, and station conditions.


1. Top-Level Schema Structure

id: "infernal_blade"
name: "<gradient:#ff4500:#ff8c00>Infernal Greatsword</gradient>"
priority: 10
station_id: "example_runic_forge"
close_gui_on_craft: true
cancel_on_gui_close: false
policies:
multiplayer: "INDIVIDUAL" # INDIVIDUAL | CO_OP
failure: "REFUND_INPUTS" # DESTROY_INPUTS | REFUND_INPUTS | PRODUCE_FAILURE_OUTPUTS
obtaining: "DROP_IN_INVENTORY" # DROP | DROP_IN_WORLD | DROP_IN_INVENTORY | INTERACTION
abandonment:
max_distance: 6.0
grace_period_ticks: 60
tool_breakage:
allow_hotbar_swap: true
grace_period_ticks: 40
requirements:
capabilities:
- "high_temperature"
- "forging"
stations:
- "example_runic_forge"
conditions:
- id: "night_time"
environment: "minecraft"
condition: "time_between"
args: ["13000", "23000"]
inputs:
- resource: "minecraft:netherite_ingot"
quantity: 3
mode: "CONSUME"
- resource: "minecraft:blaze_rod"
quantity: 2
mode: "CONSUME"
tools:
- resource: "minecraft:netherite_pickaxe"
quantity: 1
catalysts:
- resource: "minecraft:lava_bucket"
quantity: 1
mode: "PRESERVE"
triggers:
- type: "INTERACTION"
stages:
# See Stages & Transitions Guide for stage details
- id: "heating"
duration: "4s"
- id: "hammering"
mode: "MANUAL_ACTION"
action_type: "LEFT_CLICK_BLOCK"
required_strikes: 6
outputs:
- resource: "minecraft:netherite_sword"
display: "<gradient:#ff4500:#ff8c00><b>Infernal Greatsword</b></gradient>"
quantity: 1
type: "SUCCESS"

2. Detailed Field Specifications

Identity & Presentation

  • id (String, Required): Unique identifier used in commands, APIs, and GUI matrix binders.
  • name (String, Optional): Formatted display name supporting Adventure MiniMessage tags (gradients, hover text, hex colors).
  • priority (Integer, Default: 0): Controls sorting order in workstation recipe browser menus. Higher values appear first.
  • station_id (String, Optional): Restricts crafting to a specific workstation definition.

Operational Policies (policies)

  • multiplayer:
    • INDIVIDUAL: Only the initiating player can interact with and progress the crafting stages.
    • CO_OP: Allows multiple nearby players with valid tools to contribute strikes or actions.
  • failure:
    • REFUND_INPUTS: Returns all consumed inputs back to player inventory or drops them safely.
    • DESTROY_INPUTS: Deletes materials upon failure (hardcore crafting).
    • PRODUCE_FAILURE_OUTPUTS: Generates specific failure scrap (e.g. Slag, Charcoal).
  • obtaining:
    • DROP_IN_INVENTORY: Automatically places finished outputs into player inventory. Drops on ground if inventory is full.
    • DROP_IN_WORLD: Spawns physical dropped item entity on top of the workstation block.
    • INTERACTION: Leaves the output hovering or resting on the station until the player right-clicks to collect it.
  • abandonment:
    • max_distance: Distance in blocks the player can move away before abandonment countdown starts.
    • grace_period_ticks: Delay in server ticks (20 ticks = 1 second) before an abandoned craft is cancelled.
  • tool_breakage:
    • allow_hotbar_swap: If a player’s tool breaks mid-craft, allows swapping to an identical tool from their hotbar without aborting the process.
    • grace_period_ticks: Time window allowed to perform the hotbar tool swap.

Requirements (requirements)

  • capabilities: List of capability IDs (e.g. heating, cooling, crushing) that the workstation must actively satisfy.
  • stations: List of allowed workstation IDs or vanilla block materials (e.g. blacksmith_anvil, minecraft:cauldron).
  • conditions: Environmental checks evaluated before starting the process:
    • minecraft: Time of day, weather, biome, light level, height (Y coordinate).
    • worldguard: Region membership or flag verification.
    • papi: Custom PlaceholderAPI condition expressions.

Resources: Inputs, Tools & Catalysts

Inputs (inputs)

Materials required and modified by the process:

  • resource: Namespaced item identifier (Vanilla minecraft:iron_ingot, or external ia:custom_steel, oraxen:mythic_gem, eb:energy_core).
  • quantity: Amount required.
  • mode:
    • CONSUME (Default): Item is subtracted upon process start or stage consumption.
    • PRESERVE: Item must be present in inventory/station but is not consumed.

Tools (tools)

Equipment required in hand to perform the craft. Tools undergo durability checks and can optionally take damage per action or stage.

Catalysts (catalysts)

Support items (e.g., fuel cells, reusable molds, runic lenses) that must be present in the station or nearby inventory without being consumed.


Triggers (triggers)

Defines how a process is initiated:

  • INTERACTION: Player right-clicks the workstation block.
  • COMMAND: Triggered via /cfe process start <id>.
  • EVENT: Triggered by external Bukkit events (block break, entity kill, item drop).
  • AUTOMATIC: Ticked automatically when valid ingredients are placed into hopper or multiblock containers.
  • API: Initiated via developer Java API plugins.

3. Instant vs Multi-Stage Crafting

  • Instant Crafting: When the stages: block is omitted or left empty, the craft executes instantaneously. Players can shift-click to craft maximum stacks at once.
  • Multi-Stage Crafting: When stages: are declared, CraftingEngine initiates an active process instance with state tracking, holograms, timers, and step-by-step physical transformations.

Next Steps