Easy Custom Craft ( all mods compatible )

Quick rating

Easy Custom Craft ( all mods compatible )

No reviews yet

A Minecraft Forge mod that lets admins create their own recipes in-game — no files, no JSON. Recipes are stored per world/server and applied instantly.

QoL & Tweaks
Mod Loaders
Forge
Minecraft

Community voices

Reviews

Versions
Loading versions…
Match includes

Click once to include, again to exclude, again to clear

Rating Any
Any 0.5 1.0 1.5 2.0 2.5 3.0 3.5 4.0 4.5 5.0
Min
Max
Play Status
Reviews
Time Played
hrs+
Verified developers only
Has developer response
List view
Grid view
Compact view
Sort by
Date
Rating
Helpful
Unhelpful
Edited
Sort ascending
Delete this review?

This removes your review from the project. You can write a new review after.

Review submitted for moderation

Your review has been sent to moderators, who will check that it meets our guidelines before it appears publicly.

No reviews yet. Be the first to review this project!

Get it on

Available Platforms

Compatibility

Supported Environments

Dev Environment
Client Required
Server Required

About

Project Details

Type
Mod
License
All Rights Reserved
Latest Version
easycustomcraft-1.21.1-1.0.0.jar
Authors
CurseForge
Modrinth

For authors

Embed Badge

If you're the author of this project, you can embed a live badge anywhere that supports HTML or Markdown. It updates automatically whenever ratings change.

Custom banner text
ModDex rating badge preview

Use HTML for any page that supports it, or Markdown for README files and Markdown-based descriptions.

Identifiers

Platform IDs

CurseForge ID
Modrinth ID

Resources

External Links

Source Issues Wiki Discord

About

Description

Easy Custom Craft

A Minecraft Forge 1.20.1 mod that lets admins create their own recipes in-game — no files, no JSON. Recipes are stored per world/server and applied instantly.

Features

  • Crafting table – shaped & shapeless (commands + 3×3 GUI)
  • Cooking – furnace, blast furnace, smoker, campfire (xp + time)
  • Smithing table & stonecutter
  • Tags – use tag:… ingredients anywhere + create your own tags
  • Any modded machine (Create, Mekanism, Thermal…) – scans every recipe type, detects its options, with command auto-complete, multiple inputs and fluids — all without JSON
  • NBT results and modded items supported

Commands (/ecc)

  • Public: list, preview <name>
  • Admin (OP): reload, remove <name>, and create …:
    • create craft_with_gui
    • create craft crafting_table shaped|shapeless …
    • create craft furnace|blastfurnace|smoker|campfire|smithing|stonecutting …
    • create tag <name> <values…>
    • create modded_craft types [filter]
    • create modded_craft <type> <name> <input[,input2,…]> <output> [count] [key=value…]

Documentation (advanced)

Value grammar

Every "ingredient" position accepts:

Syntax Meaning
minecraft:stick / stick item (namespace defaults to minecraft)
tag:<ns:path> item tag → {"tag":"…"}
empty / air blank crafting cell (shaped only)

Result positions take a concrete item (via the vanilla item argument, so NBT like minecraft:diamond_sword{…} works). In modded_craft only, key=value values additionally accept: fluid:<ns:path>[:amount] (default amount 1000), true/false, numbers, plain strings, and comma lists a,b,c (→ JSON array).

Recipe names are sanitized to [a-z0-9/._-] (other chars → _).

Crafting table

  • shaped <name> <s1>[ s2..s9] result <item> [count]
    • Ingredients come first; the literal result ends the grid. Trailing empty cells are optional (omit them); use empty/air only for internal gaps.
    • Grid is filled left→right, top→bottom; the pattern is auto-trimmed to its bounding box. Up to 16 distinct ingredients.
  • shapeless <name> <ing1>[ ing2..ing9] result <item> [count]
  • count is optional (default 1, max 64).

Cooking

<station> <name> <ingredient> <result> [experience] [cookingtime]

  • Stations & default cook time: furnace 200, blastfurnace 100, smoker 100, campfire 600 ticks.
  • experience default 0.0. Result supports count + NBT (Forge object result).

