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
| Field | Description |
|---|---|
id | Unique recipe id. |
display_name | Display name. |
gui_template | GUI template id. |
economy | Economy cost configuration for each attempt. |
limits | Maximum star, temper limit, and chance cap. |
success_rates | Base success chance for each target star. |
match | Rules used to decide which items can use this recipe. |
name_actions | Global name operations applied after success. |
lore_actions | Global lore operations applied after success. |
stars | Per-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| Field | Description |
|---|---|
max_star | Maximum reachable star. |
max_temper | Maximum temper level accumulated from failures. |
temper_chance_bonus_per_level | Success chance bonus per temper level. |
success_chance_cap | Upper 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.0Keys 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: 1Effect types
| Type | Description |
|---|---|
variables | Expression variables used by lore, name/lore templates, and placeholder context. They do not automatically become Attribute PDC attributes. |
ea_attribute | Explicit EmakiAttribute PDC attribute payload. |
es_skill | EmakiSkills skill attachment; payload uses the es_skills list. |
lore_action | Lore operation. |
name_action | Item name operation. |
Current effect boundaries:
variablesonly provide text, placeholder, and operation-template context.- Real attribute output must be configured explicitly with
type: "ea_attribute"andea_attributes. - Skill attachments use
type: "es_skill", while concrete skill ids are stored in thees_skillslist.
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_linefor repeated stat lines to avoid duplicate lore. - Test old strengthened items after changing recipe ids or match rules.