Skip to content

Item Source

CoreLib Item Source provides a stable way to identify items from Vanilla and external item ecosystems. It is better than relying on display names or lore.

Supported sources

SourceAliases
Vanillavanilla, minecraft, v
CraftEnginecraftengine, ce
ItemsAdderitemsadder, ia
NeigeItemsneigeitems, ni
MMOItemsmmoitems, mi
EmakiItememakiitem, ei
Nexonexo, no
Oraxenoraxen, ox
EcoItemsecoitems, eco, eci

Type names are case-insensitive. The available sources at runtime depend on which plugins are installed.

Type aliases and dash-shorthand prefixes are not identical: the type: field accepts every alias above, while the dash shorthand accepts minecraft-, mc-, v-, craftengine-, ce-, itemsadder-, ia-, neigeitems-, ni-, mmoitems-, mi-, emakiitem-, ei-, nexo-, no-, oraxen-, ox-, ecoitems-, and eci- (there is no eco- shorthand).

Object format

The object format uses type plus identifier; both must be non-blank:

yaml
item:
  type: vanilla
  identifier: diamond

MMOItems requires a <type>:<item> identifier:

yaml
item:
  type: mmoitems
  identifier: SWORD:FLAME_SWORD

When resolving an object node, CoreLib checks item_sources first, then the string field item (parsed as dash shorthand), then a nested source, and only then falls back to type + identifier.

Vanilla identifiers are normalised to lowercase and may only contain lowercase letters, digits, and underscores; a minecraft: namespace prefix is rejected.

Resolution priority

When several plugins can identify the same item, CoreLib tries resolvers in descending priority, breaking ties by resolver ID:

Resolverpriority
NeigeItems102
CraftEngine101
MMOItems100
EmakiItem (registered by EmakiItem)100
ItemsAdder98
Nexo97
Oraxen96
EcoItems95
Vanilla (fallback)0

Unified item definitions

CoreLib GUI slots and EmakiItem base items share ConfiguredItemDefinition. In YAML the source lives at item.source:

yaml
item:
  source: itemsadder-custom_items:ruby_sword
  amount: 1
  components:
    custom_name: '<red>Ruby Sword</red>'

item.source accepts every ItemSource shorthand currently registered in CoreLib. EmakiItem validates that the resolver is available and can create the base item before caching a definition. For third-party sources, component application preserves source identity, PDC, and unknown components, and transfers only patches that the current Paper runtime can safely handle.

Advice

Use stable IDs for recipe materials, rewards, conditions, and station matching. Avoid judging items by display name or lore because they may be modified by other plugins or rebuilt by CoreLib Assembly.

CraftEngine, ItemsAdder, and Nexo item sources can also be passed to the placeblock action when the source represents a custom block.