InexactCIT
🟡 Updated this year⚠️ Install Order · 2 steps
Install in this order, then this mod last — most mods fail to load without their framework and dependencies in place.
Preview

🔍 Analysis
- 🏆 #43 of 211 decoration mods in this game by downloads
📋 About This Mod
Restoring pattern-based conditional item models. Purpose ------- The Custom Item Textures (CIT) mod, originally part of McPatcher and then Optifine, allowed the replacement of item textures (and models) whose metadata matched inexact patterns. We now have near-equivalent item-texture replacement in standard Minecraft with conditional client item types, though inexact matching is no longer possible. This mod adds CIT replacement with regular expressions to the new standard conditional item definition system. Compatibility and Dependencies ------------------------------ - Minecraft: 1.21.8 - Loader: Fabric 0.136.1 Fabric API not required. Installation ------------ Add the mod JAR to your Fabric mods folder. Usage (Players) --------------- This mod adds a feature to item model definitions which can be used by resource pack designers. It is always active when the mod is installed. Resource Pack Integration (Pack Authors) ---------------------------------------- The JSON files found at `assets/minecraft/item` are *item definitions*. These are not necessarily the model file used to render an item (i.e. an *item model*), which are found at `assets/minecraft/models/item`. In an item definition file, the JSON object in the "model" field determines which model file is used to render an item. Typically, a single item type is always rendered with the same model, so this object has its "type" set to `minecraft:model`. But different models can be used for the same item in different contexts by using "model" objects with other types, such as `minecraft:condition` and `minecraft:select`. This mod adds the `inexactcit:match` item definition model type. It is similar to the built-in `select` type in that it contains a list of models with associated conditions, and when one condition matches, its associated model is used to render the item. Unlike Select, the Match conditions are potentially-inexact regular expressions. Match item definition models use the same fields as Select, particularly "property", "component", "cases", and "fallback". #### Labeled Field Structure { "model": { "type": "inexactcit:match" , "property": ... # Probably always minecraft:component , "component": ... # Name of component to target , "cases": , "fallback": { ... } # Item def'n. model used when no case matches } } #### Required Fields Regular expression matching is intended for text metadata, so the "property" field will be `minecraft:component`. Behavior when "property" is not `minecraft:component` is as yet untested. The "component" field should be set to the namespaced ID for the component that will be tested by the condition, e.g. `minecraft:lore`, `minecraft:custom_name`. The "cases" field must contain a list of JSON objects. Each object is to contain a "regex" field and corresponding "model" field. These must be a (Java-flavored) regular expression and an item definition model, respectively. When the regular expression matches against the contents of the component named in the "component" field, the corresponding model is used for that item. The "fallback" field gives a model that is used when none of the "case" objects match, same as the standard Select. #### Example The following is an example of a Match item definition. It replaces all wooden hoes whose names include the word "Quarterstaff" with the model at `pixelatedvolume:item/quarterstaff`. { "model": { "type": "inexactcit:match" , "property": "minecraft:component" , "component": "minecraft:custom_name" , "cases": , "fallback": { "model": "minecraft:item/wooden_hoe" , "type": "minecraft:model" } } , "oversized_in_gui": true } #### Text Comparison The contents of the field being examined is serialized with `toString`. Text-component (JSON) features, section-code formatting, etc, is all pushed into this comparison string, so there is no way of telling what might come before or after the text that is visible in-game, or what happens between lines of multiline compontents. #### Regular Expression or Model Errors An item definition file with a malformed regular expression cannot be read so the item will appear with the default model (margenta-and-black cube). The failure (with the faulty file) is logged as an Error at pack-load time. ###
Restoring pattern-based conditional item models.
Purpose ------- The Custom Item Textures (CIT) mod, originally part of McPatcher and then Optifine, allowed the replacement of item textures (and models) whose metadata matched inexact patterns. We now have near-equivalent item-texture replacement in standard Minecraft with conditional client item types, though inexact matching is no longer possible. This mod adds CIT replacement with regular expressions to the new standard conditional item definition system.
Compatibility and Dependencies ------------------------------ - Minecraft: 1. 21. 8 - Loader: Fabric 0. 136. 1
Fabric API not required.
Installation ------------ Add the mod JAR to your Fabric mods folder.
Usage (Players) --------------- This mod adds a feature to item model definitions which can be used by resource pack designers. It is always active when the mod is installed.
Resource Pack Integration (Pack Authors) ---------------------------------------- The JSON files found at `assets/minecraft/item` are item definitions. These are not necessarily the model file used to render an item (i.e. an item model), which are found at `assets/minecraft/models/item`.
In an item definition file, the JSON object in the "model" field determines which model file is used to render an item. Typically, a single item type is always rendered with the same model, so this object has its "type" set to `minecraft:model`. But different models can be used for the same item in different contexts by using "model" objects with other types, such as `minecraft:condition` and `minecraft:select`.
This mod adds the `inexactcit:match` item definition model type. It is similar to the built-in `select` type in that it contains a list of models with associated conditions, and when one condition matches, its associated model is used to render the item. Unlike Select, the Match conditions are potentially-inexact regular expressions.
Match item definition models use the same fields as Select, particularly "property", "component", "cases", and "fallback".
#### Labeled Field Structure { "model": { "type": "inexactcit:match" , "property": ... # Probably always minecraft:component , "component": ... # Name of component to target , "cases": [ { "regex": ... # Regular expression for this case , "model": { ... } # Item def'n. model used when regexp matches } , ... # Another case, as above , ... # Any number of additional cases ] , "fallback": { ... } # Item def'n. model used when no case matches } }
#### Required Fields Regular expression matching is intended for text metadata, so the "property" field will be `minecraft:component`. Behavior when "property" is not `minecraft:component` is as yet untested.
The "component" field should be set to the namespaced ID for the component that will be tested by the condition, e.g. `minecraft:lore`, `minecraft:custom_name`.
The "cases" field must contain a list of JSON objects. Each object is to contain a "regex" field and corresponding "model" field. These must be a (Java-flavored) regular expression and an item definition model, respectively. When the regular expression matches against the contents of the component named in the "component" field, the corresponding model is used for that item.
The "fallback" field gives a model that is used when none of the "case" objects match, same as the standard Select.
#### Example The following is an example of a Match item definition. It replaces all wooden hoes whose names include the word "Quarterstaff" with the model at `pixelatedvolume:item/quarterstaff`.
{ "model": { "type": "inexactcit:match" , "property": "minecraft:component" , "component": "minecraft:custom_name" , "cases": [ { "model": { "model": "pixelatedvolume:item/quarterstaff" , "type": "minecraft:model" } , "regex": ".Quarterstaff." } ] , "fallback": { "model": "minecraft:item/wooden_hoe" , "type": "minecraft:model" } } , "oversized_in_gui": true }
#### Text Comparison The contents of the field being examined is serialized with `toString`. Text-component (JSON) features, section-code formatting, etc, is all pushed into this comparison string, so there is no way of telling what might come before or after the text that is visible in-game, or what happens between lines of multiline compontents.
#### Regular Expression or Model Errors An item definition file with a malformed regular expression cannot be read so the item will appear with the default model (margenta-and-black cube). The failure (with the faulty file) is logged as an Error at pack-load time.
📊 Mod Details
- Game
- Minecraft Mods
- Author
- PixelatedVolume
- Version
- 1.0.0
- Downloads
- 287
- Endorsements
- 1
- Category
- decoration
- Created
- 3/17/2026
- Updated
- 4/15/2026
- Game Versions
- 1.21.8
- Tags
- decoration, utility
🔧 How to Install Minecraft Mods Mods
Download from Modrinth. Use Prism Launcher or drop into your mods folder.
📖 Full step-by-step install guide for Minecraft Mods →
Visit the official mod page for specific installation instructions for this mod.
🎮 Need cheat codes or console commands? Check ur gaming wiki for Minecraft Mods commands, item IDs, and more.
❓ Frequently Asked Questions
Which Minecraft Mods versions does InexactCIT support?
The author lists 1.21.8. Other versions may work but are untested by the author.
What is the latest version of InexactCIT?
Version 1.0.0, published 2026-04-15 with 287 downloads recorded at the source.
Keep browsing — more Minecraft Mods mods await