Skip to content

Simple Item Models

Minetrio1256 edited this page Jun 17, 2026 · 2 revisions

Simple Item Models

Simple Item Models are the fastest way to register standard items in a resource pack.

Instead of manually creating:

  • ItemModels
  • ItemModel
  • ModelNode
  • ItemModelDefinition
  • ModelTextures

the framework can generate everything automatically from a single ResourceLocation.


Overview

Simple Item Models automatically generate:

Item Model Graph

{
  "model": {
    "type": "minecraft:model",
    "model": "namespace:item/item_name"
  }
}

Model Definition

{
  "parent": "minecraft:item/generated",
  "textures": {
    "layer0": "namespace:item/item_name"
  }
}

Both are created from the same item identifier.


Generated Items

Generated items use the vanilla parent:

minecraft:item/generated

These are suitable for:

  • Materials
  • Food
  • Gems
  • Components
  • Most inventory items

Example

ResourceLocation shrimp =
        new ResourceLocation(
                "mingcraft",
                "shrimp"
        );

SimpleItemModels
        .generated(shrimp)
        .register(pack);

Generated assets:

Item Model Graph

{
  "type": "minecraft:model",
  "model": "mingcraft:item/shrimp"
}

Model Definition

{
  "parent": "minecraft:item/generated",
  "textures": {
    "layer0": "mingcraft:item/shrimp"
  }
}

Handheld Items

Handheld items use:

minecraft:item/handheld

These are suitable for:

  • Swords
  • Axes
  • Pickaxes
  • Shovels
  • Weapons
  • Tools

Example

SimpleItemModels
        .handheld(
                new ResourceLocation(
                        "mingcraft",
                        "steel_sword"
                )
        )
        .register(pack);

Generated model:

{
  "parent": "minecraft:item/handheld",
  "textures": {
    "layer0": "mingcraft:item/steel_sword"
  }
}

Handheld Rod Items

Handheld rod items use:

minecraft:item/handheld_rod

These are suitable for:

  • Fishing rods
  • Wands
  • Magic staffs
  • Rod-like items

Example

SimpleItemModels
        .handheldRod(
                new ResourceLocation(
                        "mingcraft",
                        "magic_wand"
                )
        )
        .register(pack);

Generated Texture Path

Simple Item Models automatically derive the texture path from the item id.

Given:

new ResourceLocation(
        "mingcraft",
        "ruby"
)

The generated texture becomes:

mingcraft:item/ruby

Given:

new ResourceLocation(
        "mingcraft",
        "steel_sword"
)

The generated texture becomes:

mingcraft:item/steel_sword

No additional texture configuration is required.


Advanced Options

Simple Item Models still create a standard ItemModels instance internally.

Properties such as:

  • Hand animation behavior
  • GUI scaling
  • Swap animation scale

may be configured before registration.

Example:

SimpleItemModels.generated(
        new ResourceLocation(
                "mingcraft",
                "giant_hammer"
        )
)
.oversized()
.swapScale(1.5f)
.register(pack);

When To Use Simple Item Models

Use Simple Item Models when:

  • The item uses a single texture

  • The item uses a vanilla parent

  • The item does not require conditional models

  • The item does not require range dispatch

  • The item does not require custom model graph logic


When To Use The Full Item Model API

Use the full API when you need:

  • SelectNode
  • ConditionNode
  • CompositeNode
  • RangeDispatchNode
  • Custom tints
  • Dynamic item properties
  • Multiple layered model graphs

Example:

ItemModels model =
        Models.model()
                .root(
                        Selects.select(
                                "minecraft:charge_type",
                                Nodes.empty(),
                                ...
                        )
                )
                .build();

The full API provides complete access to Minecraft's item model system, while Simple Item Models provide a fast path for common items.