EmakiStrengthen | Equipment Star Enhancement & Branch Growth
Drive equipment from +0 to +N through a fully configurable star-enhancement system: per-star materials and odds, tempering that builds up on failure, protection materials, multiple failure outcomes, nested branch growth, milestone skills, live previews and
📖About EmakiStrengthen | Equipment Star Enhancement & Branch Growth
EmakiStrengthen is a GUI-based equipment enhancement module for the Emaki series. Players place a piece of gear and the required materials into the enhancement table, the module rolls the success chance for the target star, and the result is written directly into the equipment's PDC strengthen layer — then rebuilt into the final name and lore by EmakiCoreLib. Every star, every material, every success rate, every failure outcome and every branch is defined in YAML, so you control exactly how deep and how punishing the enhancement curve feels.
Nothing is hard-coded. A single recipe can run from +1 all the way to a configurable maximum star, hand out independent materials and odds at each step, unlock new attributes and skills at milestone stars, fork into multiple growth branches, and broadcast high-star achievements to the whole server. Attribute gains are only real when you declare them explicitly, so display text and real combat stats never drift apart.

Key Highlights
- Per-star configuration, down to every step — Each star tier defines its own materials, success rate, attribute gains, skills, name/lore changes and success/failure actions. The default recipe ships a complete +1 to +12 curve with materials that scale from 1 copper ingot up to 16, gunpowder from 2 up to 32, plus echo shards and nether ingredients at high stars.
- Tempering that rewards persistence — Every failed attempt accumulates tempering levels that raise your next success chance (default +5% per level), up to a configurable cap (default 4 levels), with a final success-rate ceiling (default 90%). Specific materials can grant bonus tempering on top.
- Protection materials — Mark a material as protection and a failure no longer downgrades or destroys the item. The default recipe uses a gold nugget that is only checked, not consumed (amount -1) and fully optional, so players can choose whether to play it safe.
- Failure is not all-or-nothing — On failure you choose per recipe: keep the current star, downgrade by a configurable number of stars, reset, or destroy the item — each with its own action hooks.
- Nested branch growth — A recipe can fork at a chosen star into multiple named branches, and branches can fork again. Each branch writes its own attributes, skills and display, and the chosen path is locked into the item state.
- Milestone attributes and skills — Milestone stars unlock brand-new stat lines and bind skills. The default recipe unlocks crit rate at +5, bonus damage at +8, crit damage at +10, and armor penetration plus an ultimate skill at +12.
- Live preview before every attempt — The enhancement GUI shows the current success rate, cost and required materials before the player commits.
- Guaranteed success safety net — An optional guarantee triggers a forced success after a configurable number of consecutive failures, then resets the counter.
Feature Overview
Star system and success rates
- Star levels run from +1 to a per-recipe maximum (
limits.max_star, default 12 in the sample). - A global success-rate table acts as the fallback; any recipe can override the rate for each individual star.
- The default curve: +1 and +2 at 100%, +3 at 95%, +5 at 75%, +7 at 45%, +9 at 22%, +10 at 14%, +11 at 8%, +12 at 4% — a smooth, tunable difficulty ramp.
success_chance_caplimits the final rate after tempering bonuses are added (default 90%), so even a heavily tempered attempt keeps a margin of risk.
Per-star stage configuration
- Every star is its own block with: an optional milestone
name, aneffectslist, requiredmaterials, and success/failureactions. - Materials are listed per star with
item_sourcesandamount; the default recipe scales material counts at every single star for a real material sink. - A material with
amount: -1is only checked for possession, not consumed; combine it withoptional: trueso players are never forced to hold it.
Five effect types per star
variables— expression-engine variables used for lore rendering and templates; they do not write real attributes on their own.ea_attribute— explicitly writes real EmakiAttribute PDC stats (e.g. physical attack, crit rate). Real combat power only comes from this, so display and reality never silently diverge.es_skill— binds an EmakiSkills skill at that star (the sample binds a crit passive at +5 and an ultimate at +12).lore_action— edits the item lore.name_action— edits the item name.
Tempering (forge marks)
- Failed attempts build tempering levels that raise the next success chance by a configurable amount per level.
max_tempercaps how high tempering can stack;success_chance_capcaps the final boosted rate.- A
temper_boostmaterial can add extra tempering levels when inserted (the sample uses a potion at +12). - A
%temper_color%placeholder turns the tempering line red when above zero and green otherwise, for instant visual feedback in lore.
Lore and name growth strategy
- At +1 the recipe
appends a fresh stat line; from +2 onward it usesreplace_linewith an anchor to update the existing number — so each stat always has exactly one lore line no matter how high the star. - Milestone stars first update existing lines, then
appenda brand-new stat line as a new attribute unlocks. - A global
name_actionsappends a[+star]suffix, and globallore_actionsprepend a gradient enhancement-level line plus a tempering line on every success. - Full MiniMessage support, including gradients, for polished display.
Failure outcomes and protection
- Result branches: success (star +1, resets the guarantee counter, may trigger a milestone), keep, downgrade by N, destroy, protected (protection material converts the penalty into a keep).
- Each outcome has its own action hook (
actions.success,actions.failure_keep,actions.failure_downgrade,actions.failure_destroy,actions.protected,actions.guarantee). - The guarantee mechanic forces a success after a configured streak of failures.
Branch growth tree
fork_after_staropens a branch-selection prompt after a chosen star (-1 disables forking).- Branches can nest: the shipped example forks at one tier into sharp/heavy paths, and the sharp path forks again into lethal/swift.
- Each branch carries its own
display_name, its ownstars, and its ownchildren, writing different attributes, skills and display along the way. - The chosen branch path is saved into the item's strengthen state and cannot be changed afterward, giving each piece a permanent identity.
- The default branches reach a dedicated ultimate skill at their final star.
Match rules
source_idsprecisely binds the recipe to specific EmakiItem / ItemSource ids (recommended).slot_groupsmatches coarse equipment groups (weapon / armor / offhand / generic).lore_containsmatches by lore text, andstats_anymatches items that already carry given attributes.
Broadcasts and milestones
- Milestone flags record the first time each star is reached, so achievement broadcasts and integrations never fire twice for the same item.
- Local broadcasts (configurable star threshold, within a configurable radius) and global broadcasts (configurable star threshold) announce high-star successes.
- Broadcast messages support
%player%,%star%,%item%and%recipe%variables.

