Custom items, models and what they ask of your players

Plugins & Mods Reviewed September 6, 2026 2 min read

Custom items are a server-side item wearing a client-side skin. The server can define anything; whether a player sees it depends entirely on whether they have your resource pack — and that split is where all the confusion lives.

How it works

The server gives an ordinary item a piece of extra data — historically a custom model number, and on newer versions an item model identifier. Your resource pack says «when you see that value on this item, draw this model instead». Without the pack, the client draws the ordinary item, because that is genuinely what it is.

What players see

Player hasThey see
Your resource packThe custom model, as intended
No packThe base item — a stick, a carrot on a stick, a paper
An old version of your packThe base item, or the wrong model
Bedrock via GeyserThe base item. Java packs do not apply to them.
The custom data survives; the appearance does not

A custom item still works without the pack — the plugin still knows it is a magic staff and still runs its ability. The player just sees a stick doing something inexplicable. That is why «my sword is broken» reports are usually a pack problem, not a plugin problem.

Setting it up so it holds together

  1. Serve the pack from the server

    resource-pack in server.properties prompts every player automatically. Asking people to install it manually means most will not.

  2. Consider requiring it

    require-resource-pack=true means nobody plays without it. On a server built around custom items that is often the honest setting, even though it turns some people away.

  3. Update the hash every time the pack changes

    Otherwise clients keep their cached copy and your new item shows as a stick for everyone who has played before.

  4. Test on an account that has never joined

    Your own client has the pack cached from ten versions ago. It is the worst possible test device.

Keep a fallback that makes sense

Choose base items that are not absurd without the pack. A custom bow that falls back to a bow reads fine; one that falls back to a raw potato does not, and someone will always be seeing the potato.

About the format change

Newer Minecraft versions replaced the old numeric model data with a named item model system. Both approaches exist in the wild, and a pack or plugin written for one will not work on the other. If custom items stopped rendering after a version upgrade, this is the first thing to check.