RE:NODE

Minecraft10 min read

Minecraft custom items: ItemsAdder, Oraxen, Nexo

How custom items, blocks and furniture work on a Paper server, ItemsAdder vs Oraxen vs Nexo, hosting the generated resource pack, and what it costs.

0 readers

Custom items on a Paper server are vanilla items wearing a costume. The server hands a player an ordinary item - a paper, a stick, a diamond sword - with a tag that tells the client to draw a different model, and a server resource pack supplies the model and texture. Plugins such as ItemsAdder, Oraxen and Nexo automate both halves: you describe items, blocks and furniture in YAML, the plugin builds the resource pack and handles behaviour, and players download the pack when they join. It works without client mods, it is genuinely good, and it has three costs people discover late: the pack has to be hosted somewhere players can download it, Bedrock players through Geyser do not see it without extra work, and custom blocks and furniture use tricks that cost the server more than ordinary blocks.

This guide covers how the trick works, the three main plugins, pack hosting, and the problems you will hit. The basics of server resource packs - the server.properties keys and the SHA-1 hash - are in MOTD, icon and resource packs.

How custom items work without mods#

The client decides what an item looks like using its resource pack. The server can only send item data. Every custom item system is a way of attaching a marker to item data that a resource pack can recognise.

For years that marker was the CustomModelData integer. A resource pack overrode the model of, say, paper, and said "if CustomModelData is 1001, use this model instead". Plugins handed out paper with that number, and players saw a sword or a coin or a hat.

Minecraft 1.20.5 replaced item NBT with data components, and 1.21.2 to 1.21.4 reworked item models further:

  • The minecraft:item_model component (1.21.2) lets an item point at any model directly, so a custom item no longer has to hijack another item's overrides.
  • In 1.21.4, item model definitions moved to assets/<namespace>/items/, and custom_model_data became a component holding lists of floats, flags, strings and colours rather than one integer.

You do not need to write any of this by hand if you use a plugin, but you do need to know it exists, because it is why custom item plugins break across Minecraft updates and why a pack built for 1.21.1 may need regenerating for 1.21.4 clients. When you update the server, update the plugin first and regenerate the pack.

Behaviour is the server's job. A custom sword with extra damage, a custom food that gives a potion effect, a custom tool that mines in a 3x3 area - all of that is server-side logic in the plugin. The resource pack only changes appearance.

Custom blocks and furniture: the expensive part#

Items are easy because every client already supports custom item models. Blocks are not, because Minecraft has a fixed list of block states and no component system for them. Plugins therefore reuse block states that players never see in normal play:

TechniqueHow it worksCost and caveats
Note block statesHundreds of instrument and note combinations, each mapped to a textureReal note blocks lose those states; cheap otherwise
Mushroom stem and block statesSix faces, each true or false, give dozens of statesMushroom blocks look odd; cheap
Tripwire and chorus statesUsed for transparent or non-full blocksBehaviour quirks with tripwire updates
Furniture as entitiesAn item display or armour stand with a barrier for collisionEach piece is an entity - see below

Block-state tricks are cheap: a custom ore made from a note block state costs the same as a note block. Furniture is different. A chair, a lamp or a table is usually an entity (an item display on modern versions, an armour stand on older ones) plus barrier blocks or interaction entities for the hitbox. A tavern with sixty pieces of furniture is sixty-plus entities in one chunk, and a town of such buildings adds up. They do not run AI, so they are far cheaper than mobs, but they count, they are sent to every nearby client, and they show up in /paper entity list.

Keep furniture-heavy builds in moderation, prefer block-based decoration where it looks as good, and check entity counts after a big build goes up. Entity cleanup and ClearLag has the commands - and the reminder never to run a blanket /kill on a server with furniture entities.

ItemsAdder, Oraxen and Nexo compared#

Three plugins dominate. All three are paid, all three generate a resource pack, and all three are maintained by small teams, so check the current version's support for your Minecraft version before buying.

PluginStrengthNotes
ItemsAdderLargest feature set, big ecosystem of ready-made content packsPaid; complex config; has its own pack hosting options
OraxenLong-standing, simpler config, open development historyPaid builds; the main developer moved on to Nexo
NexoSuccessor to Oraxen by its main developer, modern codebasePaid; newer, smaller ecosystem, Oraxen configs can be migrated

Practical guidance:

  • If you want to buy finished content - furniture sets, weapon packs, emoji packs - ItemsAdder has the most of it, sold by third-party creators.
  • If you want to design your own items and prefer readable YAML, Oraxen or Nexo are easier to reason about. New servers choosing between the two today generally pick Nexo, because that is where active development went.
  • Do not run two of them at once. Both will try to own the resource pack and the block states.

Other plugins integrate with these: MythicMobs for custom mobs that use custom models, MMOItems for RPG item stats, and various crafting and GUI plugins. Check compatibility before buying a stack of them.

Setting up ItemsAdder#

ItemsAdder is the most common, so here is its shape. Paths and commands change between major versions; read the documentation for the version you install.

  1. Install the plugin jar and its dependencies. Check the dependency list on the download page - historically it has needed ProtocolLib and its own library plugin (LoneLibs).
  2. Start the server once. It creates plugins/ItemsAdder/ with a config.yml and a contents folder (plugins/ItemsAdder/contents/ in current versions) where item definitions live, each set in its own namespace folder.
  3. Choose how the resource pack is hosted (next section) in config.yml.
  4. Add or write content, then build the pack:
