Special Item Appearance
How to customize your item appearance?
Invisible Item (1.21.4+)
To make an invisible item with Nexo, you can use the Nexo provided ItemModel nexo:empty
.
This will render nothing for that Item no matter where it is used.
Here is a basic config-example for an invisible NexoItem
invisible_item:
Components:
item_model: nexo:empty
You can also use this in any other plugin, assuming they allow you to specify the ItemModel of your Item.
Oversized Items in GUI (1.21.6+)
As of 1.21.6+, Mojang made changes to how items render in the GUI.
By default they are no longer allowed to go beyond their 16x16 grid, but added an option called oversixed_in_gui
to ItemModels to return this behaviour.
In Nexo you can use this for your items by following the below example;
oversized_item:
material: PAPER
Pack:
oversized_in_gui: true
model: my_oversized_model
Components:
item_model: nexo:oversized_item
Here we do not use CustomModelData as that would apply to all items using PAPER. If you are not sure what an ItemModel is, think of it as the base model of an item. By default all items using the material PAPER will use minecraft:paper. By specifying our own ItemModel here, we are changing the base-model of our item, preventing any conflicts or issues, and Nexo can properly mark the config
Use a different model for Inventory Icon vs Equipped/In-Hand
If you want to say have an item with a 2D icon in the inventory but when worn on head or held in your hand, it uses a 3D model or another 2D icon, you can do so by following the below
You need to provide an ItemModel that specifies when to show what model.
Here is an example using a mymodel_icon
model for the GUI and a "fallback" for everything else.
This approach can be used for most other contexts, which you can find here.
This is not a detailed guide on ItemModels, but you can do very complex things with them beyond this.
{
"model": {
"type": "select",
"property": "display_context",
"cases": [
{
"when": "gui",
"model": {
"type": "model",
"model": "namespace:mymodel_icon" // The model to display for the GUI
}
}
],
"fallback": {
"type": "model",
"model": "namespace:mymodel" //The model that is used everywhere else
}
}
}
You can put this inside Nexo/pack/assets/namespace/items/mymodel.json
.
Then you can make your NexoItem-config, which will reference this ItemModel
myitem:
itemname: "My Item"
Components:
item_model: namespace:mymodel
Blocking Model (Shields)
myitem:
Pack:
model: example_shield.json #json extension is not mandatory
blocking_model: example_shield_blocking.json #json extension is not mandatory
Pulling Models (Bows / Crossbow)
myitem:
Pack:
model: default/combat_bow
pulling_models:
- default/combat_bow_pulling_0
- default/combat_bow_pulling_1
- default/combat_bow_pulling_2
Charged Model (Crossbow)
myitem:
Pack:
model: default/custom_bow
pulling_models:
- default/custom_bow_pulling_0
- default/custom_bow_pulling_1
- default/custom_bow_pulling_2
charged_model: default/custom_bow_pulling_2
firework_model: default/custom_bow_charged #Optional
Cast Model (Fishing Rods)
myitem:
Pack:
model: default/fishing_rod
cast_model: default/fishing_rod_cast
Damaged Model (Based on durability)
myitem:
Pack:
model: default/diamond_sword
damaged_models:
- default/diamond_sword_damaged1
- default/diamond_sword_damaged2
- default/diamond_sword_damaged3
Last updated