-
Notifications
You must be signed in to change notification settings - Fork 0
Home
Complete configuration guide for every module. Each module loads its configs from a dedicated subfolder inside your plugin data directory.
- Folder Structure
- config.yml — Global Settings
- message.yml — Messages
- Enhancement Module
- Slot Puncher Module
- Gem Disassemble Module
- Lucky Gem Module
- Gem Extension Module
- Deskin Module
plugins/MMOitemAllin/
├── config.yml # Global settings
├── message.yml # All plugin messages
├── gui/
│ └── eInventory.yml # Enhancement GUI layout
├── enhance/ # One .yml per enhancement stone
│ └── enhancement_stone_1.yml
├── protection_scroll/ # One .yml per protection scroll
│ └── protection_scroll_1.yml
├── slot/ # One .yml per slot puncher
│ └── slot_puncher_1.yml
├── disassemble/ # One .yml per disassemble stone
│ └── disassemble_stone_1.yml
├── luckyGem/ # One .yml per lucky gem
│ └── lucky_gem_1.yml
└── gemExtension/ # One .yml per skill/particle stone
├── skill_stone_1.yml
└── particle_stone_1.yml
All subfolders and example configs are auto-generated on first launch if they don't exist.
Located at plugins/MMOitemAllin/config.yml. Controls core behavior shared across modules.
# Maximum enhancement level any item can reach
max-enhancement-level: 3
# Star rating display appended to item lore
# #star-bar# is replaced with the actual star bar (e.g. ★★★☆☆)
enhancement-stars:
enabled: true
filled-star-char: "&6★"
empty-star-char: "&7☆"
lore-format:
- ""
- "&7Enhancement Stars: #star-bar#"
- ""
# Item name format after enhancement
# Variables: {original_name}, {level}
enhancement-name-format: "{original_name} &7+&f{level}"
# Whether to downgrade level on failure
failure-degrade: true
# How many levels to lose on failure
failure-degrade-amount: 1
# Developer mode — prints debug info to console and specific players
dev-mode:
enabled: false
notify-players: []
# Deskin module settings (see Deskin Module section)
deskin:
blocked-categories: []
skin-lore-format: "&eSkin Applied: &f{skin_name}"
skin-lore-none: "&eSkin Applied: &fNone"| Field | Type | Description |
|---|---|---|
max-enhancement-level |
Integer | Hard cap for enhancement level |
enhancement-stars.enabled |
Boolean | Toggle star lore display |
enhancement-name-format |
String | Name template. {original_name} = base name, {level} = current level |
failure-degrade |
Boolean | If true, failed enhancement reduces level |
failure-degrade-amount |
Integer | Levels lost per failure |
Located at plugins/MMOitemAllin/message.yml. Every player-facing message is configurable. Supports both & color codes and MiniMessage tags (e.g. <green>, <bold>).
All messages support variable placeholders like {level}, {cost}, {count}, etc. See the default file for the full list.
Folder: plugins/MMOitemAllin/enhance/
One file per stone. The filename (without .yml) becomes the stone ID.
# The MMOItems type and ID that represents this enhancement stone
mmoitem-type: "MATERIAL"
mmoitem-id: "STEEL_INGOT"
# Target whitelist — only items matching these entries can use this stone
# Format: "type" or "type:id" (e.g. "SWORD", "SWORD:FIRE_BLADE")
# Empty list or ["all"] = no restriction
allowed-targets:
- "all"
# Success rate — can be a single value/formula or conditional branches
# Simple: a flat value or formula
# success-rate-formula: "0.85"
# success-rate-formula: "1 - level * 0.05"
# Conditional: first matching condition wins (top to bottom)
success-rate-formula:
conditions:
"0":
condition: "level <= 5"
formula: "90"
"1":
condition: "level <= 10"
formula: "0.8"
"2":
condition: "level <= 15"
formula: "0.6"
"3":
condition: "level <= 20"
formula: "0.4"
"4":
condition: "level > 20"
formula: "0.2"
# Gold cost — same syntax as success-rate-formula (single or conditional)
cost-formula:
conditions:
"0":
condition: "level <= 10"
formula: "100"
"1":
condition: "level <= 20"
formula: "level * 200 + 1000"
"2":
condition: "level > 20"
formula: "level * 500 + 5000"
# Attribute enhancement — how stats scale on success/failure
attribute-enhancement:
default:
# Stats in this list are never modified by enhancement
excluded-stats:
- "CUSTOM_MODEL_DATA"
# Per-stat multiplier override (stat ID → multiplier)
# The final attribute change = base-multiplier × stat-multiplier × original-stat-value
stat-multipliers:
attack_damage: 1.2
# Base multiplier — conditional branches with separate success/fail formulas
base-multiplier:
conditions:
"0":
condition: "level <= 5"
success-formula: "0.05" # +5% on success
fail-formula: "-0.02" # -2% on failure
"1":
condition: "level <= 10"
success-formula: "0.1"
fail-formula: "-0.03"
"2":
condition: "level <= 15"
success-formula: "0.15"
fail-formula: "-0.05"
"3":
condition: "level <= 20"
success-formula: "0.25"
fail-formula: "-0.08"
"4":
condition: "level > 20"
success-formula: "0.35"
fail-formula: "-0.1"All formulas (success rate, cost, base multiplier) support these variables:
| Variable | Description |
|---|---|
level |
Current enhancement level of the item |
playerLevel |
Player's experience level |
itemLevel |
Item level (if applicable) |
Tip: Success rate values > 1 are treated as percentages (e.g.
90= 90%). Values ≤ 1 are treated as decimals (e.g.0.9= 90%).
Folder: plugins/MMOitemAllin/protection_scroll/
One file per scroll type.
When placed in the protection scroll slot of the Enhancement GUI, a protection scroll prevents level downgrade and attribute loss on failure. The scroll is consumed.
# The MMOItems type and ID that represents this protection scroll
mmoitem-type: "CONSUMABLE"
mmoitem-id: "PROTECTION_SCROLL"That's it — protection scrolls only need to be identified. All behavior is handled by the enhancement system.
File: plugins/MMOitemAllin/gui/eInventory.yml
Fully configurable GUI layout, title, slot positions, button actions, and scripts.
ui_layout:
# GUI title — supports color codes, PlaceholderAPI, ItemsAdder font images
title: "&6Enhancement Station"
# Number of rows (1-6)
rows: 4
# Optional custom open command (in addition to /mmoitemEnhance gui)
open_command:
enabled: true
name: "enhance"
permission: "enhanceGui.open"
aliases:
- "en"
# Scripts executed on GUI open/close
script:
open:
- 'play_sound{sound=BLOCK_CHEST_OPEN}'
close:
- 'play_sound{sound=BLOCK_CHEST_CLOSE}'
# Slot definitions
slots:
TARGET_SLOT:
type: target-item # Slot for the item to enhance
slot: 19
material: MAP
custom-model-data: 250
name: "&e&lPlace Item to Enhance"
lore:
- "&7Place your MMOItems weapon/armor here"
STONE_SLOT:
type: enhancement-stone # Slot for the enhancement stone
slot: 22
material: MAP
custom-model-data: 250
name: "&e&lPlace Enhancement Stone"
lore:
- "&7Different stones have different success rates"
PROTECTION_SCROLL_SLOT:
type: protection-scroll # Slot for optional protection scroll
slot: 25
material: MAP
custom-model-data: 250
name: "&e&lPlace Protection Scroll"
lore:
- "&7Prevents level loss on failure"
ENHANCE_BUTTON:
type: enhance-button # The button that triggers enhancement
slots: [30, 31, 32] # Can span multiple slots
material: MAP
custom-model-data: 250
display-name: "&a&lEnhance"
lore:
- ""
- "&7Current Level: &f{current_level} &7→ &f{next_level}"
- "&7Success Rate: &a{success_rate}%"
- "&7Cost: &6{cost}"
- ""
- "&eClick to enhance"
default-lore: # Shown when no items are placed
- ""
- "&7Place an item and stone first"
CLOSE_BUTTON:
type: static
slot: 0
material: MAP
custom-model-data: 250
name: "&c&lClose"
lore:
- "&7Click to close"
click-actions:
- 'play_sound{sound=UI_BUTTON_CLICK}'
- 'close'| Type | Purpose |
|---|---|
target-item |
Accepts the weapon/armor to enhance |
enhancement-stone |
Accepts the enhancement stone |
protection-scroll |
Accepts an optional protection scroll |
enhance-button |
Clickable button that performs the enhancement |
static |
Decorative/functional button (close, help, etc.) |
| Variable | Description |
|---|---|
{current_level} |
Item's current enhancement level |
{next_level} |
Level after successful enhancement |
{success_rate} |
Calculated success rate (%) |
{cost} |
Gold cost for this enhancement |
| Property | Description |
|---|---|
material |
Bukkit material name or XMaterial name |
custom-model-data |
Custom model data integer |
custom-model-data-string |
Custom model data string (1.21.4+) |
custom-model-data-float |
Custom model data float (1.21.4+) |
hide-tooltip |
Hide item tooltip (1.20.5+) |
glow |
Add enchantment glow effect |
fill-empty |
Fill all remaining empty slots with this item |
click-actions |
List of actions on click (close, play_sound{sound=X}) |
Folder: plugins/MMOitemAllin/slot/
One file per puncher type.
Slot punchers add gem sockets to weapons. Drag a slot puncher onto a weapon to use.
# MMOItems type and ID of this slot puncher item
mmoitem-type: "CONSUMABLE"
mmoitem-id: "SOCKET_PUNCHER"
# Success rate — value (0-1 or percentage) or formula
# Available variables: currentSockets (current_sockets), appliedCount (applied_count)
success-rate: "0.75"
# Number of gem sockets added on success
sockets-to-add: 1
# Max times this puncher type can be used on a single weapon (-1 = unlimited)
max-sockets-per-weapon: 5| Field | Type | Default | Description |
|---|---|---|---|
mmoitem-type |
String | — | MMOItems item type |
mmoitem-id |
String | — | MMOItems item ID |
success-rate |
String | "0.5" |
Success probability. Supports formulas with currentSockets and appliedCount
|
sockets-to-add |
Integer | 1 |
Sockets granted per successful use |
max-sockets-per-weapon |
Integer | -1 |
Usage cap per weapon. -1 = no limit |
The puncher is always consumed on use, whether the attempt succeeds or fails.
Folder: plugins/MMOitemAllin/disassemble/
One file per disassemble stone type.
Disassemble stones let players remove socketed gems from equipment through a GUI. Players can select specific gems to remove.
# MMOItems type and ID of this disassemble stone
mmoitem-type: "CONSUMABLE"
mmoitem-id: "DISASSEMBLE_STONE"
# Whether the stone is consumed after use
consume-on-use: true- Player holds a weapon with gems in main hand
- Player drags a disassemble stone onto the weapon (or uses the command)
- A GUI opens showing all socketed gems
- Player selects which gems to remove
- Confirm → gems and their stat contributions are removed from the weapon
Folder: plugins/MMOitemAllin/luckyGem/
One file per lucky gem type.
Lucky gems increase a gem's success rate before socketing. Drag a lucky gem onto any MMOItems GEM_STONE to apply the bonus.
# MMOItems type and ID of this lucky gem
mmoitem-type: "MATERIAL"
mmoitem-id: "LUCKY_GEM"
# Success rate bonus — fixed value or formula
# Fixed: "10" adds 10% to the gem's success rate
# Formula: supports `currentRate` / `current_rate` variables
# e.g. "currentRate * 0.1" adds 10% of the current rate
success-rate-bonus: "10"
# Whether the lucky gem is consumed after use
consume-on-use: true| Field | Type | Default | Description |
|---|---|---|---|
mmoitem-type |
String | — | MMOItems item type |
mmoitem-id |
String | — | MMOItems item ID |
success-rate-bonus |
String | "10" |
Bonus amount. Can be a number or formula using currentRate
|
consume-on-use |
Boolean | true |
Whether the gem is consumed |
The resulting success rate is capped at 100%.
Folder: plugins/MMOitemAllin/gemExtension/
One file per gem extension. Two types: Skill Stones and Particle Stones.
Drag a gem extension item onto a weapon to apply the skill or particle effect.
Attach an active ability to a weapon.
# Type must be SKILL
gem-type: "SKILL"
# MMOItems identity of this skill stone
mmoitem-type: "MATERIAL"
mmoitem-id: "skill_stone_1"
# Consumed after successful application
consume-on-use: true
# Target whitelist (empty or ["all"] = any weapon)
allowed-targets: []
# The skill ID registered in MMOItems/MythicLib
skill-id: "FIREBOLT"
# How the skill is triggered
# Options: RIGHT_CLICK, LEFT_CLICK, SHIFT_RIGHT_CLICK, SHIFT_LEFT_CLICK, etc.
trigger-type: "RIGHT_CLICK"
# Whether to hide the skill description from item lore
hide-skill: false
# Skill modifiers (damage, cooldown, mana cost, etc.)
skill-modifiers:
damage: 10.0
cooldown: 5.0
mana: 20.0Add a visual particle effect to a weapon.
# Type must be PARTICLE
gem-type: "PARTICLE"
# MMOItems identity of this particle stone
mmoitem-type: "MATERIAL"
mmoitem-id: "particle_stone_1"
consume-on-use: true
allowed-targets: []
# Particle pattern type (MMOItems particle types)
# Examples: HELIX, CROWN, WINGS, AURA, VORTEX
particle-type: "HELIX"
# Minecraft particle name
# Examples: FLAME, HEART, SMOKE, ENCHANT, REDSTONE
particle: "FLAME"
# Optional RGB color for colorable particles (e.g. REDSTONE)
particle-color:
red: 255
green: 0
blue: 0
# Fine-tune the particle display
particle-modifiers:
radius: 0.5
height: 1.0
amount: 3.0| Field | Type | Default | Description |
|---|---|---|---|
gem-type |
String | — |
SKILL or PARTICLE
|
mmoitem-type |
String | — | MMOItems item type |
mmoitem-id |
String | — | MMOItems item ID |
consume-on-use |
Boolean | true |
Consumed after use |
allowed-targets |
List | [] |
Whitelist. Format: "type" or "type:id". Empty = allow all |
Config section in plugins/MMOitemAllin/config.yml under deskin:.
The deskin module lets players remove applied skins from weapons through a GUI, restoring the original appearance and returning the skin item to inventory.
deskin:
# Block specific item categories from being deskinned
# Leave empty to allow all categories
blocked-categories: []
# Example: ["SWORD", "ARMOR"]
# Lore line format when a skin is applied
# {skin_name} is replaced with the skin's display name
skin-lore-format: "&eSkin Applied: &f{skin_name}"
# Lore line when no skin is applied
skin-lore-none: "&eSkin Applied: &fNone"- Open the deskin GUI via
/mmoitemEnhance deskin - Place the skinned weapon into the input slot
- Click the confirm button
- The skin is removed and the skin item is returned to the player's inventory
- The weapon's material, model data, armor trim, equippable model, and skull texture are all restored to original
The module automatically detects and restores:
- Material type
- Custom Model Data
- Item Model (1.21.2+)
- Custom Model Data Component (1.21.4+)
- Leather armor color
- Armor trim (1.20+)
- Equippable model (1.21.2+)
- Skull texture (Player Heads)
- Unbreakable state
All version-specific restorations are handled gracefully — the plugin detects the server version at runtime and skips unsupported operations.
| Command | Description | Permission |
|---|---|---|
/mmoitemEnhance gui |
Open enhancement GUI | mmoitemenhanced.enhance |
/mmoitemEnhance disassemble |
Open disassemble GUI | mmoitemenhanced.disassemble |
/mmoitemEnhance deskin |
Open deskin GUI | mmoitemenhanced.deskin |
/mmoitemEnhance reload |
Reload all configs | mmoitemenhanced.admin |
/mmoitemEnhance info |
Plugin information | — |
Custom enhancement GUI command (if open_command.enabled: true in eInventory.yml):
| Command | Permission |
|---|---|
/enhance (or configured name) |
Configured in open_command.permission
|