Speedgot
EmakiForge | Blueprint-Driven Quality-Tiered Crafting System
-----
Blueprints, material contribution, capacity limits, six quality tiers — a complete forging chain fro
Download Now
Via external site
Overview
Updates (
--
)
Reviews (
---
)
Version History
Discussion
EmakiForge Changelog
[1.10.0] - 2026-03-31
New Features
Material Quality Modification Mechanism
Added ForgeMaterial.QualityModifier record to support influencing forging quality through material effects.
Supports two modification modes:
force: Forcibly specifies a quality tier, overriding random and pity mechanisms.
minimum: Sets a quality floor, taking the higher value compared to the random result.
Added ForgeQualityModifierResolver service to uniformly process quality modification logic.
The quality_modify effect can now be added in material definitions:
Code (YAML):
effects
:
- type
:
quality_modify
mode
:
force
# or minimum
tier
:
perfect
# quality tier name
Item Refresh Service
Added ForgeItemRefreshService, supporting automatic refresh of forging attributes for player inventory and dropped items.
Added ForgeItemRefreshListener, listening to the following events to trigger refresh:
Player joins server (PlayerJoinEvent)
Player clicks inventory (InventoryClickEvent)
Player drags inventory (InventoryDragEvent)
Player drops an item (PlayerDropItemEvent)
Player picks up an item (EntityPickupItemEvent)
Supports batch refresh for online players, single player inventory refresh, and dropped item refresh.
The refresh process recalculates quality modifications and updates item metadata.
Material Contribution Record
Added ForgeMaterialContribution record, representing contribution information of forging materials.
Includes material ID, quantity, slot, category, sequence, and other information.
Provides toAuditMap() and toSignatureData() methods for auditing and signing.
Improvements & Optimizations
Quality Calculation Flow Optimization
QualityRollPlan record structure changes:
Added rolledTier: Randomly rolled quality tier.
Added finalTier: Final quality tier after applying modifications.
Added forceApplied: Whether a force modification was applied.
PreparedForge record structure changes:
Added rolledQualityTier: Random quality tier.
Added forceQualityApplied: Whether forced application occurred.
Improved quality calculation logic to support material modifier participation.
Quality Tier Comparison Refactoring
QualitySettings added helper methods:
findTier(String name): Find a quality tier.
tierIndex(String name): Get the index of a quality tier.
tierIndex(QualityTier tier): Get the index of a quality tier.
hasTier(String name): Check if a quality tier exists.
higherTier(QualityTier first, QualityTier second): Compare and return the higher quality tier.
Improved quality tier lookup logic, reducing redundant calculations.
Optimized quality configuration parsing performance.
ForgeMaterial Enhancements
Added qualityModifiers() method to get the list of material quality modifiers.
Added definitionSignatureData() method to generate material definition signature data.
Improved material effect parsing to support quality modification effects.
ForgeService Improvements
Added findMaterialById(String materialId) method.
Added resolveMaterialQualityModifiers() method to parse material quality modifiers.
Improved forge preparation flow, integrating quality modification calculation.
Configuration Changes
Configuration File Updates
Action IDs in configuration files have been updated to camelCase format.
Example recipe configurations have been updated accordingly.
Code Improvements
EmakiForgePlugin
Added itemRefreshService() accessor.
Improved plugin lifecycle management.
ForgeLifecycleCoordinator
Integrated item refresh service initialization.
ForgeRuntimeComponents
Added itemRefreshService component.
RecipeLoader
Improved recipe loading logic.
ForgeExecutionService
Improved forge execution flow.
ForgeLayerSnapshotBuilder
Optimized layer snapshot building logic.
ForgeLookupIndex
Added findMaterialById() method.
Improved material lookup performance.
Usage Notes
Material Quality Modification
To use the material quality modification feature, you need to add the quality_modify effect in the material definition.
The effect data must include the mode (force/minimum) and tier (quality name) fields.
Force mode overrides pity mechanisms; use with caution.
Minimum mode takes the higher value compared to the random result, suitable for pity scenarios.
Item Refresh Service
The item refresh service is enabled by default and will automatically refresh upon relevant events.
The refresh process recalculates quality modifications and updates item metadata.
May cause performance overhead in scenarios with a large number of items; adjustment based on server load is recommended.
Action ID Migration
Action IDs in configuration files need to be migrated from underscore_case to camelCase format.
Affected configurations:
Quality actions in config.yml
Custom recipe configurations
Compatibility
Requires EmakiCoreLib 1.11.0 or above.
The quality modification feature is optional and does not affect existing recipe configurations.
Maintains backward compatibility with older configuration files.
API Changes
QualityRollPlan record structure changed with added fields.
PreparedForge record structure changed with added fields.
QualityCalculationService constructor added new parameters.
The above changes may affect external plugins directly using these APIs.
Known Issues
The item refresh service may cause performance overhead in scenarios with a large number of items.
----------
,
Mar 31, 2026
View on SpigotMC
Resource Information
Author:
----------
Total Downloads:
152
First Release:
Mar 29, 2026
Last Update:
Jun 16, 2026
Category:
---------------
All-Time Rating:
1 ratings
Version
-----
Released:
--------------------
Downloads:
------
Version Rating:
----------------------
--
ratings