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.
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.
Upload to PackStudio
Open the PackStudio editor and click Add Item. The wizard guides you through uploading your model, textures, and setting options.
Upload Model
Select your Blockbench .json export. PackStudio validates the structure immediately.
Upload Textures
Add one or more .png texture atlases. They map to the texture keys in your model.
Choose Base Item
Pick a vanilla Minecraft item to override (e.g. carved_pumpkin, stick). This is the "carrier" that gets reskinned.
Name Your Item
The internal identifier — lowercase letters, numbers, underscores, and hyphens.
Create
Click Create and PackStudio generates every file your item needs.
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.
items/gc/hard_hat.json
Tells Minecraft "when you need the item gc:hard_hat, use this model."
items/minecraft/carved_pumpkin.json
Overrides the vanilla carved pumpkin. When its custom_model_data
matches "hard_hat", Minecraft swaps in the hard hat model.
This is the shape of the file when you have multiple items overriding the same base item —
each gets its own case entry. PackStudio manages the list — you don't touch this file.
models/item/hard_hat.json
Your Blockbench model (saved as-is, with texture paths remapped).
textures — Maps texture keys to file paths. PackStudio remaps "gc:item/custom/hard_hat" to point to the uploaded PNG.
elements — 3D cubes that make up the model. Each has position, size, rotation, and face UVs.
display — How the item appears in GUI, first-person, third-person, etc.
The full file is 333 lines because each face of each cube gets UV coordinates — Blockbench does all the math.
datapack/recipe/stonecutting/hard_hat.json
An optional stonecutting recipe so players can craft the item in-game — carved pumpkin → hard hat.
lang/en_us.json
Display names for items. PackStudio adds an entry like
"item.gc.hard_hat": "Hard Hat".
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! │
└────────────────────────────────────────────────────────────┘
Get Your Item in Game
After downloading your resource pack, you need two things to see the item in Minecraft.
Resource Pack
- 1. Download the resource pack ZIP from PackStudio
- 2. Place it in
.minecraft/resourcepacks/ - 3. Enable it in Settings → Resource Packs
Datapack (to spawn items)
- 1. Use a datapack like CustomRoleplay or ModelApplier
- 2. Place it in your world's
datapacks/folder - 3. Run
/reloadin-game - 4. Use
/triggercommands 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 packNo account required to start editing