Special Item Appearance
How to customize your item appearance?
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
Use a blocking json model (for shield)
myitem:
Pack:
model: example_shield.json #json extension is not mandatory
blocking_model: example_shield_blocking.json #json extension is not mandatory
Use a pulling json model (for bows)
myitem:
Pack:
model: default/combat_bow
pulling_models:
- default/combat_bow_pulling_0
- default/combat_bow_pulling_1
- default/combat_bow_pulling_2
This also works with pulling_textures if you only have texture files
Use charged_model json model (for Crossbows)
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
This also works with charged_texture & firework_texture if you only have texture files
Use cast_model json model (for fishing rods)
myitem:
Pack:
model: default/fishing_rod
cast_model: default/fishing_rod_cast
This also works with cast_texture if you only have texture files
Use damaged_model json model (for different durability levels)
myitem:
Pack:
model: default/diamond_sword
damaged_models:
- default/diamond_sword_damaged1
- default/diamond_sword_damaged2
- default/diamond_sword_damaged3
This also works with damaged_textures if you only have texture files
Last updated