Better Model Properties

Adds different model properties for texture artists and modders alike to use in their item models.

Better Model Properties or BMP is a mod that adds various different kinds of properties to items that can be used with model files to dynamically change an item's texture.

 

Some of these properties include:

  • count (absolute stack size)
  • size (relative to max stack size)
  • storage (how many slots are not empty in a container)
  • storage_primary (fill ratio of the first slot in a container)
  • storage_full (how many slots are 100% full in a container)
  • fluid (how many tanks are not empty in a fluid container)
  • fluid_primary (fill ratio of the first tank in a fluid container)
  • fluid_full (how many tanks are 100% full in a fluid container)
  • energy (how full is a battery compared to its max storage)

 

These properties can then be used inside predicates within an item's model file (see the Minecraft Wiki or my example Resource Pack on GitHub for better examples on how to set this up) to override the item's default texture when certain conditions are met. For instance, if you wanted to use a different texture for eggs based on whether you had a single one, more than 4 ones or a full stack of them, you would create a model file called egg.json in assets/minecraft/models/item that looks somewhat like this:

{
  "parent": "item/generated",
  "textures": {
  "layer0": "minecraft:item/egg_0"
  },
  "overrides": [
  {
  "predicate": {
  "bmp:size": 0
  },
  "model": "minecraft:item/egg_0"
  },
  {
  "predicate": {
  "bmp:size": 0.25
  },
  "model": "minecraft:item/egg_25"
  },
  {
  "predicate": {
  "bmp:size": 1
  },
  "model": "minecraft:item/egg_100"
  }
  ]
  }

 

which would result in the following:
- By default, the item texture "egg_0" will be used.

- If the stack is more than or equal to 0% of the maximum stack size (which... is always), it will use the model file egg_0.json instead

- If it's >= 25% the max stack size (which, for eggs, is >= 4 items), it will use egg_25.json instead and finally

- If it's = 100% the max stack size (which is a full stack of 16 eggs), it will use egg_100.json.

 

If you then set these respective model files to use their own textures, you would get something like this (minus my amazing artistic prowess, of course):

 

Since this may be a bit hard to follow, again, I recommend visiting the example resource pack on my GitHub where you can see both the gorgeous textures
made for this demo as well as the model files used to achieve the above effect.

 

Icons and illustrations in this mod are courtesy of Lorc from game-icons.net and are registered under a CC-BY-3.0 license.

The Better Model Properties Team

GrandArtisan tier frameprofile avatar
  • 18
    Followers
  • 9
    Projects
  • 32.3M
    Downloads

More from MaxNeedsSnacksView all

  • KubeJS project image

    KubeJS

    • 152.2M
    • Mods

    Edit recipes, add new custom items, script world events, all in JavaScript!

    • 152.2M
    • June 22, 2026
    • Mods
    • +4
  • Architectury API project image

    Architectury API

    • 329.3M
    • Mods

    An intermediary api aimed to ease developing multiplatform mods.

    • 329.3M
    • June 17, 2026
    • Mods
  • Rhino project image

    Rhino

    • 159.3M
    • Mods

    A fork of Mozilla's Rhino library, modified for use in mods

    • 159.3M
    • June 8, 2026
    • Mods
    • +1
  • KubeJS Thermal project image

    KubeJS Thermal

    • 25.7M
    • Mods

    KubeJS Thermal Expansion integration

    • 25.7M
    • May 5, 2026
    • Mods
    • +1
  • KubeJS project image

    KubeJS

    • 152.2M
    • Mods

    Edit recipes, add new custom items, script world events, all in JavaScript!

    • 152.2M
    • June 22, 2026
    • Mods
    • +4
  • Architectury API project image

    Architectury API

    • 329.3M
    • Mods

    An intermediary api aimed to ease developing multiplatform mods.

    • 329.3M
    • June 17, 2026
    • Mods
  • Rhino project image

    Rhino

    • 159.3M
    • Mods

    A fork of Mozilla's Rhino library, modified for use in mods

    • 159.3M
    • June 8, 2026
    • Mods
    • +1
  • KubeJS Thermal project image

    KubeJS Thermal

    • 25.7M
    • Mods

    KubeJS Thermal Expansion integration

    • 25.7M
    • May 5, 2026
    • Mods
    • +1