Smithing & stonecutting

  • smithing <name> <template> <base> <addition> <result> [count]minecraft:smithing_transform; all three inputs required (1.20.1 rule). Result count/NBT supported.
  • stonecutting <name> <ingredient> <result> [count] → result is a plain item id, so NBT on the result is not supported (vanilla serializer limitation).

Tags

create tag <name> <value1> [value2…] writes data/easycustomcraft/tags/items/<name>.json (replace:false). Values are items or tag: references (nested as #ns:path). The tag becomes usable everywhere as tag:easycustomcraft:<name>. Referencing an unknown tag elsewhere fails loudly (validated against the live tag manager).

Modded recipes (modded_craft)

Discovery

  • types with no filter → one line per mod with a type count.
  • types <filter> → matching type ids; a single match prints a full analysis: input/output field names, fluid usage, and every detected option with its observed values (e.g. heatRequirement = heated, superheated).
  • Tab-completion after the output suggests all detected option keys, then their values.

Creation <type> <name> <input[,…]> <output> [count] [key=value…] The builder works by learning from a real recipe of that type and editing it:

  1. Picks a template recipe of the type, preferring one in the type's own namespace and without conditions.
  2. Strips conditions (so your recipe never inherits a forge:mod_loaded dependency on another mod).
  3. Replaces item inputs with your list (fluid inputs from the template are kept); replaces the first item output with yours (secondary/fluid outputs kept).
  4. Applies each key=value override onto the JSON (any top-level field; lists via commas).
  5. Validates with the mod's own RecipeSerializer — invalid recipes are rejected with the mod's error, never written.
  6. Writes + reloads, then reports the options kept from the example (e.g. heatRequirement=heated) so you can override them.

Scope & limits

  • Best for 1→N item machines plus scalar/enum options; Create mixing-style recipes typically need ≥2 inputs or heat.
  • Schemas are learned from loaded recipes only (Forge 1.20.1 serializers are not introspectable), so a field never used by any installed recipe won't be suggested — but you can still type any key=value manually.
  • The full type schema is built in one pass over all recipes and cached (first types/tab may take a moment); string fields with >16 distinct values are treated as free-form.

Storage & runtime

  • Each recipe is a data-pack file in <world>/datapacks/easycustomcraft/data/easycustomcraft/recipes/<name>.json.
  • After every create/remove the mod runs a programmatic resource reload mirroring vanilla /reload, auto-enabling the pack on first use — changes are live immediately, no restart.
  • This makes recipes inherently per world (single-player) or per server (dedicated).

Permissions & sides

  • Root /ecc is public; list/preview are open. Everything under create, plus reload/remove, requires permission level 2 (OP).
  • Custom command argument types (ingredient, ingredients) are registered with Forge, so the command tree syncs correctly. Install on the server for functionality and on the client for the GUI and command auto-complete.

Easy Custom Craft A Minecraft Forge 1.20.1 mod that lets admins create their own recipes in-game — no files, no JSON. Recipes are stored per world/server and applied instantly.

Features Crafting table – shaped & shapeless (commands + 3×3 GUI) Cooking – furnace, blast furnace, smoker, campfire (xp + time) Smithing table & stonecutter Tags – use tag:… ingredients anywhere + create your own tags Any modded machine (Create, Mekanism, Thermal…) – scans every recipe type, detects its options, with command auto-complete, multiple inputs and fluids — all without JSON NBT results and modded items supported Commands (/ecc) Public: list, preview Admin (OP): reload, remove , and create …: create craft_with_gui create craft crafting_table shaped|shapeless … create craft furnace|blastfurnace|smoker|campfire|smithing|stonecutting … create tag <values…> create modded_craft types [filter] create modded_craft <input[,input2,…]> [count] [key=value…] Documentation (advanced) Value grammar Every "ingredient" position accepts:

Syntax Meaning minecraft:stick / stick item (namespace defaults to minecraft) tag:ns:path item tag → {"tag":"…"} empty / air blank crafting cell (shaped only) Result positions take a concrete item (via the vanilla item argument, so NBT like minecraft:diamond_sword{…} works). In modded_craft only, key=value values additionally accept: fluid:ns:path[:amount] (default amount 1000), true/false, numbers, plain strings, and comma lists a,b,c (→ JSON array).

Recipe names are sanitized to [a-z0-9/._-] (other chars → _).

Crafting table shaped [ s2..s9] result [count] Ingredients come first; the literal result ends the grid. Trailing empty cells are optional (omit them); use empty/air only for internal gaps. Grid is filled left→right, top→bottom; the pattern is auto-trimmed to its bounding box. Up to 16 distinct ingredients. shapeless [ ing2..ing9] result [count] count is optional (default 1, max 64). Cooking [experience] [cookingtime]

Stations & default cook time: furnace 200, blastfurnace 100, smoker 100, campfire 600 ticks. experience default 0.0. Result supports count + NBT (Forge object result). Smithing & stonecutting smithing [count] → minecraft:smithing_transform; all three inputs required (1.20.1 rule). Result count/NBT supported. stonecutting [count] → result is a plain item id, so NBT on the result is not supported (vanilla serializer limitation). Tags create tag [value2…] writes data/easycustomcraft/tags/items/.json (replace:false). Values are items or tag: references (nested as #ns:path). The tag becomes usable everywhere as tag:easycustomcraft:. Referencing an unknown tag elsewhere fails loudly (validated against the live tag manager).

Modded recipes (modded_craft) Discovery

types with no filter → one line per mod with a type count. types → matching type ids; a single match prints a full analysis: input/output field names, fluid usage, and every detected option with its observed values (e.g. heatRequirement = heated, superheated). Tab-completion after the output suggests all detected option keys, then their values. Creation <input[,…]> [count] [key=value…] The builder works by learning from a real recipe of that type and editing it:

Picks a template recipe of the type, preferring one in the type's own namespace and without conditions. Strips conditions (so your recipe never inherits a forge:mod_loaded dependency on another mod). Replaces item inputs with your list (fluid inputs from the template are kept); replaces the first item output with yours (secondary/fluid outputs kept). Applies each key=value override onto the JSON (any top-level field; lists via commas). Validates with the mod's own RecipeSerializer — invalid recipes are rejected with the mod's error, never written. Writes + reloads, then reports the options kept from the example (e.g. heatRequirement=heated) so you can override them. Scope & limits

Best for 1→N item machines plus scalar/enum options; Create mixing-style recipes typically need ≥2 inputs or heat. Schemas are learned from loaded recipes only (Forge 1.20.1 serializers are not introspectable), so a field never used by any installed recipe won't be suggested — but you can still type any key=value manually. The full type schema is built in one pass over all recipes and cached (first types/tab may take a moment); string fields with >16 distinct values are treated as free-form. Storage & runtime Each recipe is a data-pack file in /datapacks/easycustomcraft/data/easycustomcraft/recipes/.json. After every create/remove the mod runs a programmatic resource reload mirroring vanilla /reload, auto-enabling the pack on first use — changes are live immediately, no restart. This makes recipes inherently per world (single-player) or per server (dedicated). Permissions & sides Root /ecc is public; list/preview are open. Everything under create, plus reload/remove, requires permission level 2 (OP). Custom command argument types (ingredient, ingredients) are registered with Forge, so the command tree syncs correctly. Install on the server for functionality and on the client for the GUI and command auto-complete.

Screenshots

Gallery

This project has no gallery images yet.

Versions

Files

Relations

Project Relations

More like this

Similar Mods

Suggestions use data such as tags, dependencies, dependents, descriptions, titles, and more to rank how much they overlap with this mod.

On ModDex

Community snapshot

0
Ratings
0
Followers
0
In stacks

By the numbers

Statistics

<1,000
Total Downloads
CurseForge
<1,000
Modrinth
<1,000
Last Updated
CurseForge
Created
CurseForge
Modrinth
Last synced
When ModDex last fetched this project from CurseForge or Modrinth. Every project is re-checked on a schedule, and any project that ships a new file is synced automatically within hours of the release.
New file updates sync automatically
How syncing works