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_fishing_rod
cast: item/modern_fishing_rod_2
Fishing rod from models
modern_fishing_rod_models:
name: Modern Fishing Rod Models
material: fishing_rod
graphics:
models:
normal: item/modern_fishing_rod
cast: item/modern_fishing_rod_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_crossbow
pulling_0: item/modern_crossbow_0
pulling_1: item/modern_crossbow_1
pulling_2: item/modern_crossbow_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_crossbow_0
pulling_1: item/modern_crossbow_1
pulling_2: item/modern_crossbow_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_trident
throwing: item/modern_trident_2
Shield from a model
modern_shield_model:
name: Modern Shield Model
material: shield
graphics:
models:
normal: item/modern_shield
blocking: item/modern_shield_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
Oversized in GUI
Render the item bigger than a normal slot in inventories and GUIs.
modern_texture:
name: Modern Model
graphics:
model: item/modern_model
oversized_in_gui: true
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
{
"textures": {
"wool": "block/white_wool",
"particle": "block/oak_planks",
"wood": "block/oak_planks"
},
"elements": [
// ... model elements ...
]
}
