FAQ
Java: Java Gui Model
Disclaimer: This will only work for 1.21.4 and newer. For older versions you will need to use mods or shader workarounds to do this.
To have a different model in the gui than in the hand (or other displays) you do the following
- Create a new .json file in
assets/minecraft/items (not to be confused with models/item!)
- Make a .json file in there that looks something like this:
{
"model": {
"type": "minecraft:select",
"property": "minecraft:display_context",
"cases": [
{
"when": [
"gui",
"ground",
"fixed"
],
"model": {
"type": "minecraft:model",
"model": "minecraft:item/2d"
}
}
],
"fallback": {
"type": "minecraft:model",
"model": "item/3d"
}
}
}```
3. Name the .json the same as the id of the item you want to do this for (unless you are using this in combination with the item_model= component).
4. Replace `item/2d` and `item/3d` with the repsective model references to the 3D and 2D model. Your "2D model" can be just something like this
```json
{
"parent": "item/generated",
"textures": {
"layer0": "item/feather"
}
}``` (replace item/feather with your actual texture)
_Note: The bot example basically works the same as a trident. If you want the 2D model to appear in more/less displays adjust the values in the "when" array accordingly._