Recipes
Forge recipes define blueprint requirements, material entries, capacity, quality rules, result items, metadata operations, and actions. Recipe files are stored in recipes/*.yml.
Main fields
| Field | Description |
|---|---|
id | Unique recipe id. |
display_name | Recipe display name. |
forge_capacity | Total capacity limit for materials. |
blueprint_requirements | Required blueprint items. |
materials | Required or optional material entries. |
optional_material_limit | Maximum optional material types. |
quality | Quality pool and guarantee configuration. |
result | Output item, metadata actions, and result actions. |
action | Pre, success, and failure actions. |
permission | Optional permission requirement. |
Target-input mode
When the result does not create a separate output item, Forge rebuilds the forge layer on the player's target equipment. This is useful for reforging or adding extra stats to an existing item.
Fixed-output mode
When result.item_sources is configured, Forge creates the configured output item on success.
Quality configuration
yaml
quality:
enabled: true
custom_pool: []
guarantee:
enabled: true
attempts: 60
minimum: "flawless"Result metadata actions
result.meta_actions executes name and lore operations on the result item after a successful forge.
yaml
result:
item_sources:
- "minecraft-diamond_sword"
meta_actions:
name_actions:
- action: "append_suffix"
value: " <gray>[%quality_name%]</gray>"
lore_actions:
- action: "append"
content:
- ""
- "<gray>Quality: <white>%quality_name%</white></gray>"
- "<gray>Forged by: <white>%player_name%</white></gray>"Available template variables
| Variable | Description |
|---|---|
%quality% | Quality id. |
%quality_name% | Quality display name. |
%quality_multiplier% | Full quality multiplier key. |
%multiplier% | Short quality multiplier variable. |
%player_name% | Name of the player who performed the forge. |
%player_uuid% | UUID of the player who performed the forge. |
{<stat_id>} | Any variable injected through material effects. |
Minimal example
yaml
id: "flame_sword"
display_name: "<red>Flame Sword</red>"
forge_capacity: 10
blueprint_requirements:
- item_sources:
- "minecraft-paper"
amount: 1
materials:
- item_sources:
- "minecraft-blaze_rod"
amount: 3
capacity_cost: 5
effects:
- type: "variables"
variables:
fire_damage: 10
- type: "lore_action"
lore_actions:
- action: "append"
content:
- "<red>Fire Damage: +%fire_damage%</red>"
optional_material_limit: 2
quality:
enabled: true
custom_pool: []
result:
item_sources:
- "minecraft-diamond_sword"
meta_actions:
name_actions:
- action: "append_suffix"
value: " <gray>[%quality_name%]</gray>"
lore_actions:
- action: "append"
content:
- ""
- "<gray>Quality: <white>%quality_name%</white></gray>"
- "<gray>Forged by: <white>%player_name%</white></gray>"
action:
success:
- 'sendmessage text="<green>Flame power infused into the weapon."'Action nodes
| Node | Trigger |
|---|---|
action.pre | Before recipe execution. |
action.success | After successful forge. |
action.failure | After failed forge. |
result.actions | When the result is generated or applied. |