Modifier Model
This page is about the resource pack definition for modifiers. For the data pack definition, see Modifiers.
Modifier models are used to define how modifiers render on tools and in the JEI ingredient list.
For both files, the domain <domain>
has no impact on the behavior of the JSON, it is simply used to allow multiple mods to define a color list without conflicting (as before 1.19.4 Forge did not allow multiple mods to define a resource at the same location in resource packs).
Modifier Icons
Modifier icons is a JSON file used to assign icons to modifiers. IT is located at assets/<domain>/tinkering/modifier_icons.json
.
The primary use of the icon is modifier display in JEI. Any modifier which lacks an icon will be rendered using a default book icon, which is tinted based on the modifiers text color. Modifier icons are defined in resource packs assets/<domain>/tinkering/modifier_icons.json
.
The modifier icons JSON has the following format:
<modifier>
to the given texture.
Assigns the modifier with ID <modifier>
to the given list of textures. They will all be rendered in order, useful for reusing parts of an icon.<modifier>
.
A single texture for
Assigns the modifier with ID
Modifier icons object.
All modifier textures are relative to assets/<domain>/textures/
and should not contain the .png
extension.
Modifier Models
The modifier tool texture JSON defines how modifiers render on tools. It is located at assets/<domain>/tinkering/modifiers.json
. It has the following format:
<modifier>
to the given model with no configuration.
Assigns the modifier with ID <modifier>
to the specified model with configuration.- Modifier model type.
- Any additional fields defined by the modifier model type.
Assigns the modifier with ID - Setting a modifier to null removes the model from the listed modifier. Useful to save resources by disabling an unused modifier.
Modifier models object.
A modifier model will select 1 or more textures from the tool based on its modifier roots, the modifier ID, and an optional texture suffix. For a given root <root_domain>:<root_name>
, modifier <modifier_domain>:<modifier_name>
, and suffix <suffix>
, the full texture path will be <root_domain>:<root_name><modifier_domain>_<modifier_name><suffix>
. For example, pickaxes use the root of tconstruct:item/tool/pickaxe/modifiers/
, meaning the modifier tconstruct:diamond
with no suffix would load its texture from tconstruct:item/tool/pickaxe/modifiers/tconstruct_diamond
.
Typically, modifier models will have one or more texture dependencies; if missing then the model will be skipped for that tool.
The following subsections describe different modifier model options.
Normal
The normal modifier model is used to most common modifiers as a simple texture. It has ID tconstruct:normal
. This modifier will render the texture with no suffix on the tool. If the texture does not exist, the model will be disabled.
The normal model has the following configuration:
tconstruct:normal
.
Always - Tints the texture based on the specified color. If unset, applies no tint.
- Sets the minimum light level for the modifier texture, making it potentially appear lighter than the tool.
Modifier model object.
Dyed
The dyed modifier model has ID tconstruct:dyed
with no configuration. This modifier will render the texture with no suffix on the tool, tinted based on the color in persistent data under the modifier ID. If the texture does not exist, the model will be disabled.
This model is notably used by the dyed modifier to tint some parts of the tool. It is often applied as a first modifier so it appears as though the original tool texture was tinted.
Material
The material modifier model has ID tconstruct:material
with no configuration. This modifier will fetch texture suffixes based on material render info, following the same convention as material models. The material is fetched from persistent data under the modifier ID. If the texture does not exist, the model will be disabled.
This model is notably used by the embellishment modifier to apply material textures to some parts of the tool. It is often applied as a first modifier so it appears as though the original tool received the material.
Fluid
The fluid modifier model is used to render fluids as part of the tool model. It has ID tconstruct:fluid
with no configuration. The modifier will fetch the following suffixes:
- No suffix: base texture to always apply. If absent, model will only render the fluid.
_full
: fluid mask determining where to render the fluid, where any non-transparent pixels determine where fluid quads are rendered.
The model will be skipped if both the base texture and _full
are absent. The option to render with no _full
is provided so a tool can render without fluid despite the modifier using fluid on other tools.
Tank
The tank modifier model is an extension of the fluid modifier model to render full and partially filled fluids differently. It has ID tconstruct:tank
with no configuration. The modifier will fetch the following suffixes:
- No suffix: base texture to always apply. If absent, model will only render the fluid.
_partial
: fluid mask determining where to render the fluid when the tank has fluid but is not full. If unset, then no texture will be rendered when not full._full
: fluid mask determining where to render the fluid when the tank is full. If unset, then_partial
will be used.
The model will be skipped if all three textures are absent.
Overslime
The overslime modifier model renders the texture only if the tool’s overslime level is above 0. It has ID tconstruct:overslime
with no configuration. This modifier will render the texture with no suffix on the tool. If the texture does not exist, the model will be disabled.
Trim
The trim modifier model will render a trim texture over over the tool, pulling from the textures used for vanilla armor. It has ID tconstruct:trim
with no configuration and no dependent textures to render.