Welcome to the Hangar Open Beta. Please report any issue you encounter on GitHub!
Avatar for Piotrulla

Custom recipes for every station on every Bukkit server from 1.8 to the latest Paper.

Report CraftingLib?

CraftingLib

CraftingLib 4.0

Custom recipes for every station, on every Bukkit server from 1.8 to the latest Paper. One API — the version differences are handled for you.

GitHub · bStats · Buy Me a Coffee

⚠️ CraftingLib is a developer library, not a standalone plugin. Shade it into your plugin.

this.craftingLib.getRecipeManager().registerRecipe(BukkitRecipes.shaped("super-pickaxe")
        .withPattern("DDD", " S ", " S ")
        .withIngredient('D', Material.DIAMOND_BLOCK, 3)
        .withIngredient('S', Material.STICK)
        .withResult(superPickaxe)
        .build());

✨ Features

  • Every recipe type — shaped, shapeless, furnace / blast furnace / smoker / campfire, brewing, stonecutter, smithing, anvil and grindstone
  • Exact matching — compare ingredients by full item data (name, lore, enchantments, NBT), material only, or PersistentDataContainer only
  • Ingredient amounts — e.g. 3 diamond blocks per slot; shift-click crafts as many as possible
  • 2x2 & 3x3 grids — small recipes work in the player inventory, patterns can sit anywhere and be mirrored
  • Recipe book — discovery, groups, categories (tabs), and on Paper 1.21+ a proper autofill that places exact items and amounts
  • Replace vanilla recipes — remove or block recipes with the same result or input
  • Crafter support (1.21+) — custom recipes work in the autocrafter
  • Capability-based version adapters — features are detected at runtime, not from version strings, so forks and backports just work
  • okaeri-configs — every recipe type can be stored in and loaded from YAML
  • Fail-fast API — immutable recipes, validating builders, error messages that name the recipe and the problem

🎬 Showcase

Shaped crafting — custom items, amounts per slot, mirroring

Ruby pickaxe Ruby axe Ruby sword Mirrored

Replacing vanilla recipes

Torch

Shapeless crafting — 3x3 and 2x2 (player inventory)

Bread Shapeless 2x2

Furnace, blast furnace, smoker, campfire

Furnace Blast furnace Smoker Campfire

Smithing table

Smithing

Stonecutter

Redstone stonecutter Stone bricks stonecutter

Grindstone

Grindstone sword Grindstone diamond

Anvil

Anvil

Brewing (Paper)

Brewing

📦 Installation

repositories {
    maven("https://repo.eternalcode.pl/releases")
}

dependencies {
    implementation("dev.piotrulla:craftinglib-bukkit:4.0.0")
    // optional: YAML serialization of recipes
    implementation("dev.piotrulla:craftinglib-bukkit-okaeri-serdes:4.0.0")
}

Remember to relocate the library when shading, so two plugins with different versions don't clash:

tasks.shadowJar {
    relocate("dev.piotrulla.craftinglib", "your.plugin.libs.craftinglib")
}

🚀 Quick start

public final class ExamplePlugin extends JavaPlugin {

    private BukkitCraftingLib craftingLib;

    @Override
    public void onEnable() {
        this.craftingLib = BukkitCraftingLib.create(this);

        this.craftingLib.getRecipeManager().registerRecipe(BukkitRecipes.shaped("better-torches")
                .withPattern("C", "S")
                .withIngredient('C', Material.COAL)
                .withIngredient('S', Material.STICK)
                .withResult(Material.TORCH, 8)
                .replaceVanillaRecipes(true)
                .build());
    }

    @Override
    public void onDisable() {
        this.craftingLib.shutdown();
    }
}
Manager Recipe
getRecipeManager() shaped / shapeless crafting
getSmeltingManager() furnace, blast furnace, smoker, campfire
getBrewingManager() brewing stand
getStonecuttingManager() stonecutter
getSmithingManager() smithing table
getAnvilManager() anvil
getGrindstoneManager() grindstone

🧩 Version support

Feature Available from
Shaped / shapeless, ingredient amounts 1.8
Anvil 1.11
Keyed recipes (NamespacedKey) 1.12
Recipe discovery, recipe book groups 1.13
Blast furnace, smoker, campfire, stonecutter, PERSISTENT_DATA 1.14
Smithing table 1.16
Grindstone 1.19.3
Crafter, recipe book autofill (Paper) 1.21
Brewing (PotionMix) Paper only

Requires Java 11+. Unsupported functional features fail fast with a clear reason; cosmetic ones are skipped silently.

📖 Documentation

All builders, match modes, recipe book options and the YAML format: GitHub README

📜 License

LGPL-3.0 — use it in any plugin, open or closed source, free or paid. Only changes to CraftingLib itself must be published.


Found a bug or have an idea? Open an issue on GitHub.

Information

Category
Developer Tools
Published
October 25, 2026
License
1Downloads
1Stars
Library

Pinned Versions

Members

1