Skip to content

Recipes

Strengthening recipes define target matching, economy cost, star limits, base success rates, required materials, effects, and actions. Recipe files are placed in recipes/*.yml, and the file name is normally used as the recipe id.

Top-level fields

FieldDescription
idUnique recipe id.
display_nameDisplay name.
gui_templateGUI template id.
economyEconomy cost configuration for each attempt.
limitsMaximum star, temper limit, and chance cap.
success_ratesBase success chance for each target star.
matchRules used to decide which items can use this recipe.
name_actionsGlobal name operations applied after success.
lore_actionsGlobal lore operations applied after success.
starsPer-star material, effect, and action definitions.

Economy

yaml
economy:
  enabled: true
  currencies:
    - provider: "vault"
      currency_id: ""
      base_cost: 320
      cost_formula: "%base_cost% * %star%"
      display_name: "<gold>Coins</gold>"

cost_formula can reference variables such as %base_cost% and %star%.

Limits

yaml
limits:
  max_star: 12
  max_temper: 4
  temper_chance_bonus_per_level: 5.0
  success_chance_cap: 90.0
FieldDescription
max_starMaximum reachable star.
max_temperMaximum temper level accumulated from failures.
temper_chance_bonus_per_levelSuccess chance bonus per temper level.
success_chance_capUpper success chance after all bonuses.

Match rules

yaml
match:
  slot_groups:
    - "weapon"

Common match rules include slot_groups, lore_contains, and stats_any. Keep match rules clear and specific so that one item does not accidentally match multiple incompatible recipes.

Success rates

yaml
success_rates:
  1: 100.0
  2: 95.0
  3: 90.0
  4: 80.0
  5: 70.0

Keys represent the target star, and values are percentages. Temper bonuses are applied after the base rate and are capped by limits.success_chance_cap.

Star example

yaml
stars:
  1:
    effects:
      - type: "variables"
        variables:
          physical_attack: 4
      - type: "lore_action"
        lore_actions:
          - action: "append"
            content:
              - "<gray>Physical Damage: <gold>+4</gold></gray>"
    materials:
      - item_sources:
          - "minecraft-copper_ingot"
        amount: 1
      - item_sources:
          - "minecraft-gunpowder"
        amount: 2

  2:
    effects:
      - type: "variables"
        variables:
          physical_attack: 4
      - type: "lore_action"
        lore_actions:
          - action: "replace_line"
            anchor: "Physical Damage:"
            content:
              - "<gray>Physical Damage: <gold>+8</gold></gray>"
    materials:
      - item_sources:
          - "minecraft-copper_ingot"
        amount: 1

Effect types

TypeDescription
variablesExpression variables used by lore, name/lore templates, and placeholder context. They do not automatically become Attribute PDC attributes.
ea_attributeExplicit EmakiAttribute PDC attribute payload.
es_skillEmakiSkills skill attachment; payload uses the es_skills list.
lore_actionLore operation.
name_actionItem name operation.

Current effect boundaries:

  • variables only provide text, placeholder, and operation-template context.
  • Real attribute output must be configured explicitly with type: "ea_attribute" and ea_attributes.
  • Skill attachments use type: "es_skill", while concrete skill ids are stored in the es_skills list.

Notes

  • Use high success rates for early stars and gradually increase material cost.
  • Use protection materials for high-risk levels when item downgrade or destruction is enabled by recipe logic.
  • Prefer replace_line for repeated stat lines to avoid duplicate lore.
  • Test old strengthened items after changing recipe ids or match rules.