How to Use Commands
Plugin Version: 2.0.3+
Minecraft Versions: 1.19.4 - 1.21.10
- Go to the commands page for help: [Commands Page](../Better Structures/commands.md)
Checking Where Structures Appear
BetterStructures can notify administrators when structures spawn:
Enabling/Disabling:
- Toggle with
/betterstructures silentcommand - Or set
warnAdminsAboutNewBuildings: true/falsein config.yml
What you see:
- If you are a server admin and haven't turned off warnings, you'll be notified in chat when a structure appears.
- Click the chat message to teleport to the structure (not for Bedrock edition).
- Turn warnings on/off with
/betterstructures silent.
When to disable:
- During world pre-generation with Chunky (reduces console spam)
- On busy servers where notifications are excessive
- If you prefer to discover structures naturally
Notifications only appear to players with operator permissions.
Why Structures May Not Appear
- Usually, structures don't appear in areas already explored. Visit new areas for structures.
More Details
Structures won't appear in already explored areas to avoid filling them too much and damaging player buildings. BetterStructures knows if an area was explored before it was installed and won’t place structures there. If your world was fully explored before installing BetterStructures, you need to regenerate it or create a new world.
EliteMobs and BetterStructures
What EliteMobs Offers
- Learn about EliteMobs: EliteMobs Wiki
- It adds bosses to structures.
Getting Pre-Made EliteMobs Content
- Available at magmaguy.itch.io and patreon.com/magmaguy
Using EliteMobs Without Other Features
- You can turn off other EliteMobs features. To disable, change settings in:
- events.yml:
timedEventsEnabled: falseandactionEventsEnabled: falsedisables all events - MobCombatSettings.yml:
doNaturalMobSpawning: falsedisables natural elite spawns
- events.yml:
Adding an EliteMobs boss to your structure
- Add
[elitemobs]to the first line of your sign - Add the filename of the boss on the second / third / fourth lines of the sign like
test_boss.yml - More info [here](../Better Structures/creating_structures.md)
WorldEdit Compatibility
BetterStructures requires WorldEdit to function.
IMPORTANT: AsyncWorldEdit is NOT compatible with BetterStructures and will break structure generation.
- Use standard WorldEdit only
- AsyncWorldEdit will cause errors and prevent structures from placing correctly
- If you experience structure generation problems, verify you are using WorldEdit, not AsyncWorldEdit
BetterStructures with other plugins
MMOItems
- Add MMOItems with
mmoitems=<TYPE>@<ITEM-ID>in the treasure configuration file.
WorldGuard
BetterStructures automatically protects structures using WorldGuard regions when WorldGuard is installed.
- Prevents players from breaking or modifying structure blocks
- Uses custom flag:
betterstructures-protect - When EliteMobs bosses are defeated, protection is automatically removed
- WorldGuard is a soft dependency (optional but recommended)
Disabling Protection:
Set protectEliteMobsRegions: false in config.yml to disable automatic protection. Useful if you:
- Do not use WorldGuard
- Want players to modify structures during combat
- Use a different protection plugin
Custom Items from Other Plugins
Use the lootify command to add any items to chests.
Command syntax:
/betterstructures lootify <generator> <rarity> <minAmount> <maxAmount> <weight>
Hold the item you want to add in your hand, then run the command:
generator: The treasure configuration namerarity: The rarity tier (common, rare, epic, etc.)minAmount/maxAmount: Stack size range (1-64)weight: Probability weight (higher = more common)
Example: /bs lootify basic_treasure rare 1 3 0.5
For more details, see the [Commands Page](../Better Structures/commands.md).
Structure Types and Placement
BetterStructures supports six different structure types, each designed for specific environments:
- Surface: Ground-level structures that adapt to terrain height
- Shallow Underground: Near-surface underground structures
- Deep Underground: Deep cave structures for underground exploration
- Sky: Floating structures in the air (typically Y: 80-120)
- Liquid Surface: Structures that spawn on water or lava surfaces
- Dungeon: Special dungeon-type structures
Each type uses specialized terrain-fitting algorithms to ensure natural integration with your world.
You can manually place structures using:
/betterstructures place <schematic> <type>
Valid types: SURFACE, SKY, LIQUID_SURFACE, UNDERGROUND_DEEP, UNDERGROUND_SHALLOW
Creating Your Own Structures
- Learn how: [Structure Creation Guide](../Better Structures/creating_structures.md)
Performance Impact and Minimization
Generating many structures can slow down your server. Here are ways to minimize performance impact:
Pre-Generation
- Use Chunky to pre-generate your world and avoid performance issues
- Pre-generate worlds offline before adding players when possible
Performance Configuration
You can adjust the performance impact in the BetterStructures configuration file:
- Setting:
percentageOfTickUsedForPasting(default: 0.2 = 20%) - Lower values reduce lag but slow structure generation
- Higher values speed up generation but may impact TPS during pasting
Post-Generation
- If not using EliteMobs, you can remove BetterStructures after world generation
- With EliteMobs, keep BetterStructures for protected areas management, with minimal impact
How are structure locations determined?
BetterStructures uses a deterministic diamond grid to place structures:
Grid calculation:
- Combines world seed + structure type
- Divides world into grid cells based on distance settings
- Adds random offset within each cell
- Same seed = same structure locations every time
What this means:
- Structure locations are reproducible (same seed = same placements)
- Restarting server does not change structure locations
- Different worlds have different patterns
- Appears random to players but is actually deterministic
Why it is designed this way:
- Prevents exploiting structure locations
- Ensures consistent world generation
- Allows server admins to reproduce worlds
- Maintains even structure distribution
For server admins: If you want structures in different locations, you must generate a new world with a different seed. Changing config values will not move already-determined structure locations.
What is the "setupDone" flag?
In config.yml, you will find:
setupDone: false
Purpose:
Tracks whether you have completed first-time setup using /bs initialize
Values:
false: First-time setup not completed (default)true: Setup wizard has been run
Effects:
- Controls first-time setup warnings and prompts
- May affect available menu options
Resetting: To re-run the setup wizard:
- Change
setupDone: truetosetupDone: false - Save config.yml
- Run
/bs reload - Run
/bs initialize