Skip to main content

Migration Notes

This page helps administrators update older Structory configurations.

Updating from 1.5 to 26.1

The main migration points are:

  • Free and Premium are now separate projects;
  • both editions use version 26.1;
  • Premium has a new editor dashboard;
  • Folia support is declared in plugin.yml;
  • reusable particle/sound decorations should live under options.particle;
  • the ActionBar path was fixed through the newer DadaPlatform dependency.

Back up the full plugins/Structory/ folder before updating.

Use recipe and discovers

Some old examples use recipe-group inside the structure crafting option.

For new configurations, use recipe on the structure:

options:
crafting:
recipe: ["forge"]

Then use discovers in the recipe:

my_recipe:
discovers: "forge"

If a recipe has no discovers, Structory treats it as default.

If a structure has no recipe, Structory treats it as default.

Move old crafting effects to particle

Old configurations may place effects directly inside crafting:

crafting:
consume:
type: particle
particle: FLAME

Use the particle option instead:

options:
crafting:
recipe: ["default"]
particle:
consume:
type: particle
particle: FLAME
amount: 8

This keeps crafting logic and visual effects separated.

If the console warns about consume, result, insert, place or take being inside the crafting option, move those sections under options.particle.

Example warning:

Please move 'consume' section particle of crafting option inside of particle option

Correct structure:

options:
crafting:
recipe: ["default"]
particle:
consume:
type: particle
particle: FLAME
amount: 8
result:
type: sound
sound: ENTITY_PLAYER_LEVELUP
volume: 1
pitch: 1

Add listeners explicitly

If you add a listener section, include all listeners you still want to use.

Before:

crafting:
recipe: ["default"]

After, with both right-click and entity-death:

crafting:
recipe: ["default", "soul_altar"]
listeners:
interact: {}
entity-death:
range: 8

Without interact: {}, normal right-click crafting may no longer be enabled for that structure.

Replace unclear dependency aliases

Prefer readable aliases:

Instead ofPrefer
ceitemcraftengine
oitem as ingredientoraxen
nitemnexo
mitemmmoitems
iaitemitemsadder
eitemecoitems

Short aliases may still work, but full names are clearer and easier to maintain.

Retest after migration

After updating old files:

  1. Restart the server.
  2. Check the console for parser warnings.
  3. Create or reload the structure.
  4. Test item placement.
  5. Test one recipe.
  6. Test listeners such as entity-death.
  7. Test dependency item recipes last.