Better Model Properties
Minecraft resource packs have always allowed players to customize the look of items, but vanilla predicates are limited. You can change a texture based on damage, pulling, or a custom model data tag, but what if you want an item to look different when it is full versus empty? Or show a unique icon for every stack size? That is exactly where Better Model Properties steps in, giving resource pack creators a whole new set of dynamic properties to play with.
This mod does not add new blocks or items. Instead, it expands the game's model system so that a single item can display multiple textures depending on real-time conditions like stack count, container fill level, fluid amount, or energy storage. The result is a more immersive and responsive inventory, perfect for map makers, modpack authors, and anyone who loves visual polish.
What Makes Better Model Properties Special?
At its core, Better Model Properties introduces a set of custom predicates that you can use inside an item's model JSON file. These predicates read live data from the item itself and let you override the default texture when certain thresholds are met. The mod works entirely on the client side, so it does not affect gameplay mechanics or server logic. It simply gives resource pack artists a richer palette of conditions to paint with.
Some of the most useful properties include:
- count – the absolute number of items in the stack.
- size – the stack size relative to the maximum, expressed as a value between 0 and 1.
- storage – how many slots in a container are not empty.
- storage_primary – the fill ratio of the first slot in a container.
- storage_full – how many slots are completely full.
- fluid – the number of tanks that contain fluid in a fluid container.
- fluid_primary – the fill ratio of the first tank.
- fluid_full – how many tanks are 100% full.
- energy – the fill level of a battery compared to its maximum capacity.
These properties open up endless possibilities. A backpack could show a bulging texture when nearly full, a mana crystal could glow brighter as it charges, or a stack of arrows could visually deplete as you fire them. The only limit is your creativity and your ability to craft the right model files.
How the Predicate System Works
If you have ever edited a vanilla item model, the structure will feel familiar. Better Model Properties uses the same overrides array inside a model JSON. Each override contains a predicate object with one of the custom properties and a threshold value, plus a reference to a different model file. When the condition is met, Minecraft swaps to that model, which can point to a completely different texture.
Take a simple egg example. You want a single egg to look like a lone egg, a stack of four to show a small cluster, and a full stack of sixteen to appear as a carton. You would create a model file named egg.json in assets/minecraft/models/item with overrides for bmp:size at 0, 0.25, and 1. The default texture is the lone egg. When the relative size reaches 0.25 (at least 4 eggs), the model switches to a cluster texture. At 1.0, it becomes a full carton. The mod handles the rest, evaluating the predicate every time the item is rendered.
For containers like shulker boxes or backpacks from other mods, the storage and storage_full properties are invaluable. You can show a closed box when empty, a slightly open lid when partially filled, and a bursting texture when every slot is occupied. The same logic applies to fluid tanks and energy cells, making tech mods feel much more alive.
Getting Started with Better Model Properties for Minecraft
To begin, you will need to download Better Model Properties and install it on your Minecraft client. The mod runs on the Fabric loader, so make sure you have Fabric API installed as well. It supports modern versions of the game, including 1.20.1, 1.20.4, and the latest 1.21 snapshots, with backports available for some older releases. Always check the mod's official page for the exact version list.
If you are using a launcher that simplifies mod management, the process becomes even smoother. For instance, the foxygame.net launcher includes a built-in add-on catalog where you can find Better Model Properties and install it with a single click, automatically handling version compatibility and dependencies. This is especially handy if you frequently switch between different modded profiles and want to keep everything up to date without manual file juggling.
How to Install Better Model Properties Manually
For a manual setup, follow these steps:
- Download the Fabric installer and create a Fabric profile for your chosen Minecraft version.
- Download the Fabric API jar and place it in your
modsfolder. - Download Better Model Properties from a trusted source like Modrinth or CurseForge.
- Place the Better Model Properties jar file into the same
modsfolder. - Launch the game using your Fabric profile. The mod will load automatically.
Once installed, the mod works silently in the background. It does not add any in-game UI or configuration screens. All customization happens through resource packs that reference the new predicates. You can either create your own pack or download one that already uses Better Model Properties to see it in action.
Creating Your First Dynamic Model
To use the new predicates, you need to understand the model override syntax. Each override entry contains a predicate block and a model path. The predicate uses a key like "bmp:size" or "bmp:storage" followed by a float value. The mod checks overrides in order and applies the first one whose condition is met. This means you should list them from smallest to largest threshold to avoid unexpected behavior.
Here is a minimal example for a custom potion that changes color based on how full it is:
{
"parent": "item/generated",
"textures": {
"layer0": "mypack:item/potion_empty"
},
"overrides": [
{ "predicate": { "bmp:size": 0.25 }, "model": "mypack:item/potion_low" },
{ "predicate": { "bmp:size": 0.5 }, "model": "mypack:item/potion_medium" },
{ "predicate": { "bmp:size": 0.75 }, "model": "mypack:item/potion_high" },
{ "predicate": { "bmp:size": 1.0 }, "model": "mypack:item/potion_full" }
]
}
Each referenced model file then points to its own texture. The mod evaluates the predicate every frame, so the texture updates instantly as you drink the potion or split the stack. This same technique works for any item that can change quantity, including food, tools with durability (using the damaged predicate in combination), and even custom items from other mods.
Advanced Use Cases and Compatibility
Better Model Properties shines when paired with mods that add complex storage items. For example, a backpack mod might expose its inventory slots to the storage predicate, allowing you to create a visual indicator of how many slots are used. Similarly, tech mods that add batteries or fluid cells can leverage energy and fluid predicates to show charge levels without any extra code. The mod is designed to be lightweight and compatible with most Fabric mods, and it does not conflict with OptiFine or other rendering tweaks as long as they do not override the same model loading logic.
Resource pack authors will appreciate that the mod works entirely through JSON files. No Java knowledge is required. You can distribute your pack on platforms like Modrinth or Planet Minecraft, and users only need to have Better Model Properties installed client-side. The mod's GitHub repository includes an example resource pack that demonstrates all the predicates with clear textures, making it an excellent starting point for learning.
For those who enjoy tinkering with modpacks, Better Model Properties is a small but mighty addition. It does not add world generation or new mechanics, so it fits seamlessly into any Fabric instance. The performance impact is negligible because the predicate checks are simple arithmetic operations that run only when an item is rendered in the GUI or in hand.
Why You Should Download Better Model Properties Today
Visual feedback is one of the most underrated aspects of Minecraft. A simple texture change can communicate information faster than any tooltip, and it makes the game feel more responsive and polished. Better Model Properties gives resource pack creators the tools to achieve that level of detail without needing to learn complex modding. Whether you want to show ammo counts on a quiver, liquid levels in a tank, or just make your egg stack look prettier, this mod is the missing piece.
To get started, search for "download Better Model Properties" on your preferred mod hosting site. Make sure to grab the correct version for your Fabric loader and Minecraft release. If you are already using a launcher like foxygame.net, you can install the mod directly from its add-on catalog, which automatically matches the mod version to your game profile and keeps it updated alongside your other mods. Once installed, pair it with a resource pack that takes advantage of the new predicates, or dive into the JSON files yourself and start experimenting.
Better Model Properties proves that even a small, focused mod can dramatically expand creative possibilities. By adding just a handful of new predicates, it transforms the way items can be presented, making inventories, hotbars, and even held items more informative and visually engaging. Download it today and give your resource packs the upgrade they deserve.
