resourcepack.ai
DOCS

Migrating

Moving from Nexo or Oraxen

RP Engine reads Nexo and Oraxen config files as they are. Copy the folders out of plugins/Nexo/ or plugins/Oraxen/ into one content pack, and the contents of that pack's assets/<your-pack>/ folder into assets/, then start the server.

plugins/RPEngine/content/
  my_pack/
    items/          ← from Nexo/items/<your-pack>/ or Oraxen/items/<your-pack>/
    glyphs/         ← from glyphs/
    recipes/        ← from recipes/: Nexo's type folders or Oraxen's shaped.yml and friends
    sounds/         ← sounds.yml
    assets/         ← contents of assets/<your-pack>/
      models/
      textures/

There is nothing to turn on and no pack.yml is needed. A file is recognised by its own shape: an item block with Pack: (or Oraxen's lowercase pack:), Components: or Mechanics:, a glyph with a texture, or a sounds file whose sounds: is a list. Nothing of ours looks like any of them, so one of their files also works inside a pack of yours, which is the useful shape for moving over a piece at a time. Both plugins' current formats are read (Nexo 1.28, Oraxen 1.220), and Oraxen's older capitalised sections too.

What comes across#

Nexo / OraxenRP Engine
item idan item under the content pack's namespace
material, lore, unbreakablethe same
itemname, displayname or customnamename
Pack.modelmodel
Pack.texture (Nexo), pack.textures (Oraxen)texture, the first layer
Components.item_modelmodel, for Nexo items with no Pack:
Enchantmentsenchantments
AttributeModifiers, list or map formattributes, with operation and slot
durability, max_damagedurability
max_stack_sizestack
foodfood
enchantment_glint_override: trueglow
equippable.slotarmor
Mechanics.furnitureplace:
furniture barrierssolid: true
furniture interaction hitboxwidth and height
furniture seatseat, all three numbers
furniture lightlight
restricted_rotationfacing: 8 ways by default, 4 for VERY_STRICT
limited_placingsurface
a uniform scalescale
a nexo_item / oraxen_item dropdrop
custom_block (Nexo), block (Oraxen), the old noteblocka custom block, with its model, hardness, tool, drop and place sound
Oraxen breaking rulesthe first rule's hardness, tool and drop
static glyphan icon, with its height and ascent
glyph grid (rows, columns)one icon per cell, <id>_1 onwards, numbered the way <glyph:id:N> numbers them
sounds.yml entrya sound, with its file, category, subtitle, volume, pitch and stream
shaped, shapeless, furnace, blasting, smoking, campfire and stonecutting recipesrecipes, with vanilla, Nexo and Oraxen ingredients

An item model such as my_pack:item/ruby becomes RP Engine's item/ruby. RP Engine builds its own item definitions from that, so nothing depends on the plugin's CustomModelData allocation.

What does not#

Each of these is a warning naming the ID when the pack loads, never a silence: a migration that quietly drops a third of somebody's pack is worse than one that refuses out loud.

A world of blocks and furniture does not come across

Block and furniture definitions translate. The ones already placed in a world do not: the vanilla state each block hides in was allocated by the plugin against its own numbering, and placed furniture is the plugin's own entities. A pack migrates; a world has to be rebuilt or remapped by hand.

The block pool here is also smaller, 49 per note-block base, because the instrument cannot be part of a block's identity. A pack with hundreds of blocks will not fit as it stands.

Plugin behaviour rather than item properties: click commands, storage, jukeboxes, connectable furniture, beds, doors, evolution and the rest of Mechanics. The item still loads, and actions cover most of what a click command did.

Shapes RP Engine does not have: string, chorus, stair, slab, door, trapdoor, grate and bulb blocks come across as a full cube.

More than one of something: extra seats, extra lights and extra hitboxes. The first (or the one at the anchor) comes across, and the warning counts the rest.

Animated glyphs: a GIF glyph is skipped, and an Oraxen animation: comes across as its first frame.

Smithing, brewing, anvil, cauldron and grindstone recipes, and any recipe with an ingredient that is a tag or another plugin's item. Those are skipped whole and named, rather than loaded with an ingredient missing.

Sounds that replace a vanilla one (minecraft: ids and replace: true): put those in overrides/sounds.json instead.

Two things worth knowing#

Some art has to move. RP Engine reads icons from assets/textures/font/ and armour from vanilla's equipment path (assets/textures/entity/equipment/humanoid/<id>.png, or humanoid_leggings/ for legs), and Nexo and Oraxen keep both elsewhere. A block whose model the plugin generated from parent_model and textures needs that model written as assets/models/<id>.json. The load warns with the exact path in each case.

Seats are worth a look in game. Oraxen measures a seat from where its armour stand stands and RP Engine from where the rider sits, so Oraxen seats are converted and the load says so. Nexo seats come across as written. Either way, if a chair sits people slightly wrong, adjust its seat:.