1.21.4+ - Modern Items Creation

What is the modern item method?

This is a new way to create items graphics. The old resource property is replaced by the new property graphics which is easier to use and has more features.

Generating items automatically

material property is not mandatory anymore. paper will be used by default.

From a texture

Automatically generate the modern item + model from a texture.

  modern_texture:
    name: Modern Texture
    graphics:
      texture: item/modern_texture

From a model

Automatically generate the modern item and use a specific model file.

  modern_model:
    name: Modern Model
    graphics:
      model: item/modern_model

Block from textures

In this case ItemsAdder automatically detects you want to create a block (because it has the block behaviour) so the parent will automatically be block/cube.

If you do not specify the block behaviour, it would use the paper parent which is minecraft:item/generated.

  modern_textures_block:
    name: Modern Model Block Textures
    graphics:
      textures:
        north: block/modern_textures_block_north
        south: block/modern_textures_block_south
        east: block/modern_textures_block_east
        west: block/modern_textures_block_west
        up: block/modern_textures_block_up
        down: block/modern_textures_block_down
    behaviours:
      block:
        placed_model:
          type: REAL_NOTE

Block from a single texture

Automatically generate the modern item and use a specific model file (in this case it generates a multi face block).

  modern_textures_block_2:
    name: Modern Model Block Textures 2
    graphics:
      texture: block/modern_textures_block_all
    behaviours:
      block:
        placed_model:
          type: REAL_NOTE

Block from a specific parent (cross for example)

Automatically generate the modern item + model from textures (in this case it generates a multi face block).

In this case I set a custom parent for the model to be generated. I can specify the textures to be linked to the cross template in this case.

  modern_textures_block_cross:
    name: Modern Model Block Textures Cross
    graphics:
      icon: block/modern_textures_block_all
      parent: block/cross
      textures:
        cross: block/modern_textures_block_all
    behaviours:
      block:
        placed_model:
          type: REAL_WIRE

You can even just set texture instead, since the vanilla block/cross model has only one layer (cross), so ItemsAdder will automatically assign the texture to it.

  modern_textures_block_cross:
    name: Modern Model Block Textures Cross
    graphics:
      icon: block/modern_textures_block_all
      parent: block/cross
      texture: block/modern_textures_block_all
    behaviours:
      block:
        placed_model:
          type: REAL_WIRE

Bow from textures

  modern_bow:
    name: Modern Bow
    material: bow
    graphics:
      textures:
        normal: item/modern_bow
        pulling_0: item/modern_bow_0
        pulling_1: item/modern_bow_1
        pulling_2: item/modern_bow_2

Bow from models

  modern_bow_models:
    name: Modern Bow Models
    material: bow
    graphics:
      models:
        normal: item/modern_bow
        pulling_0: item/modern_bow_0
        pulling_1: item/modern_bow_1
        pulling_2: item/modern_bow_2

Fishing rod from textures

  modern_fishing_rod:
    name: Modern Fishing Rod
    material: fishing_rod
    graphics:
      textures:
        normal: item/modern_bow
        cast: item/modern_bow_2

Fishing rod from models

  modern_fishing_rod_models:
    name: Modern Fishing Rod Models
    material: fishing_rod
    graphics:
      models:
        normal: item/modern_bow
        cast: item/modern_bow_2

Crossbow from textures

You can create as many pulling_ states as you want.

  modern_crossbow:
    name: Modern Crossbow
    material: crossbow
    graphics:
      textures:
        normal: item/modern_bow
        pulling_0: item/modern_bow_0
        pulling_1: item/modern_bow_1
        pulling_2: item/modern_bow_2
        rocket: minecraft:item/diamond
        arrow: minecraft:item/emerald

Crossbow from models

You can create as many pulling_ states as you want.

  modern_crossbow_model:
    name: Modern Crossbow Model
    material: crossbow
    graphics:
      models:
        normal: item/modern_bow
        pulling_0: item/modern_bow_0
        pulling_1: item/modern_bow_1
        pulling_2: item/modern_bow_2
        rocket: minecraft:item/diamond
        arrow: minecraft:item/emerald

Trident from a model

  modern_trident_model:
    name: Modern Trident Model
    material: trident
    graphics:
      icon: minecraft:item/diamond
      models:
        normal: item/modern_bow
        throwing: item/modern_bow_2

Shield from a model

  modern_shield_model:
    name: Modern Crossbow Model
    material: shield
    graphics:
      models:
        normal: item/modern_bow
        blocking: item/modern_bow_2

Other optional properties

Material

  modern_texture:
    name: Modern Texture
    material: paper
    graphics:
      texture: item/modern_texture

Icon

Show a different texture on the inventory slots compared to the in-game appearance.

  modern_texture:
    name: Modern Texture
    graphics:
      texture: item/modern_texture
      icon: item/modern_texture_icon

Disable hand animation on item swap

  modern_texture:
    name: Modern Texture
    graphics:
      texture: item/modern_texture
      hand_animation_on_swap: false

Experts configuration

item_model

Manually handling the item model on your own using the new 1.21.4 format.

  modern_item:
    name: Modern Texture
    material: paper
    item_model: test:modern_item

Templates and variants

You can make variants of an item pretty easily. Variants inherit everything from a template item (that won't be available ingame).

info:
  namespace: test_template_furniture
items:
  chair_template:
    template: true # Here
    name: ""
    graphics:
      model: furniture/chair
    behaviours:
      furniture:
        entity: item_display
        solid: true
        fixed_rotation: true
        hitbox:
          length: 1
          width: 1
          height: 1
        placeable_on:
          walls: false
          ceiling: false
          floor: true
      furniture_sit:
        sit_height: 0.75
  black_acacia_chair:
    variant_of: chair_template
    name: "Black Acacia Chair"
    graphics:
      parent: furniture/chair
      textures:
        wood: minecraft:block/acacia_planks
        wool: minecraft:block/black_wool
  red_chair:
    variant_of: chair_template # Here
    name: "Black Acacia Chair"
    graphics:
      parent: furniture/chair
      textures:
        wood: minecraft:block/red_wool
        wool: minecraft:block/red_wool
contents/example/models/furniture/chair.json
{
  "textures": {
    "wool": "block/white_wool",
    "particle": "block/oak_planks",
    "wood": "block/oak_planks"
  },
  "elements": [
  //.....

Last updated

Was this helpful?