Modifier Recipes
This page is about the recipes used to apply modifiers to tools. For the recipes implementing repair based modifiers, see Modifier Repair Recipes. For the recipes implementing the severing modifier, see Severing Recipes.
Modifier recipes are used to apply modifiers to tools. Unless otherwise stated, the inputs in the modifier recipe may be applied in any order.
Common Components
Modifier recipes share certain common components, which are discussed more in depth here.
Level Ranges
Many modifier recipes support level ranges, which validate the minimum and maximum levels allowed by the recipe. This level is validated after applying the modifier recipe (that is, the current level plus 1). Level ranges typically default the minimum to 1 if unset. For more information on the level range format, see Integer Ranges.
For example, if the level range has a minimum of 2 and a maximum of 5, then the recipe requires the tool has at least 1 level of the modifier to apply, and may not increase the level above 5.
Basic Modifiers
Basic modifier recipes are the most common way to apply modifiers. They define a recipe combining a list of supported tools with a list of unique inputs to apply a modifier.
Basic modifier recipes have the following format:
tconstruct:modifier
.
Always - Ingredient matching tools that may receive this modifier. Typically should be a tag or a combination of tags.
- Maximum number of tools that can receive this modifier at once. Used by stackable tools such as daggers to allow applying a modifier to fewer tools at once. If unset, defaults to 16.
- A single sized ingredient.
List of sized ingredients for the requirements to apply this recipe. All items must be present with the minimum stack size to apply.
- slot type
<slot>
. Only one slot type may be specified.
Number of slots required of the
Modifier slots required to apply this recipe, will be removed when applied, or produce a validation error if the tool has too few slots. If unset, no slots are required.
- slot type
- Modifier applied by this recipe. In addition to other validations, the tool will be validated after applying this modifier to check modifier requirements.
result
must be within this range after applying the recipe, see level ranges. If unset, any level is allowed.
The resulting tool’s level of level
will consider the trait level on the tool, useful for preventing wasting resources on some abilities that also appear as traits. Defaults to false, which ignores the trait level.
If true, - If true (default), this modifier recipe may be applied using a modifier crystal, ignoring the standard inputs. Unusual modifier recipes will often set this to false to special case crystals.
The recipe object.
Incremental Modifiers
Incremental modifier recipes support adding a partial level of the modifier instead of requiring a full level to be added at once. Partial levels of modifiers cause the modifier effect to be scaled, though note not every effect supports scaling; some may simply round down to the nearest level.
Incremental modifier recipes have the following format:
tconstruct:incremental_modifier
.
Always - Ingredient matching tools that may receive this modifier. Typically should be a tag or a combination of tags.
- Maximum number of tools that can receive this modifier at once. Used by stackable tools such as daggers to allow applying a modifier to fewer tools at once. If unset, defaults to 16.
- Item used to apply this modifier.
- Number of items needed for a full level of this modifier.
needed_per_level
. Used to allow multiple recipes to apply the same modifier at different values, for instance redstone may count as 1 while redstone blocks count as 9. If unset, defaults to 1.
Amount this recipe counts towards amount_per_item
to reachneeded_per_level
. Stack size will be scaled based on the extra amount. If unset, then no leftover is returned. Unused ifamount_per_item
is 1.
Item to return if the tool needs less than - slot type
<slot>
. Only one slot type may be specified.
Number of slots required of the
Modifier slots required to apply this recipe, will be removed when applied, or produce a validation error if the tool has too few slots. If unset, no slots are required. Ignored on tools that already contain this modifier.
- slot type
- Modifier applied by this recipe. In addition to other validations, the tool will be validated after applying this modifier to check modifier requirements.
result
must be within this range after applying the recipe, see level ranges. If unset, any level is allowed.
The resulting tool’s level of level
will consider the trait level on the tool, useful for preventing wasting resources on some abilities that also appear as traits. Defaults to false, which ignores the trait level.
If true, - If true (default), this modifier recipe may be applied using a modifier crystal, ignoring the standard inputs. Unusual modifier recipes will often set this to false to special case crystals.
The recipe object.
Swappable Modifiers
Swappable modifier recipes allow a single modifier to have multiple variants applied with different recipes. If a modifier is already present on a tool and a different variant recipe is applied, the variant is changed and no modifier slots are consumed. This recipe is notably used for the rebalanced modifier, along with the crystalshot variants.
Swappable modifier recipes have the following format:
tconstruct:swappable_modifier
.
Always - Ingredient matching tools that may receive this modifier. Typically should be a tag or a combination of tags.
- Maximum number of tools that can receive this modifier at once. Used by stackable tools such as daggers to allow applying a modifier to fewer tools at once. If unset, defaults to 16.
- A single sized ingredient.
List of sized ingredients for the requirements to apply this recipe. All items must be present with the minimum stack size to apply.
- slot type
<slot>
. Only one slot type may be specified.
Number of slots required of the
Modifier slots required to apply this recipe, will be removed when applied, or produce a valuation error if the tool has too few slots. If unset, no slots are required.
- slot type
- Modifier applied by this recipe. In addition to other validations, the tool will be validated after applying this modifier to check modifier requirements.
- Modifier variant applied by this recipe. In the recipe serializer, any value is allowed, though based on the modifier there may be restrictions on useful values.
Result object.
tconstruct:default
: Displays the variant using the translation keymodifier.<result_domain>.<result_name>.<value>
. Default since 1.19.2.tconstruct:material
: Treats the variant as a material variant, formatting it using the material’s display name.tconstruct:none
: Displays the variant as an untranslated string. Only available in 1.18.2, where it is the default value (to prevent breaking old recipes).
Determines how the modifier variant is displayed in recipe viewers such as JEI. The following options exist by default:
- If true (default), this modifier recipe may be applied using a modifier crystal, ignoring the standard inputs. For swappable modifiers, typically all variants except at most one should set this to false to prevent conflicts.
The recipe object.
Multilevel Modifiers
Multilevel modifier recipes allow a modifier to have different slot requirements each level without changing the input list. It is also commonly used to allow modifier crystals to function in recipes with different inputs on each level.
Multilevel modifier recipes have the following format:
tconstruct:multilevel_modifier
.
Always - Ingredient matching tools that may receive this modifier. Typically should be a tag or a combination of tags.
- Maximum number of tools that can receive this modifier at once. Used by stackable tools such as daggers to allow applying a modifier to fewer tools at once. If unset, defaults to 16.
- A single sized ingredient.
List of sized ingredients for the requirements to apply this recipe. All items must be present with the minimum stack size to apply. If unset, this recipe will only work with modifier crystals, and will not be displayed in JEI.
- Modifier applied by this recipe. In addition to other validations, the tool will be validated after applying this modifier to check modifier requirements.
result
is within this range after applying the recipe, this entry applies. See level ranges.
If the resulting tool’s level of - slot type
<slot>
. Only one slot type may be specified.
Number of slots required of the
Modifier slots required to apply this recipe for this level range, will be removed when applied, or produce a validation error if the tool has too few slots. If unset, no slots are required for this level range.
- slot type
A level entry object. Determines for a given level range the slot requirement.
List of slot requirements for each level range. Any levels outside the ranges listed are not supported for this recipe and will produce a validation error.
levels
will consider the trait level on the tool, useful for preventing wasting resources on some abilities that also appear as traits. Defaults to false, which ignores the trait level.
If true, - If true (default), this modifier recipe may be applied using a modifier crystal, ignoring the standard inputs. Unusual modifier recipes will often set this to false to special case crystals.
The recipe object.
Modifier Salvage
Modifier salvage recipes are used to define the modifier slots returned after removing a modifier using the modifier worktable. When adding recipes through datagen, you can automatically datagen a salvage recipe from the builders for any of the above formats.
Modifier salvage recipes have the following format:
tconstruct:modifier_salvage
.
Always - Ingredient matching tools that may produce this salvage. Typically should be a tag or a combination of tags.
- Unused, leftover from an older version of modifier salvage.
- Modifier removed to apply this salvage.
modifier
must be within this range for this salvage to apply, see level ranges. If unset, any level will apply this salvage.
The initial tool’s level of - slot type
<slot>
. Only one slot type may be specified.
Number of slots returned of the
Modifier slots returned when removing this modifier.
- slot type
The recipe object.
Specialized Recipes
These modifier recipes are used to apply modifiers with specialized behavior.
Overslime
The overslime modifier recipe is used to apply the overslime modifier and increase the amount of overslime. This modifier essentially acts as a second durability bar on tool, making this recipe type effectively repairing the tool’s overslime. This recipe will be applicable to any tool that supports durability based modifiers.
Overslime modifier recipes have the following format:
tconstruct:overslime_modifier
.
Always - Item used to apply this recipe. Typically a slimeball variant.
- Amount of overslime restored by this recipe.
The recipe object.
Armor Dyeing
The armor dyeing modifier recipe is used to apply the dyed modifier. Typically, its not useful to add another copy of this recipe, as Tinkers’ Construct already adds this modifier to any tools in the item tag tconstruct:modifiable/dyeable
(meaning its easier to just add your tool to the item tag).
The armor dyeing recipe has the following format:
tconstruct:armor_dyeing_modifier
.
Always - Ingredient matching tools that may receive this modifier. Typically should be a tag or a combination of tags.
The recipe object.
Creative Slot
The creative slot modifier recipe tconstruct:creative_slot_modifier
is used to apply the creative slot modifier. This recipe will dynamically support adding in any registered modifier slot type with no limit. It is designed for testing in creative mode, and will likely be made creative only in the future due to abuse in modpacks.
If you are a modpack maker, do not give players creative modifiers, they are meant for creative mode. Use basic modifier recipes to add a new recipe for a new modifier slot you can properly limit.