Economy
- Per-recipe economy with multiple currencies, each with a provider (e.g. Vault), a base cost and a cost formula (the sample uses
base_cost * star, so each star costs more).
Preview, transfer and runtime tools
- The GUI preview slot shows success rate, cost and required materials live, before committing.
- A runtime strengthen-transfer service can migrate an item's enhancement state (stars / tempering / branch / milestones) onto another item.
- After editing recipes, reload and verify with a test item: success, failure, protection, star writing and attribute writing.
Layered display with the Emaki suite
- Strengthen data is written into the item's strengthen namespace layer and stacks on top of the forge layer instead of overwriting it.
- EmakiCoreLib's assembly system rebuilds the final name and lore from all layers.
- With EmakiAttribute installed, each star can contribute real PDC attributes that feed live combat calculation rather than just lore text.
JavaScript extension
- A
strengthenscript module exposes a chance-rule hook (registerChanceRule) that can adjust the success rate, post-failure star, post-failure tempering and protection, with priority-ordered stacking and a final 0–100 clamp. - A result hook (
onResult) runs after resolution for rewards or broadcasts. - A sample script demonstrates a VIP +2.5% success-rate rule.
Public API
- Read star level, check whether an item can be enhanced, perform enhancement, rebuild display, and listen to success / failure / downgrade / protected events.
- A
StrengthenResultreturns the new item to replace the original; enhancement runs on the main thread.
Commands
| Command | Description |
|---|---|
/estrengthen help |
Show help |
/estrengthen open |
Open the enhancement GUI |
/estrengthen reload |
Reload recipes, GUI, language and runtime resources |
/estrengthen inspect [player] |
Inspect the held item's strengthen layer and matching recipe |
/estrengthen refresh [player] |
Refresh the held item's display |
/estrengthen setstar <star> [recipe] |
Set the held item's star level |
/estrengthen clearstate |
Clear the held item's strengthen layer |
/estrengthen clearcrack |
Clear the held item's tempering |
/estrengthen givecatalyst <material> [amount] [player] |
Give enhancement materials |
/estrengthen debug <status|player|module|all> |
Runtime debug info |
Main command /emakistrengthen, alias /estrengthen.
Permissions
emakistrengthen.use— use the enhancement GUI and basic commands (default: true)emakistrengthen.reload— reload configuration (default: op)emakistrengthen.debug— debug commands (default: op)emakistrengthen.admin— administrative commands (set star, clear state, give catalyst, etc.; default: op)
PlaceholderAPI
Expansion identifier emakistrengthen (reads the main-hand item):
%emakistrengthen_mainhand_star%— current star%emakistrengthen_mainhand_temper%— current tempering level%emakistrengthen_mainhand_crack_level%— tempering (legacy field name)%emakistrengthen_mainhand_max_star%— recipe maximum star%emakistrengthen_mainhand_recipe%— matched recipe id%emakistrengthen_mainhand_eligible%— whether the item can be enhanced%emakistrengthen_mainhand_success_rate%— current success rate%emakistrengthen_mainhand_success_count%/%emakistrengthen_mainhand_failure_count%— success / failure counters
Compatibility & Dependencies
| Item | Details |
|---|---|
| Java | 25 |
| Bukkit API | 1.21 |
| Server | Spigot / Paper and downstream forks |
| Folia | Supported |
| Required | EmakiCoreLib |
| Optional | EmakiAttribute, PlaceholderAPI |
Installation & Quick Start
- Install
EmakiCoreLib.jarfirst (required dependency). - Place
EmakiStrengthen.jarintoplugins/. - Start the server to generate the default recipe, GUI, language and config.
- Bind a recipe to your items via
match.source_ids, adjust stars / materials / odds / branches, then/estrengthen reload. - Test on a real item: success, failure, protection, tempering, star writing and attribute writing.
Links
- Documentation: https://jiuwu02.github.io/Emaki_Series/
- Discord: https://discord.gg/FV4GFQbvCM
- QQ Group: https://qm.qq.com/q/GqGrzHp0wU