code
/iazip/iareload/iaget <namespace:item>

/iazip compiles every content folder into a single resource pack zip and, depending on hosting settings, uploads or serves it. /iareload reloads item definitions. /iaget gives yourself an item to test. After /iazip, rejoin to download the new pack.

A minimal item definition in ItemsAdder's format looks like this, though the schema has evolved and you should copy from the current examples rather than this:

plugins/ItemsAdder/contents/myserver/configs/items.yml
info:  namespace: myserveritems:  ruby:    display_name: "Ruby"    resource:      material: EMERALD      generate: true      textures:        - item/ruby.png

The texture goes under the namespace's textures/item/ folder. generate: true tells ItemsAdder to build the model from the texture. The underlying material is what vanilla behaviour falls back to - here an emerald, so it stacks to 64 and villagers might want it. Choose base materials deliberately: a custom food based on bread behaves like bread unless the plugin overrides it.

Hosting the resource pack#

Every client must download the pack, and Minecraft downloads it over HTTP or HTTPS from a URL the server sends. That means the zip has to live at a URL. You have three options.

  • A host the plugin provides. ItemsAdder offers its own hosting option that uploads the pack for you. Convenient; you depend on a third-party service being up.
  • Self-hosting from the Minecraft server. The plugin runs a small web server inside the Minecraft server on an extra port and serves the zip itself. Needs one more port allocated and open. Downloads come from your server's address, so a big pack and many joins cost your bandwidth.
  • An external host. Upload the zip to a web host, object storage or a static site and give the plugin the URL. The most robust option for a public server.

Whichever you choose, the pack must be reachable from players' networks and the URL must serve the file directly, not an HTML download page. File-sharing services that put a "click to download" page in front of the file do not work.

Keep the pack small. Every joining player downloads it once per change, and a 100 MB pack of uncompressed textures makes joining slow for players on poor connections. Compress PNGs, remove unused content packs, and avoid shipping sounds you do not use. Forcing the pack (require-resource-pack=true in server.properties, or the plugin's equivalent setting) means players who decline cannot play - correct for a server whose items are invisible without it, but make sure the prompt explains why.

Bedrock, proxies and other complications#

Bedrock players. If you run Geyser so Bedrock players can join, they do not get Java resource packs. Geyser has its own mechanism for custom items and blocks, using mappings and a converted Bedrock pack, and ItemsAdder, Oraxen and Nexo have varying levels of support or companion tools for producing it. Expect real work and imperfect results, especially for furniture and custom blocks. Geyser for Bedrock crossplay covers the basics.

Proxy networks. On a Velocity network, the backend server sends the pack. If several backends use the same items, they must generate or share the same pack, or players re-download every time they switch servers. Pick one server as the source of truth and copy the pack and configs to the others.

Updates. A Minecraft update can change the resource pack format and the item component system. Before updating a server with custom items, check that your plugin version supports the new release, update it on a copy of the server, regenerate the pack and test with a fresh client. Minecraft version upgrades covers the general procedure.

Plugins that inspect items. Shop, auction and economy plugins compare items by type and data. A custom ruby based on an emerald might be sold as an emerald to a sign shop that only checks the material. Test each economy plugin with custom items before players find the exploit.

Doing it without a plugin#

For a handful of cosmetic items you may not need a paid plugin at all. A datapack or a few commands can hand out items with a model component, and you write the resource pack yourself:

code
/give @p minecraft:paper[minecraft:item_model="myserver:ruby"]

That form needs 1.21.2 or later (add an item_name component for the display name; its text syntax changed in 1.21.5, so check the wiki for your version), and a resource pack that defines the myserver:ruby model. It is clean and future-proof for simple cosmetic items and trophies. It does not give you custom blocks, furniture, custom crafting with behaviour, or GUIs - which is the point at which a plugin earns its price. Datapacks for servers covers the datapack side.

On RE:NODE, uploading a content pack is a drag of the zip into the file manager, which unpacks archives in place, and the console shows /iazip and reload output unfiltered so errors in your YAML are visible as they happen. If you self-host the pack, add a port on the Network tab. Take a backup from the panel before a large content change or a Minecraft update; restoring is one button.

FAQ#

Do players need mods to see custom items?

No. They need the server's resource pack, which the client downloads when joining. Java players on a vanilla launcher see custom items, blocks and furniture as long as they accept the pack.

Is ItemsAdder worth paying for?

If you want a lot of custom content - furniture, blocks, GUIs, emojis - and especially if you want to buy ready-made packs, yes. For a few cosmetic items, a datapack and a hand-made resource pack using the item_model component is enough.

Why do players see purple and black or plain items?

The pack did not load. Either they declined it, the URL is not reachable or does not serve the file directly, or the pack was built for a different Minecraft version. Check the URL in a browser and regenerate the pack after any update.

Do custom blocks cause lag?

Block-state blocks cost about the same as the vanilla block they reuse. Furniture is usually entities, which cost more and add up in busy builds. Keep an eye on entity counts in towns and furniture-heavy areas.

Can Bedrock players use ItemsAdder items?

Only with extra work through Geyser's custom item mappings and a converted Bedrock pack, and results vary by item type. Plan for Bedrock players seeing some items as their base material unless you invest in conversion.


Comments

Completely anonymous: no account, no email, no cookie. We store the name you type, the text and the time - nothing else. Links are limited and markup is not rendered.

0/2000