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 / Oraxen | RP Engine |
|---|---|
| item id | an item under the content pack's namespace |
material, lore, unbreakable | the same |
itemname, displayname or customname | name |
Pack.model | model |
Pack.texture (Nexo), pack.textures (Oraxen) | texture, the first layer |
Components.item_model | model, for Nexo items with no Pack: |
Enchantments | enchantments |
AttributeModifiers, list or map form | attributes, with operation and slot |
durability, max_damage | durability |
max_stack_size | stack |
food | food |
enchantment_glint_override: true | glow |
equippable.slot | armor |
Mechanics.furniture | place: |
| furniture barriers | solid: true |
| furniture interaction hitbox | width and height |
| furniture seat | seat, all three numbers |
| furniture light | light |
restricted_rotation | facing: 8 ways by default, 4 for VERY_STRICT |
limited_placing | surface |
a uniform scale | scale |
a nexo_item / oraxen_item drop | drop |
custom_block (Nexo), block (Oraxen), the old noteblock | a custom block, with its model, hardness, tool, drop and place sound |
Oraxen breaking rules | the first rule's hardness, tool and drop |
| static glyph | an 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 entry | a sound, with its file, category, subtitle, volume, pitch and stream |
| shaped, shapeless, furnace, blasting, smoking, campfire and stonecutting recipes | recipes, 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:.