Nexo
  • ๐Ÿ Home
  • ๐Ÿ“œMain Changelog
  • โ“FAQ
  • General Usage
    • โŒจ๏ธCommands
    • ๐Ÿง‘โ€๐ŸณRecipes
  • Migrate
    • โ˜„๏ธOraxen โ†’ Nexo
    • ๐Ÿ“ฆItemsAdder โ†’ Nexo
  • Configuration
    • โš™๏ธPlugin settings
    • ResourcePack
    • โš’๏ธItems
      • Special Item Appearance
    • โ›‘๏ธCustom Armors
      • ๐ŸชฝCustom Elytras (1.21.2+)
      • Component Based (1.21.2+)
      • Trims Based (1.20-1.21.1)
    • ๐ŸŒ€Glyphs
    • ๐ŸŽตSounds
  • Mechanics
    • ๐Ÿช‘Furniture Mechanic
      • ๐ŸŽฏHitbox
      • ๐Ÿ–‡๏ธConnectable Furniture
      • ๐Ÿช‘Seat Mechanic
      • ๐Ÿ›๏ธBed Mechanic
      • ๐Ÿ’กLight Mechanic
      • ๐Ÿง‘โ€๐ŸŒพFarming Mechanic
    • ๐Ÿ“ฆCustom Block Mechanics
      • ChorusBlock Mechanic
      • ๐ŸŽถNoteBlock Mechanic
        • Stripped Log Mechanic
        • Directional Mechanic
      • ๐ŸงตStringBlock Mechanic
    • ๐Ÿ”ฑCustom Trident
    • Other Mechanics
    • clickAction Mechanic
    • Custom Mechanic
  • โž•Addons
    • ๐ŸšชCarpentry
    • ๐ŸงฉCore Shaders
      • Text Effects by Akis
  • Compatibility
    • ModelEngine - custom mobs
    • MythicMobs - custom mobs
    • MythicCrucible
    • MMoItems
    • EcoItems
  • Community Guides
    • Vendors
    • API
Powered by GitBook
On this page
  • Use a different model for Inventory Icon vs Equipped/In-Hand
  • Use a blocking json model (for shield)
  • Use a pulling json model (for bows)
  • Use charged_model json model (for Crossbows)
  • Use cast_model json model (for fishing rods)
  • Use damaged_model json model (for different durability levels)
  1. Configuration
  2. Items

Special Item Appearance

How to customize your item appearance?

PreviousItemsNextCustom Armors

Last updated 1 month ago

Use a different model for Inventory Icon vs Equipped/In-Hand

This is for 1.21.2+ servers & clients only

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 . 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

here
โš’๏ธ
Page cover image