1.4.1
Compatibility
Required content
Changes
1️⃣ Installation
- Download the .jar file
- Place it inside: plugins/
- Start your server
- (Optional) Install FancyHolograms for hologram support
Requirements:
- Paper / Spigot 1.21+
- Java 21
2️⃣ Creating a New Recipe
Step 1 – Open the Editor GUI
Command: /ic
Required permission: itemcraft.editor
Step 2 – Set Ingredients
The GUI looks like a vanilla crafting table:
[ 3x3 Crafting Grid ] → [ Result Slot ]
- Drag items into the 3x3 grid
- You can use custom amounts (e.g., 32 gold in one slot)
- Place the output item in the Result slot
Step 3 – Set Craft Limit
Use the "Max crafts" button:
- Left Click → +1
- Shift + Left → +10
- Right Click → -1
- Shift + Right → -10
Important: 0 = Unlimited crafting
Step 4 – Choose Limit Mode
Use the "Limit Mode" button.
There are 2 modes:
GLOBAL
- Entire server can craft the recipe X times total
- Stored in: globaldata.yml
PER_PLAYER
- Each player can craft the recipe X times individually
- Stored in: playerdata.yml
You can switch modes freely before saving.
Step 5 – Save the Recipe
Click "Save".
You will be prompted to enter a recipe ID in chat.
Example: legend_sword
The file will be created in: plugins/ItemCraft/recipes/legend_sword.yml
3️⃣ Opening a Recipe Manually
Command: /ic open <id>
Example: /ic open legend_sword
Required permission: itemcraft.open
4️⃣ Binding a Recipe to a Block
Bind
Look at a block and run:
/ic gan <id>
Example: /ic gan legend_sword
That block becomes a custom crafting block.
Required permission: itemcraft.bind
Unbind
Look at the block and run:
/ic removegan
Required permission: itemcraft.unbind
5️⃣ Crafting via Block
Once a block is bound:
- Right-click the block
- The custom crafting GUI opens
- The system will:
- Check materials
- Check craft limit
- Remove required items
- Give output
6️⃣ FancyHolograms Support
If FancyHolograms is installed:
- A hologram is automatically created when binding a block
- /ic reload refreshes holograms
- Can be enabled/disabled in config.yml
Safe fallback: If FancyHolograms is not installed, plugin works normally without holograms.
7️⃣ Reloading the Plugin
Command: /ic reload
This reloads:
- config
- language files
- recipes
- bindings
- holograms
Permission required: itemcraft.reload
8️⃣ File Structure
plugins/ItemCraft/ ├── config.yml ├── lang/ ├── recipes/ ├── bindings.yml ├── playerdata.yml └── globaldata.yml
Each recipe is stored in its own YAML file.
9️⃣ Permissions
itemcraft.editor itemcraft.open itemcraft.bind itemcraft.unbind itemcraft.reload itemcraft.help
🔒 Security & Protection
The GUI is fully protected:
- No shift-click exploit
- No drag exploit
- No hotbar swap exploit
- No stealing decorative items
- Safe data saving
- Automatic reload handling
🎯 Example Setup
Recipe:
- 1 Diamond Block
- 32 Gold
- Result: Netherite Ingot
- Max crafts: 50
- Mode: GLOBAL
After saving:
/ic gan legend_block
Now the entire server can craft it only 50 times total.
If you need:
- A short summary version
- SEO optimized description
- A professional GitHub README
- A formatted Modrinth wiki page
- A Discord announcement post
Just tell me which one you want.
Projects on Modrinth are automatically available through a Maven repository for use with JVM build tools such as Gradle. To learn more about the Modrinth Maven API, click here.
Note: When available, you should use the creator's maven repo instead as it will have transitive dependency information that the Modrinth Maven API does not. You may also end up with duplicate dependencies if you use a mix of Modrinth and non-Modrinth Maven repositories for your dependencies, because the group identifier will be different when served through the Modrinth Maven API.
Maven coordinates:
Version ID:
build.gradle:
repositories {
exclusiveContent {
forRepository {
maven {
name = "Modrinth"
url = "https://api.modrinth.com/maven"
}
}
// forRepositories(fg.repository) // Uncomment when using ForgeGradle
filter {
includeGroup "maven.modrinth"
}
}
}
// Standard Gradle dependency
dependencies {
implementation "maven.modrinth:z9Ff9uno:NNW3Y50O"
}
// Legacy Loom dependency
dependencies {
modImplementation "maven.modrinth:z9Ff9uno:NNW3Y50O"
}
