FIFYM: Custom Crafting

Quick rating

FIFYM: Custom Crafting

No reviews yet

(Deprecated) Finishes Mojang's half-complete custom crafting system by allowing ingredients to specify expected component changes.

Mod Loaders
Fabric
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

Where It Runs
Client and Server

Must be installed on both the client and the server.

About

Project Details

Type
Mod
License
MIT License
Latest Version
3.3.1+1.21.1
Authors

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

Modrinth ID

Resources

External Links

Source Issues Wiki Discord

About

Description

DEPRECATION NOTICE

As Mojang has removed the ability to specify components in ingredients by switching to just the id or tag for ingredients, this mod can no longer be updated beyond 1.21.2

No more updates will be made here.

Fixed It For You, Mojang - Custom Crafting

Sometimes Mojang gets really close to a great thing and then drops it like a Bucket of Lava.

With the introduction of Item Components in Minecraft 1.20.5, we were given the ability to add and remove components from the result of a crafting recipe, but Mojang didn't allow recipe ingredients to specify components, making it so you could accidentally use unaltered items to fill the requirements.

This mod fixes that and allows all recipe types to benefit.

New Components

Enchantability

This component is written in json as "fifymcc:enchantablity": <any non-negative integer>. When this is on an itemstack, the value in it is used to determine enchantability.

Fuel Value

This component is written in json as "fifymcc:fuel_value": <any positive integer>. When this is on an item stack, the value in it is used to determin whether it can be used as fuel and for how long, in ticks, it'll burn.

If you wish to remove the ability for a fuel item to burn, you can do "!fifymcc:fuel_value": {} instead.

Recipe Remainder

This component gives item stacks the ability to change how they are consumed within recipes. The base json for this is "fifymcc:recipe_remainder: { "type": <remainder identifier>, ...additional fields }.

Stack Remainder

This allows an item to specify that when they are consumed in a recipe, they transform into the specified item stack.

{
    "type": "fifymcc:item_stack",
    // Any item id can be put here
    "id": "minecraft:stone",
    // Optional field to attach any components you want
    "components": { }
}

Chance Remainder

When an item has this remainder attached to it, there is a configurable chance that the item will not be consumed when crafting.

{
    "type": "fifymcc:chance",
    // Value between 0 and 1, excluding 0.
    // This is a 30% chance that the item will be consumed when crafting with it
    "break_chance": 0.3,
    // Optional field for specifying the RNG. If not provided a random value will be used
    "seed": 12383
}

Damaged Remainder

Stacks that have this remainder will take durability damage when used in crafting. Respects the unbreaking enchantment. If the stack has the minecraft:unbreakable component on it, it will not take durability damage. If the stack does not have the required minecraft:damage and minecraft:max_damage components, then the stack will be consumed instead.

{
    "type": "fifymcc:damaged",
    // Optional field. Determines how much durability damage the item
    // takes per craft. Defaults to 1
    "damage": 4,
    // Optional field. Determines if the stack disappears after reaching 0 durability. If false, the stack doesn't disappear but can no longer be used for crafting. Defaults to true
    "can_break": false
}

Unconsumed Remainder

If this is specified on a stack, then it will remain after crafting occurs.

// No additional fields necessary
{ "type": "fifymcc:unconsumed" }

Example Recipe

Below is a shapeless crafting recipe that takes a poisonous potato that has been reskinned into a pile of ash, and any item in the minecraft:sand tag that has custom_model_data of 1. The recipe requires that the poisonous potato not have the food component, and that it have the correct item name and custom model data.

{
    "type": "minecraft:crafting_shapeless",
    "category": "misc",
    "ingredients": [
        {
            "item": "minecraft:poisonous_potato",
            "components": {
                // Any matching stack must not have the food component on it
                "!minecraft:food": {},
                "minecraft:item_name": "{\"translate\": \"namespace.item.ash\",\"fallback\": \"Ash\"}",
                "minecraft:custom_model_data": 1
            }
        },
        {
            "item": "minecraft:bone_meal",
            "components": {
                // This bonemeal will not be cosumed by the recipe
                "fifymcc:recipe_remainder": { "type": "fifymcc:unconsumed" }
            }
        },
        {
            "tag": "minecraft:sand",
            "components": {
                "minecraft:custom_model_data": 1
            }
        },
        {
            "item": "minecraft:dirt"
        },
        {
            "item": "minecraft:gravel"
        }
    ],
    "result": {
        "count": 4,
        "id": "minecraft:dirt"
    }
}

Affected Blocks/Screens

  • Crafting Table
  • Player Inventory (Crafting Grid)
  • Furnace and any derived block (Smoker, Blast Furnce, etc.). Affects both input and fuel slot
  • Smithing Table (Only minecraft:smithing_transform recipes for now. Trim recipes will be updated soon)
  • Loom (Only Dye slot)

Caveats

  • Due to how EMI, JEI, and REI use items to look up recipes involving them, these custom recipes will be associated with the item used or produced by them and won't show up as seperate item within their GUIs.
  • I have not tested this outside of the vanilla crafting space. This may or may not work with mods that provide their own crafting functionality outside of the vanilla crafting blocks. If the mod in question uses the builtin Ingredient.test() method, then it should be compatible.

Roadmap

  • Get anvil working with custom remainders
  • New component to allow specifying repair ingredient

Screenshots

Gallery

  • Example
    Example Poisonous Potatoes that have been giving the custom name of "Ash" being used to craft a recipe
  • Example Result
    Example Result Crafts a coal block that has been renamed "Ash Block"
  • Can't use a regular poisonous potato to craft the recipe
    Can't use a regular poisonous potato to craft the recipe
  • Crafting back to ash
    Crafting back to ash

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
Downloads
Last Updated
CurseForge
Modrinth
Created
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