Mastering Custom Recipes with the JSON Recipe Manager Mod
Minecraft’s crafting system is the beating heart of survival mode, but sometimes the vanilla recipes just don’t cut it. Whether you’re building a modpack, tweaking progression, or simply want to add a personal touch to your world, the JSON Recipe Manager mod hands you full control over every crafting table interaction. Instead of wrestling with complex Java code, you can define, remove, or replace recipes using straightforward JSON files—no programming knowledge required.
What Makes This Mod Unique?
Unlike traditional recipe mods that rely on in-game commands or rigid data packs, JSON Recipe Manager reads directly from a dedicated config folder. You can load multiple recipe files at once, use constants to avoid repetition, and even schedule changes to happen during specific game events. The mod supports the vanilla Minecraft JSON format as well as Forge’s ore dictionary, so it fits seamlessly into modded environments.
Getting Started with JSON Recipes
After you drop the mod into your mods folder—or if you’re using a launcher like foxygame.net that lets you install mods right from its menu, the whole setup becomes even smoother—you’ll find a new directory: config/JSONRecipes. This is where all your custom recipe files live. The mod scans this folder automatically and applies every valid JSON file it finds.
A special file called _constants.json can hold reusable ingredient groups. For example:
[
{
"name": "MIXED",
"ingredient": [
{ "type": "forge:ore_dict", "ore": "stickWood" },
{ "item": "minecraft:torch" }
]
}
]
Once defined, you can reference "#MIXED" anywhere in your recipes to pull in that exact combination of items. This drastically reduces duplication when many recipes share the same components.
Crafting Recipes from JSON Files
Creating a shaped recipe is as simple as writing a single JSON object. The following example adds a recipe that turns nine diamonds into diamond ore—a handy way to store gems compactly:
{
"type": "forge:ore_shaped",
"group": "json.recipes",
"result": { "item": "minecraft:diamond_ore" },
"pattern": [
"x x",
" x ",
"x x"
],
"key": {
"x": { "type": "forge:ore_dict", "ore": "gemDiamond" }
}
}
You can also bundle multiple recipes into a single file by wrapping them in an array. This keeps your config folder tidy. The next snippet shows two recipes that both use the #MIXED constant we defined earlier:
[
{
"type": "forge:ore_shaped",
"group": "json.recipes",
"result": { "item": "minecraft:coal_ore" },
"pattern": [ "x x", " y ", "x x" ],
"key": {
"x": { "item": "minecraft:coal", "data": 0 },
"y": { "item": "#MIXED" }
}
},
{
"type": "forge:ore_shaped",
"group": "json.recipes",
"result": { "item": "minecraft:iron_ore" },
"pattern": [ "x x", " y ", "x x" ],
"key": {
"x": { "type": "forge:ore_dict", "ore": "ingotIron" },
"y": { "item": "#MIXED" }
}
}
]
The mod fully respects Forge’s ore dictionary, so you can use tags like ingotIron to match any mod’s iron ingot automatically. This makes your custom recipes compatible with a huge range of modpacks.
Removing and Replacing Vanilla Recipes
Sometimes you don’t want to add a recipe—you want to change or delete an existing one. JSON Recipe Manager handles this elegantly with remove and add arrays. To replace the wooden axe recipe with a more interesting shape, you’d write:
{
"remove": [ { "item": "minecraft:wooden_axe" } ],
"add": [
{
"type": "forge:ore_shaped",
"group": "json.recipes",
"result": { "item": "minecraft:wooden_axe" },
"pattern": [ "xx ", "xx ", " x" ],
"key": { "x": { "type": "forge:ore_dict", "ore": "stickWood" } }
}
]
}
This first strips out the default recipe, then inserts the new one. The removal happens cleanly, preventing duplicate recipe conflicts.
For even finer control, you can tie recipe changes to the init event. This ensures the swap occurs right as the game starts, before other mods might interfere. The next example replaces a Steve’s Carts module component recipe and multiplies the output to 12 items:
{
"when": "init",
"remove": [ { "item": "stevescarts:modulecomponents", "data": 43 } ],
"add": [
{
"type": "forge:ore_shaped",
"group": "json.recipes",
"result": { "item": "stevescarts:modulecomponents", "data": 43, "count": 12 },
"pattern": [ "xx ", "xx ", " " ],
"key": { "x": { "type": "forge:ore_dict", "ore": "stickWood" } }
}
]
}
Using "when": "init" is perfect for modpack authors who need deterministic load order and want to avoid recipe clashes during world generation.
Tips for Advanced Customization
- Use descriptive filenames like
wood_tweaks.jsonorstorage_blocks.jsonto keep your config folder organized. - Test recipes in a creative world before committing them to a survival playthrough—small JSON typos can cause silent failures.
- Leverage the ore dictionary heavily. Instead of specifying
minecraft:iron_ingot, useingotIronto support all modded iron variants. - Keep the
_constants.jsonfile lean. Only define groups that are truly reused; overloading it can make debugging harder.
If you ever get stuck or want to share your creations, the developer welcomes feedback through the MMD Cat Mods Discord server or via GitHub issues. That direct line to the creator means bugs get squashed quickly and new features often come from community suggestions.
Take Full Control of Your Crafting Table
The JSON Recipe Manager mod transforms Minecraft’s crafting system into a flexible canvas. You can introduce entirely new recipes, rebalance existing ones, or completely overhaul progression without touching a single line of Java. The ability to load multiple JSON files, use constants, and time recipe swaps to the init event gives you a level of precision that vanilla data packs simply can’t match. Whether you’re fine-tuning a personal world or building the next great modpack, this tool puts the power exactly where it belongs: in your hands.