Troubleshooting
This page lists common problems and how to solve them.
The plugin does not load
Check:
- The
.jarfile is insideplugins/. - The server version is compatible with your Structory version.
- The Java version is compatible with your server.
- The console does not show dependency errors.
- Optional dependencies used by your recipes are installed and enabled.
Restart the server after changing plugin files.
The structure is not detected
| Cause | Fix |
|---|---|
| Wrong block clicked | Click the configured check-block. |
| Player is not sneaking | Use Shift + Right Click if your setup requires it. |
| Layout does not match | Compare each row of the layout with the build. |
| Wrong level | Check level: 0, level: 1, and level: -1. |
| Wrong orientation | Set orientation: false while testing. |
| Wrong YAML format | Make sure levels are under layout.levels. |
| Wrong world | Check the validworlds option if used. |
The recipe does not craft
Check:
- The structure has the
craftingoption. - The structure has enough
recipe-slots. - The recipe is available through structure
recipeand recipediscovers. - The recipe listener matches the structure listener.
- All ingredients are present.
- External item plugins are installed if used.
- 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:
- The item was saved with
/structory item save <name>. - The file exists in
plugins/Structory/customitem/. - The recipe uses the same key.
Example:
type: saveditem
key: strangeapple
Custom item plugin ingredient does not work
Check:
- The dependency plugin is installed.
- The dependency plugin is enabled before Structory hooks into it.
- The item key is correct.
- 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:
- Make sure the server is loading the new Structory jar.
- Remove old duplicate Structory jars from the
pluginsfolder. - Restart the server fully.
- 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
boxsizedareas; - 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:
- Start with only the layout and a
notifymessage. - Test detection.
- Add particles or simple sounds.
- Add crafting with one simple recipe.
- Add recipe slots.
- Add animations.
- Add listeners such as
entity-death. - Add premium features one at a time.
- Restart the server after major edits.