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

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
PersistentDataContaineronly - 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

Replacing vanilla recipes

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

Furnace, blast furnace, smoker, campfire

Smithing table

Stonecutter

Grindstone

Anvil

Brewing (Paper)

📦 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.
Pinned Versions
- R1.8–26.3
Pages
Members
1Owner