FAQ
Java: Custom Model Data
Disclaimer: This only works for items (not placed blocks!) and only if you are in Java Edition 1.14 or later!
Example
To give, for example, a stick more models you would have something like this in YourResourcePack/assets/minecraft/models/item and call it stick.json.
stick.json
{
"parent": "item/generated",
"textures": {
"layer0": "item/stick"
},
"overrides": [
{ "predicate": {"custom_model_data": 1}, "model": "item/custom_stick"},
{ "predicate": {"custom_model_data": 2}, "model": "custom/branch"},
{ "predicate": {"custom_model_data": 3}, "model": "block/stone"}
]
}```
That would give the stick 3 additional models it could have.
If you use something else than a stick replace the parts before "overrides" with the exact same information the default model has (The one in models