EmakiForge | Blueprint Forging
4.8.0Blueprint-driven forging where material combinations decide stats and quality rolls with a pity counter.
4.8.0latestEmaki Forge 4.8.0Aug 31, 2026 Added
- Legacy material and blueprint conversion command with preview, backups, conflict reporting, and explicit apply modes.Changed
- Forge material and blueprint eligibility now uses CoreLib matchers whileitem_sourcesremains available for counting, construction, display, and audit identity.Breaking Changes
- Migrate custom eligibility rules to matchers without removing item-source fields that still serve non-eligibility duties.Upgrade Notes
- Back up the plugin directory, inspect the conversion preview, and stage-test every blueprint, material, capacity, quality, and failure-return path.4.7.0Emaki Forge 4.7.0Aug 11, 2026 Added
- The forge capacity slot lists what the recipe wants and how much you have placed. A new%blueprint_requirements%placeholder goes in thecapacity_displayslot lore ofgui/forge_gui.yml, one material per line, a tick when the amount is met and a cross when it is not, followed by placed/required. The count is what sits in the forge GUI, not what is in the player's inventory. - Per-recipe grouping for that list when one blueprint is shared by several recipes: a header per recipe, at most 3 groups, and the rest collapsed into a single "N more recipes" line. The lists are deliberately not merged, because a recipe wanting iron and another wanting gold would both show as missing when satisfying either is enough. The same slot can also read%recipe_count%. - Editable wording for the checklist undergui.blueprint.*:no_recipe,recipe_group_header,requirement_satisfied,requirement_missing,more_recipes. - Multi-line lore expansion: a lore line holding nothing but one placeholder expands into as many lines as the value has entries. Keep%blueprint_requirements%on a line of its own. - Agui_templatekey on recipes, naming a template file undergui/without the.yml, so a recipe can open with its own forge GUI. Left out,forge_guiis used as before. -console.config_precheck_issue_warnandconsole.config_precheck_issue_errormessage keys, used to colour precheck problem lines by severity.Changed
- Actions use a new syntax, and most of it is rewritten for you. On first startup CoreLib rewrites the config files of every Emaki plugin underplugins/, once only. Each edited file keeps the original beside it with a.legacy-backupsuffix. A line that cannot be converted leaves your config untouched and goes into a separate.v2-failedfile, with the file and line listed in the console. - The three forge refresh actions are the only ones you need to rename by hand; automatic rewriting does not cover them. Drop the leadingemaki: -emakiforge_refresh_held→forge_refresh_held-emakiforge_refresh_player→forge_refresh_player-emakiforge_refresh_all→forge_refresh_all- Forge's own variables need avar.prefix wherever recipes orconfig.ymluse them, for example%forge_result_item_name%→%var.forge_result_item_name%and%forge_failure_reason%→%var.forge_failure_reason%. The old inline token<show_item>in the quality broadcast becomes%var.forge_show_item%, already applied in the newconfig.yml. GUI text and player placeholders such as%player%are unaffected. - Action names gain their underscores automatically:sendmessage→send_message,playsound→play_sound,broadcastmessage→broadcast_message. The bundledrecipes/example_recipe.ymlshows the converted form. - Console errors for an action line that failed to compile state the problem, its position in the line and the likely intended value, instead of an internal code. The file, recipe id, phase and line index still follow, and the wording comes from the language file. - Config precheck problem lines are coloured by severity across the whole line: red for error and fatal, yellow for warn, grey for info as before. Older language files missing the two new keys fall back to the previous template rather than printing bare keys. - Six startup and reload console lines changed from white to grey for consistency with the other Emaki plugins. - For developers:EmakiForgeApiProvideris removed, andavailable(),apiVersion(),pluginName()andisReady()are replaced byEmakiForgeApi.status()returningApiStatus. Newcatalog()(recipes,recipe,materialById,materialByItem,matchRecipe,validate,previewResult,mastery,accepting),operations()(forgeAsync,openForgeGui,openRecipeBook,viewingRecipeBook,refreshItem,refreshPlayer) andextensions()(reserved, currently empty) accessors return degraded implementations when the plugin is absent instead of throwing. Return values are unified asEmakiResult, withFailureKindseparating a disabled subsystem from a missing plugin. New model types:ForgeInputs,ForgeOutcome,ForgeRecipeView,ForgeMaterialView,ForgeBlueprintView,ForgeValidation.ForgeStartEventandForgeCompletedEventdocument their thread semantics.EmakiForgeApi.BridgeandForgeExtensionsare@ApiStatus.NonExtendable. This is a breaking API release with no legacy signatures or transitional compatibility.Removed
- JS scripting, including the forge success-rate rules and result hooks it provided. There is no automatic conversion, but both have config equivalents:success_rateandfailure_outcomesfor the odds, and thepre/success/failurelists under a recipe'sactionssection plusresult.success.actionsfor rewards. The bundledscripts/examples/forge_success.jssample is gone as well. - The oldemakiforge_-prefixed action names and the bare-variable placeholder form; neither is kept as an alias.Notes
- Update EmakiCoreLib to4.7.0first. - Back up your wholeplugins/EmakiForge/folder before upgrading, especiallyrecipes/andgui/. - Three things need doing by hand: renaming the three refresh actions, adding thevar.prefix to Forge variables, and rewriting JS success-rate or reward scripts as recipe config. Everything else is rewritten for you. - Showing the material checklist requires adding a%blueprint_requirements%line to thecapacity_displayslot lore ingui/forge_gui.yml. An older GUI file still forges fine, it just shows no checklist. - Recipe structure, blueprints and player forge mastery data are unchanged and need no migration. - After updating, run/emakiforge reloadand/emakiforge debug statsto confirm the registered recipe count matches expectations, then open the forge GUI and check the checklist.Emaki Forge v4.6.0
MineBBS 更新日志
破坏性变更与必要迁移
- 【破坏性】配方result结构调整且不再兼容旧格式:原result.item_sources、result.meta_actions.name_actions、result.meta_actions.lore_actions、result.actions需改写为result.success.outputs[].item_sources以及result.success.name_actions、result.success.lore_actions、result.success.actions。插件只读取success;缺失时该配方不会报错,但也不会产出任何物品,所有自定义配方必须迁移。 - 【破坏性】GUI 槽位物品结构改为嵌套组件:原item: "<MATERIAL>"搭配display_name、lore、hidden_components: [tooltip],现改为item.source搭配item.components.custom_name、item.components.lore、item.components.tooltip_display.hide_tooltip。所有自定义gui/*.yml必须迁移。 - 【破坏性】插件描述文件从plugin.yml迁移到paper-plugin.yml,其中的commands:段已移除(命令改为运行时注册)。不再支持纯 Spigot,必须使用 Paper 或 Paper 分支。 - 【移除】浏览器端 Web Console 层整体移除:web-console.yml、web-extensions/以及web-console/前端项目。此前通过浏览器修改配置的服主需要直接编辑 YAML。 - 【移除】管理端配方编辑器模板gui/editor_gui.yml已删除,它唯一的入口就是被移除的网页编辑器。新增功能
- 新增三个可配置动作,可用于任意动作链:emakiforge_refresh_held、emakiforge_refresh_player、emakiforge_refresh_all。 - 新增/emakiforge debug stats(别名status),输出运行时与配方加载报告:generation、文件数/解析数/跳过数/注册数/重复数、问题与警告、耗时、来源状态。 - 配置预检与配方加载诊断(目录创建失败、id 为空、id 重复、加载失败)现已可本地化;玩家可见的运行时状态提示(重载中、无可用配方、加载失败、能力缺失、索引未就绪、已关闭、会话过期)同样可本地化。 - 新增对 EmakiItem 的可选软依赖;未安装该插件时,EmakiAttribute 对接会降级运行,不再直接失败。重载与结算可靠性
- 重载改为原子操作:候选运行时在后台构建,只有在不存在阻断性问题时才整体安装。失败时继续由原运行时提供服务;被后续重载取代的重载会被报告为已过期。 - 重载汇总数字改为取自本次重载自身的结果,并发重载不会再报出混合的计数。 - 锻造结算加入明确的提交边界,已过期的完成流程不会二次返还已消耗的输入。 - 配方书绑定打开时取得的运行时快照,重载期间翻页不会混用不同 generation 的数据。 - GUI 模板由独立加载器读取,并纳入重载候选校验。 - 消息前缀更换为新的品牌渐变配色。修复
-/emakiforge reload此前无条件回报成功并吞掉失败,现在会回报失败并附带详情(general.reload_fail消息键此前存在但从未被发送)。 - 重载回复改为在发送者自身的执行域上送达,这是 Folia 上的正确行为所必需的。运行环境与兼容性
-api-version由1.21提升到1.21.8,仅支持 1.21.8 及以上版本。 - 构建基座由 spigot-api 改为 paper-api,使用本插件 API 的开发者需要同步切换编译基座。 - Java 目标版本仍为 25,folia-supported: true保持不变,权限集保持不变(use/book/reload/debug/admin)。 - 移除了跨插件的强制 API 版本门禁,混用小版本略有差异的 Emaki 插件不再在启动阶段被阻止。升级说明
- 需要 EmakiCoreLib4.6.0。 - 升级前请备份recipes/与gui/目录,并按上述结构迁移全部自定义配方与 GUI 模板。 - 升级后建议执行一次 `/emakiforge re4.6.0Emaki Forge 4.6.0Jul 27, 2026 Added
- Three action-chain actions:emakiforge_refresh_held,emakiforge_refresh_player,emakiforge_refresh_all. -/emakiforge debug stats(aliasstatus) reporting generation, files, parsed, skipped, registered, duplicates, issues, warnings, elapsed time, and source state. - Localizable config precheck and recipe-load diagnostics (directory creation failure, blank id, duplicate id, load failure) plus localizable player-facing runtime state messages (reloading, no recipes, load failed, capability missing, index not ready, closed, session expired). - Optional soft dependency on EmakiItem, so the EmakiAttribute integration degrades gracefully when that plugin is absent instead of hard-failing.Changed
- Reload is atomic: a candidate runtime is built in the background and installed only when no blocking problems exist. A failed reload keeps the previous runtime serving, and a superseded reload is reported as stale. - Reload summary numbers come from that reload's own result, so concurrent reloads no longer report mixed counts. - Forge settlement has an explicit commit boundary, so a stale completion no longer returns already-consumed inputs a second time. - The recipe book binds to the runtime snapshot taken when it was opened, so paging during a reload cannot mix generations. - GUI templates are loaded by their own loader and participate in reload candidate validation. - Message prefix switched to a new brand gradient. -api-versionraised from1.21to1.21.8; only 1.21.8+ is supported. The build base moved from spigot-api to paper-api, so API consumers must switch their compile base. Java target stays 25,folia-supported: trueand the permission set (use/book/reload/debug/admin) are unchanged. - Cross-plugin hard API version gating was removed, so mixing slightly different Emaki minor versions is no longer blocked at startup.Fixed
-/emakiforge reloadused to report success unconditionally and swallow failures; it now reports failure with detail (thegeneral.reload_failmessage key existed but was never sent). - Reload replies are delivered on the sender's own execution domain, which is required for correctness on Folia.Removed
- The browser-based Web Console layer (web-console.yml,web-extensions/, theweb-console/frontend project). Owners who edited config through the browser must edit YAML directly. -gui/editor_gui.yml, the admin recipe-editor template, whose only entry point was the removed web editor. - Backward compatibility for the old reciperesultstructure:result.item_sources,result.meta_actions.name_actions,result.meta_actions.lore_actionsandresult.actionsbecomeresult.success.outputs[].item_sourcesandresult.success.name_actions/lore_actions/actions. Onlysuccessis read; if it is missing the recipe silently produces nothing, so all custom recipes must be migrated. - The flat GUI slot item structure:item: "<MATERIAL>"withdisplay_name,loreandhidden_components: [tooltip]becomesitem.sourcewithitem.components.custom_name,item.components.loreanditem.components.tooltip_display.hide_tooltip. All customgui/*.ymlmust be migrated. - Thecommands:section, as the descriptor moved fromplugin.ymltopaper-plugin.ymland commands register at runtime. Plain Spigot is no longer supported; Paper or a Paper fork is required.Notes
- Requires EmakiCoreLib 4.6.0. - Back uprecipes/andgui/before updating, then migrate all custom recipes and GUI templates to the structures above. - After updating, run/emakiforge reloadand/emakiforge debug statsto confirm the registered recipe count matches expectations, then verify the forge GUI and recipe book.4.5.0Emaki Forge 4.5.0Jul 14, 2026 Added
- Forge item refresh actions for held item, player inventory, and all online players. - Manifest v2 Web Console integration. - Command suggestions after/emakiforgeor/eforge.Improved
- Consolidated recipe result structure towardresult.success.outputs/actionsand related branch fields. - Improved recipe loading and default examples. - Aligned with the Paper API /paper-plugin.yml1.21.8+ baseline.Notes
- Update with the matching CoreLib release. - Breaking: Action aliases were removed; use canonical action IDs. - Migrate older flat result fields toresult.success.*when needed.4.4.0Emaki Forge 4.4.0Jun 29, 2026 Added
- Public Bukkit events:ForgeStartEvent(cancellable) andForgeCompletedEvent(with success, result item, and quality info). - JavaScript extensions for forge result hooks and forge rules viaemaki.module("forge"). - Config precheck on startup and reload.Improved
- Hardened the prepared forge cache by cloning preview items.Notes
- No breaking config changes.4.3.0Emaki Forge 4.3.0Jun 16, 2026 Added
- Forge script module access throughemaki.module("forge"). - Forge-owned script examples. - Shared condition system support. - Updated Web Console registration.Fixed
- Fixed default condition alignment. - Fixed item source display/identification consistency. - Fixed unstable old API access expectations.Refactored
- Static facade + Bridge API model. - Assembly namespace registration. - Script module lifecycle. - Recipe loading and item identification.Improved
- Better default resources and Web Console metadata. - Better integration with CoreLib item sources and conditions.4.2.0Emaki Forge 4.2.0Jun 5, 2026 Forge v4.2.0 is a cleanup and integration update. Forge now owns its script entry, script examples, and Assembly namespace more clearly.Highlights
- Forge script module access throughemaki.module("forge"). - Forge-owned script examples.Improved
- Forge registers its own Assembly layer namespace. - CoreLib-aligned bStats, runtime dependency handling, and versioned resource notices.Notes
- Use with the matching CoreLib release.4.1.0Emaki Forge 4.1.0Jun 2, 2026 EmakiForge v4.1.0
Quality pity system, player signatures, Web console editor, and a completely refactored forge pipeline.
---
#### Quality Pity System After a streak of forges without a high-tier result, the system now guarantees a better quality outcome on your next attempt. No more endless bad luck — the pity mechanic has your back. #### Player Signature Every forged item now proudly displays the name of the player who created it, giving each piece of equipment a personal touch and a unique sense of ownership. #### Web Console & GUI Editor EmakiForge is now fully integrated with the Web management console. Edit forge recipes and GUI configurations directly in your browser. Both the forge interface and recipe book have been completely redesigned for a better player experience. #### Forge Validation Service A new pre-forge validation step ensures that all conditions are met before the forge operation proceeds, preventing invalid forge attempts. #### Failure Resolution A dedicated failure handling service provides flexible multi-tier penalty configurations — customize what happens when a forge attempt fails. #### Preparation Phase Material checking, consumption, and preview have been separated into their own preparation stage, making the forge flow clearer and more maintainable. #### Result Post-Processing Additional actions can now be executed after a forge completes — trigger skills, send messages, or run custom logic. #### Performance Recorder A new performance monitoring feature lets server admins track forge operation performance.New Features
- The main forge service has been extensively refactored, with each stage now having a clear, single responsibility. - The material model has been simplified for more intuitive recipe configuration. - The forge GUI and recipe book have been redesigned for a significantly improved user experience. - The async executor has been optimized for faster forge response times.Improvements
4.0.0Emaki Forge 4.0.0May 11, 2026 EmakiForge 4.0.0 Release
This release introduces a ledger-based reversible name/lore modification system, PAPI placeholder support, and unifies the effect configuration format.New Features
- Name/Lore Action System: Recipes and quality configs supportname_actions/lore_actionsfields. Forging can directly modify item names and lore with actions likeappend_suffix,prepend_prefix,prepend,append,insert_below,replace_line. All operations tracked via ItemOperationLedger for precise revert capability. Material effects also supporttype: "lore_action"/"name_action". - PAPI Placeholders:%emakiforge_recipe_count%(loaded recipe count) and%emakiforge_last_crafted%(player's last crafted recipe ID). - Enhanced Forge Audit: Forged items store complete audit data in PDC: recipe ID, quality, multiplier, timestamp, material signatures, and output source.Improvements
- Unifiedeffectslist format withtypefield (variables/ea_attribute/es_skill/name_action/lore_action). - Material item sources unified toitem_sources: [...]list format. - Example recipe fully rewritten with comprehensive field coverage and detailed comments. - Config and language files auto-merge new keys on upgrade.Breaking Changes
-structured_presentationremoved — replaced byname_actions/lore_actions. - Quality configitem_meta.structured_presentation→item_meta.name_actions/item_meta.lore_actions. - Materialitemfield →item_sources: [...]list format. - Skill effect type:"skill"→"es_skill",skills→es_skills. - Old example recipeflame_sword.ymlreplaced byexample_recipe.yml.Upgrade Notes
- Migratestructured_presentationtoname_actions/lore_actionsin existing recipes. - Migrate materialitemfields toitem_sourceslist format. - Config version updated to4.0.0— new entries are auto-merged on upgrade. [View Full Documentation](https://jiuwu02.github.io/Emaki_Series/) | [Join Discord Community](https://discord.gg/FV4GFQbvCM) | [QQ Group](https://qm.qq.com/q/GqGrzHp0wU)3.5.0Emaki Forge 3.5.0May 4, 2026 EmakiForge 3.5.0 Release
This maintenance release improves player data handling around kick events and synchronizes the module with the CoreLib 3.5.0 dependency line. - Added player kick event handling for forge player data flows. - Removed deprecated lifecycle cleanup calls. - Updated dependency alignment to CoreLib3.5.0. - Synchronized plugin, config, and language versions to3.5.0.Upgrade Notes
- Existing recipes, GUI configuration, and permission nodes remain compatible. - Test player quit and kick scenarios if you use external data synchronization. [View Full Documentation](https://jiuwu02.github.io/Emaki_Series/) | [Join Discord Community](https://discord.gg/FV4GFQbvCM) | [QQ Group](https://qm.qq.com/q/GqGrzHp0wU)3.4.0Emaki Forge 3.4.0Apr 28, 2026 EmakiForge 3.4.0 Dev Update
This dev update connects EmakiForge more deeply to CoreLib's structured text config system. Forge GUI text and result presentation content can now use richer config objects, including randomized text and nested variables. - PDC attribute writing:ForgePdcAttributeWriternow usesPdcAttributeGatewayinstead of reflection. - Structured GUI text: Forge GUI labels and text values can evaluate object-based text configs. - Presentation content improvements: layer snapshot values, replacements, content, patterns, and anchors can use richer text input. - Random lore foundation: Forge result displays can use CoreLibrandom_textand nested variable behavior. - Cleaner parsing: Forge material parsing was moved intoForgeMaterialParser. - Stable entry points: existingfromConfigmethods remain available.Upgrade Notes
No upgrade notes. [View Full Documentation](https://jiuwu02.github.io/Emaki_Series/) | [Join Discord Community](https://discord.gg/FV4GFQbvCM) | [QQ Group](https://qm.qq.com/q/GqGrzHp0wU)3.3.0EmakiForge 3.3.0Apr 25, 2026 EmakiForge 3.3.0
EmakiForge 3.3.0 is a maintenance-focused release for server owners who already use the current file-based forging resource workflow. It adds PlaceholderAPI output for player forging progress, removes the old in-game resource editor path, and keeps forging output aligned with the current attribute naming and versioned resource style. - PlaceholderAPI support:%emakiforge_total_crafts%,%emakiforge_craft_count_<recipe>%,%emakiforge_has_crafted_<recipe>%, and%emakiforge_guarantee_<key>%are now available when PlaceholderAPI is installed. - Legacy editor removal: the old editor, edit, create, delete, and input command path is no longer part of the current runtime. - Focused commands: the supported command surface centers on forging, the recipe book, reload, and recipe listing. - Attribute naming cleanup: result attribute writes continue using the current non-EA-prefixed naming. - Unified version fields: default config and language resources useversion. - Runtime cleanup: material planning, quality calculation, result item generation, GUI rendering, and error handling were tightened.Upgrade Notes
- Use Java 25. - Update any admin guide that still references the removed editor commands. - Install PlaceholderAPI if you want to use the new forging placeholders. - Keep custom config on the currentversionfield and non-EA-prefixed attribute names. [View Full Documentation](https://jiuwu02.github.io/Emaki_Series/) | [Join Discord Community](https://discord.gg/FV4GFQbvCM) | [QQ Group](https://qm.qq.com/q/GqGrzHp0wU)3.2.0EmakiForge 3.2.0Apr 24, 2026 EmakiForge 3.2.0
EmakiForge 3.2.0 is the release that brings the recipe editor and the recipe schema back into full alignment with the code that actually runs. Administrators get a cleaner in-game editing flow, earlier validation for bad configs, and default resources that finally match the real parser contract instead of leaving hidden mismatches behind. - The editor input flow is command-based now. Pending editor input is submitted through/emakiforge input (content|cancel)instead of the older chat-event path, and the editor logic is now split across dedicated renderer, interaction, and field-resolution components. - The recipe schema is fully tightened.forge_capacitylives at the root, result output is defined throughresult.output_item, and structured display output followsstructured_presentation. - Invalid configs fail earlier. The loader now rejects legacytarget_itemusage and validatescondition_typeduring load time, which makes broken recipes much easier to diagnose. - Default resources match the parser now. Sample recipes, comments, and zh_CN feedback strings were updated to reflect the real runtime behavior. - Forge display output stays on the newer structured path. This reduces leftover maintenance cost from older display compatibility branches.Upgrade Notes
- Replace legacytarget_itemoutput fields withresult.output_item. - Moveforge_capacityto the recipe root. - Preferstructured_presentationfor custom result display definitions. - Use/emakiforge inputfor in-game editor submissions. [View Full Documentation](https://jiuwu02.github.io/Emaki_Series/) | [Join Discord Community](https://discord.gg/FV4GFQbvCM) | [QQ Group](https://qm.qq.com/q/GqGrzHp0wU)3.1.0EmakiForge 3.1.0Apr 16, 2026 EmakiForge Changelog
[3.1.0] - 2026-04-16
Added
- AddedForgeMaterialUsagePlannerto centralize required/optional material batching, capacity cost/bonus calculation, and unconsumed input return logic for more predictable forge resolution. - Adopted CoreLib'sAbstractConfigurableEmakiPlugin,BaseAppConfig, and sharedGuiTemplateLoaderso Forge now shares the common config and GUI-loading foundation.Improved
- ReworkedEmakiForgePlugin,ForgeLifecycleCoordinator, andForgeRuntimeComponentsso PDC attribute registration, service exposure, and CoreLib assembly feedback wiring follow one consistent startup path. - Hardened interactions in the forge station, recipe book, and editor by covering keyboard clicks, drag behavior, held-item validation, and session-state management. - Updatedconfig.yml,gui/*.yml, and language resources so button sounds, hidden tooltips, and GUI structure follow the newer CoreLib GUI syntax.Fixed
- Fixed inconsistent optional-material batching, capacity bonuses, and leftover input return behavior when multiple matching materials were supplied together. - Fixed edge cases in item identification, recipe matching, and editor dirty-state handling to reduce false input mismatches and lingering editor state. - Fixed the timing of PDC attribute registration so Forge keeps writing external attribute data reliably after reloads and dependency rewiring.3.0.0EmakiForge 3.0.0Apr 12, 2026 EmakiForge 更新日志 / Changelog
中文版
- ForgePdcAttributeWriter: 新增 PDC 属性写入器 - 提供持久化数据容器属性写入功能 - 支持物品 NBT 数据的持久化存储 - EditableResourceType 增强: 扩展可编辑资源类型支持 - 新增更多资源类型的编辑支持 - 改进资源类型转换逻辑 - ForgeLookupIndex: 新增强化查找索引 - 提供高效的配方和材料查找 - 优化查找性能 - 配方系统增强:新增特性
Recipe.java优化 - 新增配方验证逻辑 - 改进配方加载错误处理
- BootstrapService 删除: 删除不再需要的引导服务 - 由 CoreLib 的统一引导机制替代 - 简化插件启动流程 - MessageService 删除: 删除冗余的消息服务 - 由 CoreLib 的统一消息服务替代 - 减少代码重复 - LanguageLoader 删除: 删除语言文件加载器 - 由 CoreLib 的统一加载机制替代 - 简化语言文件管理问题修复
English Version
- ForgePdcAttributeWriter: New PDC attribute writer - Provides persistent data container attribute writing functionality - Supports persistent storage of item NBT data - EditableResourceType Enhancements: Extended editable resource type support - Added support for more resource types - Improved resource type conversion logic - ForgeLookupIndex: New forge lookup index - Provides efficient recipe and material lookup - Optimized lookup performance - Recipe System Enhancements:Features
Recipe.javaoptimized - Added recipe validation logic - Improved recipe loading error handling
- BootstrapService Deletion: Removed unnecessary bootstrap service - Replaced by CoreLib's unified bootstrap mechanism - Simplified plugin startup process - MessageService Deletion: Removed redundant message service - Replaced by CoreLib's unified message service - Reduced code duplication - LanguageLoader Deletion: Removed language file loader - Replaced by CoreLib's unified loading mechanism - Simplified language file managementBug Fixes
2.2.0EmakiForge 2.2.0Apr 9, 2026 EmakiForge Changelog
\[2.2.0] - 2026-04-09
Added
#### Recipe files now own blueprints, materials, and target items together -recipes/*.ymlcan now definetarget_item,blueprint_requirements,materials, andoptional_material_limitdirectly, so the release no longer depends on separate defaultblueprints/andmaterials/directories. - Inline recipe materials can now declare capacity cost, stat contributions, name / lore actions, and capacity bonus directly, and the sampleflame_sword.ymlhas been fully migrated to the new schema.Improved
#### Forge validation and GUI flow now follow the recipe model end to end - Material validation now matches inputs directly against recipe-defined required and optional materials by item source, which keeps fixed materials, optional materials, capacity limits, and capacity bonus checks consistent. - Default GUI wording, reload summaries, and command help now revolve around the "recipe" concept, so players and admins no longer need to reason about the old blueprint / material directory split. - Forge continues to delegate all external item-source availability toEmakiCoreLib, keeping only business-side matching, capacity calculation, and interaction feedback locally.Fixed
- Legacy keys such asrequired_materials,optional_materials,gui, and top-levelforge_capacityare now rejected during parsing so old configs cannot be half-loaded into an inconsistent state. - Optional-material validation now blocks items that do not belong to the current recipe earlier in the flow, reducing follow-up errors caused by wrong materials slipping through.Upgrade Notes
- If you still use the oldblueprints/andmaterials/config structure, migrate it to the new inlinerecipes/*.ymlformat before upgrading. - Default data release and list/editor flows now work around therecipesdirectory only, so do not rely on the removed default blueprint or material sample files. - This version should be paired withEmakiCoreLib 2.3.0, and CoreLib startup logs should be treated as the source of truth for external item-source bridge readiness.Known Issues
- The default template still does not show random-result previews. This limitation remains intentional to prevent reroll abuse.2.1.0EmakiForge 2.1.0Apr 7, 2026 [2.1.0] - 2026-04-08
Added
#### Forging Resource Editor Released - Addededitor_guiandEditorGuiService, supporting in-game browsing, creation, and editing of three resource types:blueprints,materials, andrecipes. - Added/emakiforge editor,edit,create,deletesubcommands, along with the permissionsemakiforge.editor,emakiforge.editor.delete, andemakiforge.editor.*. - The editor supports chat input, document tree browsing, recipe slot grid switching, writingitem/output_itemsources from the main hand item, and unsaved close confirmation. - Automatic backup of the original YAML is performed before saving, renaming, or deleting, followed by a hot-reload of forging resources upon operation completion. #### GUI Template and Recipe Book Configuration Enhancements - The default forging GUI has been updated to a new layout, with clearer visual separation for the blueprint, capacity, materials, and confirmation areas. - Added theconfirm_blockedvirtual item andcapacity_statetext template. Clear blocking feedback is now provided when capacity limits are exceeded. - Addedvirtual_items.recipe_entryand multiple sets of state text to the recipe book. Unlock status, whether forged, and click hints are now all configuration-driven.Improvements & Optimizations
#### Full Migration to CoreLib Item Source Service -ItemIdentifierServicenow delegates toEmakiCoreLib'sItemSourceService. Forge no longer maintains external item plugin bridges independently. - Removed Forge's direct compile-time dependencies andplugin.ymlsoft-dependencies onMMOItems,NeigeItems, andCraftEngine. - Item source availability and bridge timing are now uniformly managed by CoreLib. Forge retains only the business-side identification, matching, and hint logic. #### Commands and Interaction Refactoring - The main command aliases have been adjusted fromemforge/forgetoeforge/ef. - The editor now supports resource locking to prevent simultaneous edits of the same resource by multiple administrators. - Deleting and renaming resources will first create a backup file on disk, reducing the risk of irreversible errors from misoperations during live server periods. #### Default Template Detail Optimizations -forge_gui.ymlnow unifies capacity display, material slot hints, and result hiding instructions. - With the addition of virtual item templates to the recipe book pages, custom themes can now directly override text and display styles without modifying Java code.Upgrade Notes
- RequiresEmakiCoreLib 2.1.0or higher. The availability of external item sources should be verified based on the bridge status in CoreLib's startup logs. - If your scripts, menu buttons, or documentation still reference the old aliasesforge/emforge, please update them toeforge/efor the full main commandemakiforge. - The resource editor's save and delete operations will generate backups underplugins/EmakiForge/backups/<type>/. It is recommended to include this in your server maintenance backup strategy. - If you are retaining an older custom forging template, please manually merge the newcapacity_statetext and the capacity over-limit blocking feedback logic.Known Issues
- The default template still does not display random result previews. This is a design limitation retained to prevent farming for random results.2.0.0EmakiForge 2.0.0Apr 3, 2026 EmakiForge Changelog
[2.0.0] - 2026-04-04
Added
#### Forging Results Integrated into CoreLib Assembly Pipeline - Forged products are now uniformly constructed through theEmakiItemAssemblyService, no longer relying solely on the legacy process of directly modifying ItemMeta. - Recipe results, material entries, and quality entries are compiled into assembly-layer snapshots and written into the final product. -result.meta_actionsnow supports name modification and Lore modification, making it easier to define product display rules directly at the recipe level. - Added forging-layer audit data, recording recipe ID, quality, material signature, forging time, and output source. #### Assembly Feedback and Lore Search Hints - AddedForgeAssemblyFeedbackHandler, which synchronously reports Lore search-and-insert failures, regex errors, and configuration errors to the console. - Players will also receive direct prompts during actual forging if they encounter invalid Lore search configurations. #### Asynchronous Caching and Persistence - AddedPlayerDataCache; player forging history and pity counters are now managed by a concurrency-safe cache. -PlayerDataStoreis now integrated into the CoreLib asynchronous YAML saving pipeline. - Automatic saves, player-offline saves, and plugin-shutdown saves will all wait for pending write tasks to complete, reducing the risk of historical data loss. -ForgeServiceadded a pre-forge cache andprepareForgeAsync(...)to reduce redundant calculation overhead.Changed
#### GUI and Recipe Experience - The default forging GUI no longer displays random product previews, preventing repeated刷取 of random quality and entry results through previews. - The default target item slot has been changed to a "result hidden" placeholder description, with interface text updated accordingly. - The recipe book now uniformly usesconfiguredOutputSource()to parse the result source when displaying result items. #### Recipes and Validation Logic -RecipeaddedconfiguredOutputSource()andrequiresTargetInput()for unified output source determination. -MaterialValidationServicerewritten the material normalization and validation logic to prevent disguising required materials and塞入 optional slots. -RecipeMatchingServiceoptimized error priority; when a recipe fails to match, a more reasonable first failure reason is now given. - Blueprint capacity, material capacity bonuses, and optional material whitelist/blacklist are now uniformly结算 within the same validation process. #### Example Resource Updates - Default blueprint and material examples have been switched from external item IDs to vanilla items, lowering the barrier to entry for running out-of-the-box. - Example blueprints addedforge_capacity, making capacity sources more intuitive. - Example recipeflame_sword.ymlchanged to use vanilladiamond_swordas base material,any_ofblueprint requirements, whitelist-style optional materials, and theresult.meta_actions写法. - YAML indentation examples for quality broadcast actions have been corrected.Upgrade Notes
- RequiresEmakiCoreLib 2.0.0or higher. - If you use custom recipes, it is recommended to explicitly declare the result source: - When there is a fixed product base material, usetarget_item.itemorresult.output_item. - When name/Lore modifications are needed, prioritize writing them inresult.meta_actions. - The default GUI intentionally hides result previews; if your old workflow relied on the "preview first, then confirm" interaction, you need to evaluate whether to keep the old template. - If you still use the old forging process of "player places target item for processing", please key inspection the target slot interaction and custom GUI templates before upgrading.Known Issues
- Random results do not provide product previews in the default template; this is a design trade-off, not a rendering fault.1.10.0EmakiForge 1.10.0Mar 31, 2026 EmakiForge Changelog
[1.10.0] - 2026-03-31
New Features
#### Material Quality Modification Mechanism * AddedForgeMaterial.QualityModifierrecord 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. * AddedForgeQualityModifierResolverservice to uniformly process quality modification logic. * Thequality_modifyeffect can now be added in material definitions:
#### Item Refresh Service * Addedeffects: - type: quality_modify mode: force # or minimum tier: perfect # quality tier nameForgeItemRefreshService, supporting automatic refresh of forging attributes for player inventory and dropped items. * AddedForgeItemRefreshListener, 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 * AddedForgeMaterialContributionrecord, representing contribution information of forging materials. * Includes material ID, quantity, slot, category, sequence, and other information. * ProvidestoAuditMap()andtoSignatureData()methods for auditing and signing.Improvements & Optimizations
#### Quality Calculation Flow Optimization *QualityRollPlanrecord structure changes: * AddedrolledTier: Randomly rolled quality tier. * AddedfinalTier: Final quality tier after applying modifications. * AddedforceApplied: Whether a force modification was applied. *PreparedForgerecord structure changes: * AddedrolledQualityTier: Random quality tier. * AddedforceQualityApplied: Whether forced application occurred. * Improved quality calculation logic to support material modifier participation. #### Quality Tier Comparison Refactoring *QualitySettingsadded 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 * AddedqualityModifiers()method to get the list of material quality modifiers. * AddeddefinitionSignatureData()method to generate material definition signature data. * Improved material effect parsing to support quality modification effects. #### ForgeService Improvements * AddedfindMaterialById(String materialId)method. * AddedresolveMaterialQualityModifiers()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 * AddeditemRefreshService()accessor. * Improved plugin lifecycle management. #### ForgeLifecycleCoordinator * Integrated item refresh service initialization. #### ForgeRuntimeComponents * AddeditemRefreshServicecomponent. #### RecipeLoader * Improved recipe loading logic. #### ForgeExecutionService * Improved forge execution flow. #### ForgeLayerSnapshotBuilder * Optimized layer snapshot building logic. #### ForgeLookupIndex * AddedfindMaterialById()method. * Improved material lookup performance.Usage Notes
#### Material Quality Modification * To use the material quality modification feature, you need to add thequality_modifyeffect in the material definition. * The effect data must include themode(force/minimum) andtier(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 inconfig.yml* Custom recipe configurations #### Compatibility * RequiresEmakiCoreLib 1.11.0or above. * The quality modification feature is optional and does not affect existing recipe configurations. * Maintains backward compatibility with older configuration files. #### API Changes *QualityRollPlanrecord structure changed with added fields. *PreparedForgerecord structure changed with added fields. *QualityCalculationServiceconstructor 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.1.9.0EmakiForge 1.9.0Mar 30, 2026 1.8.1EmakiForge 1.8.1Mar 29, 2026 1.8.0Emaki Forge 1.8.0Mar 29, 2026 1.7.0Emaki Forge 1.7.0Mar 29, 2026 1.5.0Emaki Forge 1.5.0Mar 28, 2026 1.2.0Emaki Forge 1.2.0Mar 27, 2026
Similar projects
Plugin →VeinMiner
Mine the whole vein on mining a single ore/block. Make the tedious mining experience to something satisfying and fun! FTB Ultimine alternative
99.3MSueta
VeinMiner Enchantment
Veinminer Addon - Adds vineminer enchantment to enchanting tables. Only tools with the enchantment can veinmine
18MSueta
ItemSwapper
Inventory update concept for hotswapping items.
2.1MSueta
Grim Anticheat
Fully async, multithreaded, predictive, open source, 3.01 reach, 1.005 timer, 0.01% speed, 99.99% antikb, "bypassable" 1.8-1.21 anticheat
820.3KSueta
Orbital Strike Cannon
This datapack/mod/plugin adds an Orbital Strike Cannon like wemmbu!
791KSueta
Click Villagers
Click to pick up villagers, reset their trades, change their biomes, claim them and much more!
635.9KSueta