Cauldron Recipes
This page describes the JSON format for cauldron recipes
| Table of Contents |
|---|
Cauldron recipes take an input of cauldron contents, an item, a level, and a temperature, and can output cauldron contents, item, and level.
-
type(string): Alwaysinspirations:cauldron -
group(string): Recipe group, mostly unused, defaults to"" -
input(object): JSON object containing all recipe inputs-
item(Sized Ingredient): Determines what item must be held to perform this recipe. If unset, any item in hand is accepted -
contents(Cauldron Ingredient): Determines what must be in the cauldron to perform this recipe. Ignored if the cauldron is empty -
level(Level Predicate): Predicate to determine required cauldron level -
temperature(Temperature Predicate): Predicate to determine required cauldron temperature
-
-
output(object): JSON object determining effects on the cauldron-
item(ItemStack): Item stack output for the recipe. If unset, no output is given-
item(string): Registry ID of the output -
count(integer): Size of the output, defaults to 1 -
tag(object): NBT of the output, defaults to no NBT -
copy_nbt(boolean): If true, the input item's NBT will be copied to the output. Defaults to false
-
-
contents(Cauldron Contents): The resulting contents after performing this recipe. If unset, no change is made to the contents -
level(Level Update): Determines how the cauldron levels change from this recipe. If unset, no change is made to the levels -
container(ItemStack): Item stack container for this recipe, replacing the input item. If unset, uses the input's container item-
empty(boolean): If true, no container is returned. Can be used to override an item's default container. Defaults to false -
item(string): Registry ID of the container item -
count(integer): Size of the container, defaults to 1 -
tag(object): NBT of the container, defaults to no NBT
-
-
-
sound(string): Resource location of the sound to play when this recipe is performed. If unset, uses a generic splash sound
- Blue concrete: Transforms concrete powder into blue concrete using 4 levels of water
- Black wool: Transforms white wool into black wool using 4 levels of black dye
- Mushroom stew (small and large): Transforms boiling water into mushroom stew, costing more for a full cauldron
- Fill bowl with mushroom stew: Transforms an empty bowl into a mushroom stew bowl using 4 levels of mushroom stew
- Empty bowl of mushroom stew: Increase the amount of mushroom stew in the cauldron by 4 levels
Cauldron recipes take an input of cauldron contents, a level, and a temperature, and can output cauldron contents.
-
type(string): Alwaysinspirations:cauldron_transform -
group(string): Recipe group, mostly unused, defaults to"" -
input(Cauldron Ingredient): Determines what must be in the cauldron to perform this recipe. Ignored if the cauldron is empty -
level(Level Predicate): Predicate to determine required cauldron level for this recipe. If unset, at least 1 level is required. -
output(Cauldron Contents): The resulting contents after performing this recipe -
time(boolean): Time in ticks to transform the contents -
sound(string): Resource location of the sound to play when this recipe is performed. If unset, uses the brewing stand brew sound
- Ice from water: Freezes water into ice over time in a freezing cauldron
This section contains commonly used components of cauldron recipes.
Determines the current contents of the cauldron. For outputs, the following subsections detail the types available, as determined by the key type.
Contains values from the Minecraft fluid registry
-
type(string): Alwaysinspirations:fluid -
name(string): Registry name of the fluid.
Matches values from the Minecraft potion registry
-
type(string): One of two values:-
inspirations:potion: Standard potions. -
inspirations:unfermented_potion: Used after performing a brewing recipe while the brewing timer runs. Becomesinspirations:potionafter the timer finishes.
-
-
name(string): Registry name of the fluid. Notable values:-
minecraft:wateris equivalent to theminecraft:waterfluid
-
Matches any of the 16 dye colors.
-
type(string): Alwaysinspirations:dye -
name(string): One of 16 values cooresponding to the vanilla dyes- Values:
white,orange,magenta,light_blue,yellow,lime,pink,gray,light_gray,blue,brown,green,red, orblack
- Values:
Matches an arbitrary hexadecimal color value, used mainly for leather armor dyeing.
-
type(string): Alwaysinspirations:color -
color(string): A 6 character hexadecimal string in the format"RRGGBB". Notable values:-
F9FFFE: Cooresponds to the dyewhite -
F9801D: Cooresponds to the dyeorange -
C74EBD: Cooresponds to the dyemagenta -
3AB3DA: Cooresponds to the dyelight_blue -
FED83D: Cooresponds to the dyeyellow -
80C71F: Cooresponds to the dyelime -
F38BAA: Cooresponds to the dyepink -
474F52: Cooresponds to the dyegray -
9D9D97: Cooresponds to the dyelight_gray -
169C9C: Cooresponds to the dyecyan -
8932B8: Cooresponds to the dyepurple -
3C44AA: Cooresponds to the dyeblue -
835432: Cooresponds to the dyebrown -
5E7C16: Cooresponds to the dyegreen -
B02E26: Cooresponds to the dyered -
1D1D21: Cooresponds to the dyeblack
-
Data and resource pack defined content types.
-
type(string): Alwaysinspirations:custom -
name(string): A resource location value in the format<mod_id>:<value>. Any value is acceptable, however textures will only be loaded if<mod_id>is a loaded mod.
Custom content types require defining both name and texture through a resource pack, or they will show as unlocalized and with a missing texture.
Names can be defined in any en_us.json language file. The format is cauldron_contents.<mod_id>.<value> using the same values from the recipe.
Textures can be defined by creating a JSON file at assets/inspirations/models/cauldron_textures.json. This JSON file contains keys corresponding to each custom contents type, and values containing texture resource location. Mod IDs must be loaded for the texture to be loaded. Note that if multiple files exist at that location in different resource packs, they will all be combined, so there is no need to copy all default values to add custom contents.
For example, the following JSON:
{
"minecraft:ice": "minecraft:block/ice",
"rats:cheese": "rats:block/cheese"
}Defines two custom content textures:
-
minecraft:ice: Texture for the custom ice contents usingassets/minecraft/textures/block/ice.pngas the texture. -
rats:cheese: Texture for the custom cheese contents usingassets/rats/textures/block/cheese.pngas the texture. Skipped ifratsis not loaded.
Cauldron ingredients are similar to content types, but are used for input instead of output. All ingredients have a type key determining the ingredient type.
Matches values from the Minecraft fluid registry, corresponding to the fluid type.
-
type(string): Alwaysinspirations:fluid -
name(string): Registry name of the fluid. Only this ornameis used -
tag(string): Tag used for matching.
Matches values from the Minecraft potion registry, corresponding to the fermented potion type.
-
type(string): Alwaysinspirations:potion -
name(string): Registry name of the potion.
Potion tags are not currently supported, but will be in a later build.
Matches values from the dye type.
-
type(string): Alwaysinspirations:potion -
name(string): Name of the color, see dye for values.
Matches values from the color type.
-
type(string): Alwaysinspirations:potion -
color(string): A 6 character hexadecimal string in the format"RRGGBB". Notable values described by color.
Matches values from the custom type.
-
type(string): Alwaysinspirations:potion -
name(string): Custom value. See custom for more information.
Cauldron levels are simple predicates to determine the required fluid amount. The cauldron fluid ranges from 0 to 12 levels, but most recipes work in increments of 4 effectively giving 0 to 3 levels.
Level update allows changing the number of levels in the cauldron. Level update allows either of the following keys to be set:
-
add(integer): Increases the number of levels in the cauldron, or decreases if negative. May be between -12 and 12, final level after adding is clamped between 0 and 12. -
set(integer): Forces the cauldron level to a specific number. May be between 0 and 12. Generally its better to useadd
Level predicates allow recipes to match a specific number of levels in the cauldron
-
A level predicate: Predicate to determine required cauldron level
-
min(integer): Minimum number of levels, can be between 0 and 12. Defaults to 0. -
max(integer): Maximum number of levels, can be between 0 and 12. Defaults to 12.
-
Cauldrons have 3 different temperatures: boiling, freezing, and normal. These temperatures are determined by the biome temperature.
The cauldron can be made to boil in any biome by placing it above fire, and can be made freezing by surrounding it with blue or packed ice. Doing both will force its temperature to normal.
Some recipes require certain temperatures to work, denoted by a temperature predicate string. The following are valid values for a temperature predicate:
-
any: Recipe ignores temperature, default -
boiling: Cauldron must be boiling -
freezing: Cauldron must be freezing -
normal: Cauldron must be normal, that is not boiling or freezing -
warm: Cauldron must be normal or boiling, not freezing -
cool: Cauldron must be normal or freezing, not boiling
The following subsections describe cauldron recipe serializers with more specialized functionality.
Recipe to empty a potion item into the cauldron. Format:
-
type(string): Alwaysinspirations:cauldron_empty_potion -
potion(string): Registry ID of the input potion item. For example,minecraft:potion -
bottle(string): Registry ID of the bottle to return after emptying. For example,minecraft:glass_bottle
Example: empty potion from glass bottle
Recipe to fill a potion item into the cauldron. Format:
-
type(string): Alwaysinspirations:cauldron_fill_potion -
bottle(Sized Ingredient): Empty bottle being filled by the cauldron. Amount needed determines the stack size of the output. -
potion(string): Registry ID of the output potion item. For example,minecraft:potion
Example: fill potion from glass bottle
Recipe to mix the dye from a container with the current cauldron contents. Increases the cauldron level by 4. Format:
-
type(string): Alwaysinspirations:cauldron_mix_dye - `ingredient (Ingredient): Vanilla ingredient of the item held by the player.
-
color(string): A 6 character hexadecimal string in the format"RRGGBB". If unset, uses the color string from the held stack.
Recipe to dye a dyeable item, such as leather armor, with the color in the cauldron. Format:
-
type(string): Alwaysinspirations:cauldron_dye_dyeable - `ingredient (Ingredient): Vanilla ingredient of the item to dye.
Example: dye leather boots
Recipe to clear dye from a dyeable item, such as leather armor. Removes dye from the item. Format:
-
type(string): Alwaysinspirations:cauldron_clear_dyeable - `ingredient (Ingredient): Vanilla ingredient of the item to clean.
Example: clear leather boots
The following subsections describe cauldron recipe serializers for dynamic recipes.
Recipe to dye cauldron water using one of the Forge dye tags. Only 16 instances of this recipe are generally needed. Format:
-
type(string): Alwaysinspirations:cauldron_dye_water -
dye(string): Dye color to use, see dye for a list of values.
Recipe that empties a fluid container containing 1000mb into the cauldron, increasing it to 12 levels. Uses a type of inspirations:cauldron_empty_bucket and no other keys.
Recipe that fills a fluid container that can hold 1000mb using a cauldron filled with fluid. Uses a type of inspirations:cauldron_fill_bucket and no other keys.
Recipe that fills the Inspirations dyed bottle using 4 levels of fluid from the cauldron. Uses a type of inspirations:cauldron_fill_dyed_bottle and no other keys. Emptying is done by mix dye.
Remove banner pattern
Recipe that removes a single pattern from the banner consuming 4 layers of water. Uses a type of inspirations:cauldron_remove_banner_pattern and no other keys.
Recipes to brew potions using the cauldron. Two instances are created, one for vanilla recipes and one for forge ones.
-
type(string):-
inspirations:cauldron_potion_brewing: -
inspirations:cauldron_forge_brewing:
-
-
instant(boolean): If true, potions brew instantly. If false, potions take time via potion fermenting.
Recipe instances:
Recipe to transform a potion from unfermented to a usable potion over time. Format:
-
type(string): Alwaysinspirations:cauldron_potion_ferment -
time(boolean): Time in ticks to "ferment" the potion
The cauldron has two main recipe formats, regular and transform recipes. The regular recipes are item sensitive, while the transform recipes are time recipes. If you wish to add an item sensitive recipe that transforms over time, the way that is supported by Inspirations is done using two recipes.