Mericle's CustomRecipes
PluginMIT

Mericle's CustomRecipes

CustomRecipes is a lightweight Minecraft Spigot plugin that allows server administrators to add custom crafting recipes using simple JSON files. The plugin supports both shaped and shapeless recipes with hot-reload functionality.

15
Downloads
0
Followers
6 months ago
Updated
📦
1
Versions

📖About Mericle's CustomRecipes

MERICLE'S CUSTOM RECIPES

Project Description

CustomRecipes is a lightweight, developer-friendly Minecraft Spigot plugin that enables server administrators to easily add custom crafting recipes to their Minecraft servers using simple JSON configuration files. The plugin bridges the gap between complex recipe management systems and user-friendly configuration, providing a clean and intuitive way to extend Minecraft's crafting system.

Core Purpose

This plugin addresses the common need for Minecraft server administrators to add custom crafting recipes without requiring complex programming knowledge. It provides a simple, JSON-based approach to recipe creation that's both human-readable and easy to maintain:

  • File-driven configuration - Recipes defined in individual JSON files
  • Hot-reload capability - Add recipes without server restarts
  • ZenScript-inspired syntax - Familiar format for experienced users
  • Zero dependencies - Standalone plugin with no external requirements

Key Features

JSON-Based Recipe System

  • Recipes stored in individual .json files in the recipes/ folder
  • Comprehensive error handling with detailed logging for troubleshooting
  • Automatic example recipe generation on first run

Comprehensive Recipe Support

  • Shaped Recipes: Position-dependent crafting patterns (like vanilla tools)
  • Shapeless Recipes: Order-independent ingredient combinations (like vanilla dyes)
  • Item Tag Support: Uses Minecraft's item tags (e.g., #minecraft:sand) to accept multiple material variants

Advanced Item Customization

  • Custom display names: Full color code support using & formatting
  • Rich lore text: Multi-line item descriptions with color formatting
  • Enchantment application: Automatic enchantment application to crafted items
  • Flexible output quantities: Support for recipes producing multiple items

Recipe Management

  • Hot-reload system with /customrecipes reload command
  • Recipe validation with detailed error reporting
  • Automatic registration with Bukkit's crafting system
  • Conflict detection and resolution

Developer-Friendly Architecture

  • Modular design with clean separation of concerns
  • Extensible structure for future feature additions
  • Modern Java practices utilizing Java 21 features

Commands

  • /customrecipes - Show plugin information
  • /customrecipes reload - Reload all recipes without server restart

Recipe Format Examples

Shaped Recipe (position matters)

{
  "type": "shaped",
  "name": "reinforced_sword",
  "result": {
    "item": "minecraft:diamond_sword",
    "count": 1,
    "display_name": "&bReinforced Sword",
    "lore": ["&7Enhanced with special materials"],
    "enchantments": {"sharpness": 2, "unbreaking": 1}
  },
  "pattern": [
    ["minecraft:diamond", "minecraft:diamond", "minecraft:diamond"],
    ["minecraft:air", "minecraft:stick", "minecraft:air"],
    ["minecraft:air", "minecraft:stick", "minecraft:air"]
  ]
}

Shapeless Recipe (order doesn't matter)

{
  "type": "shapeless",
  "name": "dirt_diamonds",
  "result": {
    "item": "minecraft:diamond",
    "count": 4,
    "display_name": "&aDirt Diamond"
  },
  "ingredients": [
    "minecraft:dirt", "minecraft:dirt", 
    "minecraft:dirt", "minecraft:stick"
  ]
}

Server Impact

  • Performance: Efficient recipe registration with minimal runtime overhead
  • Compatibility: Works with Spigot, Paper, and Bukkit-based servers
  • Scalability: Handles numerous custom recipes without performance impact
  • Data: Minimal storage footprint with file-based configuration

Installation

  1. Download the plugin JAR file
  2. Place in your server's plugins/ folder
  3. Restart the server
  4. Add JSON recipe files to plugins/CustomRecipes/recipes/
  5. Use /customrecipes reload to load new recipes