← All articles

How to create a custom item in Minecraft 1.20.5+ without JSON

Learn how to easily build custom items using the new Data Components in Minecraft 1.21.4+ without manually writing JSON files.

Ready to skip the fragile hand-typing?

Generate the item command in the Custom Item Builder and add the pack-side visuals only when you actually need them.

“Without JSON” does not mean “without logic”

When people say they want to create a custom item “without JSON”, they usually do not mean they want magic. They mean they do not want to hand-write the most fragile part of the workflow. Modern Minecraft items can carry visible text, hidden identity, model hooks, potion behavior, custom attributes, and version-specific syntax. That is a lot to keep inside one hand-written command, especially if you are also building the resource pack side at the same time.

Since Minecraft 1.20.5, the move from old NBT item syntax to Data Components made this even more intimidating. The logic of custom items is still learnable, but the punctuation burden got heavier. You now need the right wrapper, the right component names, the right quotes, and the right version mode before the game will even accept the line. That is why a visual builder matters. It does not remove the structure of the item. It removes the need to type every fragile piece by hand.

What a custom item actually needs

Before you generate anything, it helps to think of a custom item as four layers instead of one giant command:

Layer What it controls Typical example Why it matters
Base item The vanilla item the game still recognizes minecraft:paper, minecraft:iron_sword The game still needs a real item underneath the custom look.
Visible identity Name and lore players actually read “Guild Pass”, “Emergency Ration” This is what gives the item flavor and readability.
Hidden identity An ID or marker used by your server logic quest_pass, rp_currency_tier_1 Prevents two pretty items from being indistinguishable to your systems.
Visual hook Model or texture connection custom_model_data, item_model Links the command side to the resource pack side.

Step-by-step: building one useful item

Imagine you want a guild pass for an RP server. You do not need to start with a giant command. Start with the role the item plays.

  1. Pick the base item. Paper is often a good starting point for passes, notes, contracts, and letters because it is visually neutral and easy to replace with a model later.
  2. Set the visible name. Give players a readable name that tells them what the object is at a glance.
  3. Add lore only if it helps. Lore should clarify function, mood, or ownership, not become a wall of decorative text.
  4. Assign a hidden identity. If the server needs to distinguish this pass from ordinary paper, give it a reliable internal marker.
  5. Add the visual hook. This is where a model ID or item model reference connects the command to the pack.
  6. Test it in game. Check inventory readability, floor appearance, and whether the item still behaves as expected when given through commands or trades.

A generated command is still a real command

Using a builder does not mean the command becomes fake or “less technical”. It means the structure is assembled for you in a safer order. A modern item command generated from the builder might look like this:

/give @p minecraft:paper[minecraft:custom_name='{"text":"Guild Pass","italic":false}',minecraft:custom_model_data=2047]

You could absolutely type that by hand. The question is whether that is a good use of your attention when you are also deciding the name, the lore, the model, the hidden ID, the pack mapping, and the server logic around it. For most teams, it is not.

How the builder connects to the resource pack

A custom item only feels complete when the command side and the visual side agree. If your builder output points to one model hook and your pack expects another, the item can spawn correctly but still look like ordinary paper or an ordinary sword. That is why the Custom Item Builder and the Resource Pack Generator make sense together.

The builder handles the command-facing identity. The pack generator handles the model and texture structure. Once both sides agree, your item becomes repeatable. You can put it in villager trades, quest rewards, loot chains, or command blocks without rebuilding the logic from scratch every time.

Version differences matter more than most beginners expect

Many “I just want a custom item” problems are actually version problems in disguise. The workflow changes depending on what the server expects.

Version What changes What beginners usually break
Before 1.20.5 Classic item NBT Trying to paste modern component syntax into a legacy server.
1.20.5–1.21.3 Data Components replace item NBT Keeping old curly-brace habits or mixing both systems.
1.21.4+ Same component world, but more modern pack and item-model flows matter Forgetting that command syntax and pack structure must evolve together.

Common mistakes when people try to avoid JSON on their own

Why this is especially useful for RP and no-mod servers

No-mod servers rely on items carrying meaning without extra client installs. A coin, a contract, a relic, a medical dose, a cult token, or a class item all need to feel different from the vanilla base item without demanding a modpack from every player. That is exactly where builder-based workflows shine. They keep the experience browser-first and player-friendly while still letting the server team organize items cleanly behind the scenes.

Instead of forcing every teammate to remember component syntax, you build a repeatable process. Someone can make the art. Someone can decide the role of the item. Someone can configure the command. The final result is still a normal Minecraft command, but you no longer pay for that result in preventable syntax mistakes.

Frequently Asked Questions

Do I need to learn JSON to use CustomModelData?

No. It helps to understand the idea behind your item, but you do not need to hand-write JSON files or full component syntax just to create a usable custom item. That is exactly what the builder is there to simplify.

What changed in Minecraft 1.20.5 regarding items?

Mojang replaced traditional item NBT with Data Components. The command structure changed, so many older item tutorials now show the wrong syntax for modern servers.

Can I still use this workflow if I only want a renamed item?

Yes. In fact, that is a good place to start. A renamed item is a small test case that helps you understand the modern flow before you add models, lore, or hidden logic.

What if I want the item to have a custom texture too?

Then pair the Custom Item Builder with the Resource Pack Generator. One side handles the command identity, the other handles the pack structure.

Is “without JSON” only for beginners?

No. Even experienced server builders benefit from faster iteration, cleaner version switching, and fewer punctuation mistakes. The goal is not to avoid understanding. The goal is to spend your effort on design instead of syntax cleanup.