Skip to main content

Troubleshooting

This page lists common problems and how to solve them.

The plugin does not load

Check:

  1. The .jar file is inside plugins/.
  2. The server version is compatible with your Structory version.
  3. The Java version is compatible with your server.
  4. The console does not show dependency errors.
  5. Optional dependencies used by your recipes are installed and enabled.

Restart the server after changing plugin files.

The structure is not detected

CauseFix
Wrong block clickedClick the configured check-block.
Player is not sneakingUse Shift + Right Click if your setup requires it.
Layout does not matchCompare each row of the layout with the build.
Wrong levelCheck level: 0, level: 1, and level: -1.
Wrong orientationSet orientation: false while testing.
Wrong YAML formatMake sure levels are under layout.levels.
Wrong worldCheck the validworlds option if used.

The recipe does not craft

Check:

  1. The structure has the crafting option.
  2. The structure has enough recipe-slots.
  3. The recipe is available through structure recipe and recipe discovers.
  4. The recipe listener matches the structure listener.
  5. All ingredients are present.
  6. External item plugins are installed if used.
  7. The player has enough experience or currency if required.

Correct structure recipe access example:

options:
crafting:
recipe: ["forge"]

Correct recipe discover example:

my_recipe:
discovers: "forge"

The recipe GUI does not open

The GUI opens automatically when multiple recipes match.

To always open it, add:

options:
crafting:
open-gui: ALWAYS
recipe: ["default"]

Do not use old recipe-group examples for new configurations. Prefer recipe on the structure and discovers in the recipe.

killedentity does not work

killedentity requires the entity-death listener.

Structure:

options:
crafting:
listeners:
interact: {}
entity-death:
range: 8

Recipe:

listeners:
- entity-death
ingredients:
kill:
type: killedentity
entities:
- ZOMBIE

Also check:

  • the mob died within range;
  • the structure instance was loaded;
  • the killer was a player;
  • the entity type matches the recipe.

Normal right-click crafting stopped after adding entity-death

When you add crafting.listeners, include interact explicitly.

listeners:
interact: {}
entity-death:
range: 8

Items disappear or cannot be picked up

Check these settings in config.yml:

structures:
disable_item_pickup: true
shift_to_remove_item: false

If disable_item_pickup is true, Structory manages recipe-slot items and players should interact with the structure instead of picking items up normally.

Saved item does not work

Check:

  1. The item was saved with /structory item save <name>.
  2. The file exists in plugins/Structory/customitem/.
  3. The recipe uses the same key.

Example:

type: saveditem
key: strangeapple

Custom item plugin ingredient does not work

Check:

  1. The dependency plugin is installed.
  2. The dependency plugin is enabled before Structory hooks into it.
  3. The item key is correct.
  4. The correct ingredient type is used.

Recommended examples:

type: craftengine
key: "default:topaz"
type: oraxen
key: "ruby"

For Oraxen ingredients, prefer type: oraxen instead of the short alias.

default:palm_wood or another custom block says invalid material

Keys like:

default:palm_wood

are not Bukkit materials. They usually belong to a custom block plugin such as CraftEngine.

If a field expects a normal Bukkit material, use something like:

OAK_PLANKS

If you want to use a CraftEngine item or block, make sure CraftEngine is installed and use the dedicated CraftEngine-supported ingredient/result/checker format for that feature.

The error does not always mean CraftEngine is broken. It can also mean the value was placed in a field that only accepts Bukkit materials.

ActionBar messages appear in chat

Structory 26.1 uses an updated DadaPlatform build that sends real action bars.

If actionbar text still appears in normal chat:

  1. Make sure the server is loading the new Structory jar.
  2. Remove old duplicate Structory jars from the plugins folder.
  3. Restart the server fully.
  4. Check that the build uses DadaPlatform 26.3 or newer.

Structory creates a config backup on startup

Structory compares the version in config.yml with the plugin version.

If you update from the old 1.x line, this message can appear:

New configuration found!
Create backup for current config.yml

This is expected when the existing config is older than the jar.

For Structory 26.1, the config should contain:

version: 26.1

Compare the old backup with the new generated config before copying custom settings back.

Folia watchdog log does not mention Structory

If Folia prints a watchdog stack trace, check whether Structory classes are in the stack.

If the stack is inside vanilla autosave, map saving, disk I/O, classloading or another plugin, the freeze may not be caused by Structory.

Structory-related stacks usually include package names such as:

me.mrbast.structory

If those classes are not present, investigate the part of the stack that is actually running.

Particles are too heavy

Reduce:

  • amount;
  • scheduled effects;
  • large boxsized areas;
  • effects used by many structure instances.

Use sounds or small particles for frequent actions such as item insert and take.

YAML errors

Most YAML errors are caused by indentation.

Correct:

options:
notify:
message: "Hello"

Incorrect:

options:
notify:
message: "Hello"

Use spaces, not tabs.

Best testing process

When creating a new structure:

  1. Start with only the layout and a notify message.
  2. Test detection.
  3. Add particles or simple sounds.
  4. Add crafting with one simple recipe.
  5. Add recipe slots.
  6. Add animations.
  7. Add listeners such as entity-death.
  8. Add premium features one at a time.
  9. Restart the server after major edits.