Skip to main content
Guide

How to Add a Custom Item

A step-by-step walkthrough of the entire custom item pipeline — from Blockbench model to in-game item. See every JSON file PackStudio generates behind the scenes, explained.

1

Prepare Your Model in Blockbench

The first step is creating a 3D model. Blockbench is the industry standard — it's free, cross-platform, and exports directly in Minecraft's JSON model format.

Before you start

  • Select Java Edition Item as model type
  • Set display format to 3D Inventory
  • Keep your model within 16×16×16 grid
  • UV-map every face before exporting

Export settings

  • File → Export → Export Model
  • Format: Java Edition Model
  • Check Save with texture
  • Name it my_item.json

Common mistake

Selecting "Bedrock" as the export format generates a completely different JSON structure that PackStudio cannot parse. Always use Java Edition Item.

2

Upload to PackStudio

Open the PackStudio editor and click Add Item. The wizard guides you through uploading your model, textures, and setting options.

1

Upload Model

Select your Blockbench .json export. PackStudio validates the structure immediately.

2

Upload Textures

Add one or more .png texture atlases. They map to the texture keys in your model.

3

Choose Base Item

Pick a vanilla Minecraft item to override (e.g. carved_pumpkin, stick). This is the "carrier" that gets reskinned.

4

Name Your Item

The internal identifier — lowercase letters, numbers, underscores, and hyphens.

5

Create

Click Create and PackStudio generates every file your item needs.

3

See What PackStudio Generates

When you create an item, PackStudio writes several JSON files behind the scenes. These tabs show real examples from a hard_hat item overriding carved_pumpkin. Click the tabs to switch between files — expand sections to see full details, or copy any JSON.

How it all connects

┌────────────────────────────────────────────────────────────┐
│  You upload:                                              │
│    • model.json (Blockbench export)                        │
│    • texture.png (painting atlas)                          │
│    • base_item: carved_pumpkin                             │
│    • item name: hard_hat                                   │
└───────────────────────┬────────────────────────────────────┘
                        ▼
┌────────────────────────────────────────────────────────────┐
│  PackStudio generates:                                     │
│                                                            │
│  items/gc/hard_hat.json         ← namespace item pointer   │
│  models/item/hard_hat.json      ← your 3D model            │
│  textures/item/custom/hard_hat   ← your texture PNG        │
│  items/minecraft/carved_pumpkin  ← override (select cases)  │
│  lang/en_us.json                ← display name entry       │
│                                                            │
│  (Optional datapack recipe + advancement)                   │
└───────────────────────┬────────────────────────────────────┘
                        ▼
┌────────────────────────────────────────────────────────────┐
│  In Minecraft:                                             │
│                                                            │
│  /give @p minecraft:carved_pumpkin{                         │
│    custom_model_data={strings:["hard_hat"]}                 │
│  }                                                         │
│                                                            │
│  → The carved pumpkin appears as your hard hat!             │
└────────────────────────────────────────────────────────────┘
4

Get Your Item in Game

After downloading your resource pack, you need two things to see the item in Minecraft.

Resource Pack

  1. 1. Download the resource pack ZIP from PackStudio
  2. 2. Place it in .minecraft/resourcepacks/
  3. 3. Enable it in Settings → Resource Packs

Datapack (to spawn items)

  1. 1. Use a datapack like CustomRoleplay or ModelApplier
  2. 2. Place it in your world's datapacks/ folder
  3. 3. Run /reload in-game
  4. 4. Use /trigger commands to receive items

Give Command

When you download your pack, PackStudio includes a changelog with give commands. Here's the command format for our hard hat example:

/give @p minecraft:carved_pumpkin{custom_model_data={strings:["hard_hat"]}}

The command gives a vanilla carved pumpkin with a custom_model_data string attached. The resource pack detects this string and swaps in your model.

Ready to create your own item?

Start a new pack session and use the "Add Item" wizard. Upload a Blockbench model, add a texture, and PackStudio handles the rest.

Start a new pack

No account required to start editing

Thanks for your feedback!

We read every message.

Help us improve

We're in beta — tell us what's working, what's broken, or what you'd love to see.