Custom Items & Heads
Anywhere uxmEssentials asks for a material — menu icons, and the same shared icon
resolution used for kits and hologram displays — you aren't limited to vanilla
items. A short provider:id prefix lets you drop in custom items from
ItemsAdder, Oraxen, Nexo or MMOItems, and custom heads from
HeadDatabase, base64 textures or player skins.
Custom Item Providers¶
Prefix the material with the provider name and the item's id:
| Prefix | Provider | Example |
|---|---|---|
itemsadder: |
ItemsAdder | itemsadder:ruby_sword |
oraxen: |
Oraxen | oraxen:emerald_pickaxe |
nexo: |
Nexo | nexo:amethyst_axe |
mmoitems: |
MMOItems | mmoitems:SWORD:cutlass |
These resolve reflectively, so uxmEssentials never loads a provider's classes unless that plugin is actually present.
Exact id format follows the source plugin
The prefix vocabulary above is fixed, but the part after the colon is whatever id the source plugin expects (ItemsAdder namespaced ids, MMOItems type/id pairs, ...). Copy the id from that plugin's own catalog.
Heads¶
Custom-head sources use the same prefixed syntax:
| Prefix | Source | Example |
|---|---|---|
hdb: |
HeadDatabase, by id | hdb:12345 |
basehead: |
A base64 texture value | basehead:eyJ0ZXh0dXJlcyI6... |
skull: |
A player's head | skull:Notch |
HeadDatabase is guarded strictly — the hdb: source only resolves when the plugin
is enabled and its API loads. Base64 and player heads are native and need no
extra plugin.
Where These Work¶
The provider:id syntax is the material spec used by the menu engine, which
backs the icon picker across menus and every module GUI. The same shared head
sources (hdb: / basehead: / skull:) also feed hologram head displays and
custom icons on kits and vaults.
# a menu item using an ItemsAdder icon
items {
reward {
material = "itemsadder:ruby_sword"
slot = 13
name = "<gradient:#ff4e50:#f9d423>Ruby Blade</gradient>"
}
}
When a Provider Is Absent¶
Custom-item resolution fails soft. If a prefix points at a plugin that isn't installed (or an id that doesn't exist), the lookup silently misses and the renderer falls back to a plain material — the menu, kit or hologram still opens, just with a default icon.
| Situation | Behavior |
|---|---|
| Provider installed, id valid | The custom item / head renders. |
| Provider absent or id unknown | Silent fallback to a plain material. |
| HeadDatabase not enabled | hdb: is a no-op; basehead: / skull: still work. |
Advanced item meta with NBT-API
For the rare tag that native Paper data-components can't express, uxmEssentials
will use NBT-API if it's installed. Item meta is built from native
components first; without NBT-API that raw-NBT path is simply skipped — no
de.tr7zw classes are touched.
Setup Checklist¶
- Install whichever item providers you use (ItemsAdder, Oraxen, Nexo, MMOItems) and/or HeadDatabase — no uxmEssentials config needed.
- Reference items with
provider:idin menu specs, kit editors and hologram head displays. - Missing providers degrade gracefully to plain materials, so a menu is never broken by an item you haven't installed yet.
Next Steps¶
- 🎛️ The Custom Menu Engine — the full item-spec reference
- 🎁 Kits — custom icons on kit entries
- 🖼️ Holograms — item and head displays