EmakiForge | Blueprint-Driven Quality-Tiered Crafting System
Blueprints, material contribution, capacity limits, six quality tiers — a complete forging chain from raw materials to finished gear.
EmakiForge | Blueprint-Driven Quality-Tiered Crafting System
EmakiForge brings deep crafting gameplay to your server. Players learn recipes through blueprints, gather and contribute materials, make trade-offs within capacity limits, and forge equipment of varying quality. The six-tier quality system makes every forge attempt exciting, while the material contribution system turns the forging process itself into meaningful decision-making.
Forging Workflow
A complete forging session follows these steps:
1. Result Output — Players open the forge interface and select an unlocked blueprint recipe. Blueprints can be distributed as items or controlled via permissions. 2. Result Output — Place base materials and optional materials into the forge GUI. The system displays real-time capacity usage to help plan material combinations. 3. Result Output — Upon confirmation, the system performs a weighted random roll based on total material contribution to determine the output quality tier. 4. Result Output — The final item is generated with quality multipliers applied to attributes, name/lore modifications executed, audit records written, and the forge is complete.
Core Features
Quality System
EmakiForge provides a six-tier quality system, each with independent weight and attribute multiplier:
| Quality Tier | Default Weight | Multiplier | Description | | ------------ | -------------- | ---------- | ----------------------------------------- | | Flawed | 10 | 0.95x | Slightly below standard output | | Common | 60 | 1.0x | Most frequent base quality | | Fine | 30 | 1.05x | Minor improvement | | Superior | 5 | 1.1x | Noticeably above average | | Flawless | 2 | 1.15x | Rare quality, triggers server broadcast | | Perfect | 1 | 1.2x | Extremely rare, triggers server broadcast |
Key quality features:
- Weights determine roll probability; more material contribution shifts odds toward higher tiers - Attribute multiplier directly scales all base attribute values defined in the recipe - Each tier can have independent name prefixes (e.g., [Perfect], [Fine]) - Pity system: after a configurable number of consecutive forges, a minimum quality is guaranteed (default: Flawless after 60 attempts) - Quality pools can be customized globally or per-recipe
Material Contribution System
Forging isn't simple crafting — it's a strategic contribution process:
Base Materials - Minimum requirements that must be fully met before forging can begin - Each base material has fixed quantity requirements and capacity cost
Optional Materials - Extra input to improve quality chances or add special effects - Each optional material provides different attribute directions (fire damage, movement speed, magic penetration, etc.) - The number of optional material types per forge is capped by `optional_material_limit`
Capacity Limit - Total `capacity_cost` of all materials cannot exceed the recipe's `forge_capacity` - Forces players to make trade-offs between multiple optional materials - Special materials can provide `capacity_bonus` effects to expand the capacity ceiling
Contribution Calculation - Each material has an independent capacity cost value (`capacity_cost`) - Material effects stack additively onto the output item upon successful forge - Quality multiplier is applied to all material-provided attribute values
Name/Lore Action System
Six action types for modifying output item appearance:
| Action Type | Description | Example Use | | ---------------- | ---------------------------------------- | ---------------------------------- | | `append_suffix` | Append text to end of item name | Add `[Flame]` marker | | `prepend_prefix` | Prepend text to beginning of item name | Add quality tag `[Perfect]` | | `prepend` | Insert lines at top of lore | Display quality info | | `append` | Append lines at bottom of lore | Add attribute descriptions | | `insert_below` | Insert lines below a matched anchor line | Insert values below "Forge Stats:" | | `replace_line` | Replace the entire matched anchor line | Update existing attribute values |
All name/lore modifications are built on CoreLib's Ledger system, making them fully reversible and layer-independent. If an item is later modified by another system, the forge layer can be independently reverted without affecting other layers.
Effect System
Each material can provide multiple effect types:
| Effect Type | Description | | ---------------- | ------------------------------------------------------------------------------------ | | `variables` | Expression engine variables for lore placeholder rendering and attribute calculation | | `ea_attribute` | EmakiAttribute PDC attributes written directly to item data | | `es_skill` | EmakiSkills skill binding for active/passive abilities | | `name_action` | Item display name modifications | | `lore_action` | Item lore description modifications | | `capacity_bonus` | Special type that expands the forge capacity ceiling for the current session |
Effects support variable placeholders (e.g., `{physical_damage}`, `{fire_damage}`) that are automatically resolved to actual values during lore rendering.
Recipe Codex GUI
Players can browse all available recipes through a codex interface:
- Chest-based GUI displaying all registered forge recipes - Shows required materials, quantities, and capacity costs - Displays possible quality ranges and attribute directions - Pagination support for large recipe collections - Completed recipes marked with "Crafted" status
Forge Audit Trail
Every forged item stores complete forging information via PDC (PersistentDataContainer):
- Timestamp — Player UUID and name who performed the forge - Timestamp — Recipe ID used - Timestamp — Type and quantity of each material contributed - Timestamp — Rolled quality tier and multiplier - Timestamp — Millisecond-precision forge time
Audit data supports post-forge refresh: when recipes are updated, existing items can recalculate attributes from audit records without requiring players to re-forge.
Commands
| Command | Description | Permission | | ----------------- | ----------------------------------- | ------------------- | | `/ef help` | Display help information | `emakiforge.use` | | `/ef forge` | Open the standalone forge interface | `emakiforge.use` | | `/ef book` | Open the recipe codex | `emakiforge.book` | | `/ef reload` | Reload all configuration files | `emakiforge.reload` | | `/ef list recipe` | List all loaded recipes | `emakiforge.admin` |
Command aliases: `/eforge`, `/ef`
Permissions
| Permission Node | Description | Default | | ------------------- | -------------------- | ----------- | | `emakiforge.use` | Basic forge access | All players | | `emakiforge.book` | Recipe codex access | All players | | `emakiforge.reload` | Reload configuration | OP | | `emakiforge.admin` | Full admin access | OP |
PAPI Placeholders
Prefix: `%emakiforge_<placeholder>%`
| Placeholder | Description | | ------------------------- | --------------------------------------------------------------- | | `recipe_count` | Total number of loaded recipes | | `craft_count_<recipe_id>` | Player's forge count for a specific recipe | | `has_crafted_<recipe_id>` | Whether the player has completed a specific recipe (true/false) | | `total_crafts` | Player's total forge count across all recipes | | `last_crafted` | Recipe ID of the player's most recent forge | | `guarantee_<recipe_id>` | Player's pity counter for a specific recipe |
Ideal Server Types
EmakiForge is particularly well-suited for:
- Dungeon servers — Provides deep crafting gameplay as an alternative to simple crafting tables - Dungeon servers — Quality system provides ongoing goals for extended play - Dungeon servers — Quality variance naturally creates trading markets - Dungeon servers — Dungeon material drops + forge system creates complete gear loops
Not recommended for pure vanilla survival or small casual servers, as the forge system requires configuration effort and player learning investment.
Requirements
| Item | Requirement | | ----------------- | ------------------------------------------- | | Server | Spigot 1.21+ | | Java | 21+ | | Hard Dependencies | EmakiCoreLib | | Soft Dependencies | EmakiAttribute, EmakiSkills, PlaceholderAPI |
View Full Wiki Documentation | Join Discord Community | QQ Group