Soul Engulfing Recipe

A guide to specifying new recipes that need soul fire, including multi block soul fire recipes

A key component of Spirit is recipes that require you throw an item into soul fire. You can specify a multiblock that can either be consumed or not consumed that is also required for the recipe to complete, although this is not required, and by default will be a "multiblock" of just soul fire and soul sand/soul soil.

Recipe input

For a soul engulfing recipe, you must specify an input object, that contains either an item ingredient or an item ingredient and a multiblock pattern. Again, an ingredient is required but a multiblock pattern is not.

Input with no multiblock

An item ingredient is quite dynamic, it can either be a single item, a single tag, a list of items, a list of items and tags, or a list of tags. No matter how many items are listed inside the ingredient, it represents only 1 input, a list of items just represents what items are valid for the recipe.

Single item

"input": {
    "ingredient": {
        "item": "minecraft:diamond"
    }
}

Single tag

"input": {
    "ingredient": {
        "tag": "forge:lapis"
    }
}

List of Items and Tags

"input": {
    "ingredient": [
        {
            "item": "minecraft:diamond"
        },
        {
            "tag": "forge:lapis"
        }
    ]
}

Input with multiblock

A Soul engulfing recipe can have a multiblock pattern specified with the required ingredient field. The multiblock field contains an object with 2 required fields, pattern and keys. The pattern is a list of lists. The outer list, the representation of the height of the multiblock, can be of any size, but the inner list must the same size as the strings contained in the list. To reiterate, the outermost list can be of any length, but the lists found within the outermost list and the string found within those lists must be of the same size.

Reserved Keys

  • "@" Location of the soul fire

  • "&" Location of the soul fire permitting block (Soul sand or Soul soil)

  • " " Any block. Use this when you have a blank space in your recipe

All non reserved keys must be specified within the keys object, failiure to include a key will result in a crash when the recipe is attempted to be made.

Do not include the reserved keys. Don't do it. >:(

Format

"input": {
    "ingredient": {
        "item": "minecraft:amethyst_crystal"
    },
    "multiblock": {
        "pattern": [
            [
                "   ",
                " @ ",
                "   "
            ],
            [
                " S ",
                "A&A",
                " S "
            ]
        ],
        "keys": {
            "S": {
                "block": "minecraft:obsidian"
            },
            "A": {
                "block": "#minecraft:stone"
            }
        }
    }
}

You can

Last updated