BetterStructures Commands
Use /betterstructures or /bs.
Setup and Content
| Command | Purpose |
|---|---|
/bs | Main help and status command |
/bs initialize | First-time setup flow (opens the first-time setup menu) |
/bs setup | Opens the setup/content menu |
/bs recommendedplugins | Shows companion plugins that work well with BetterStructures |
/bs downloadall | Downloads the plugin update (if any) and all available content, then reloads |
/bs downloadallcontent | Downloads all available content packages only (no plugin update) |
/bs updatecontent | Downloads updates for outdated content (alias: /bs updateallcontent) |
/bs forcereinstallcontent <package|all> | Re-downloads content through the normal authenticated pipeline even when the installed version is already current. Tab completion offers all plus every Nightbreak package slug. |
/bs downloadpluginupdate | Downloads a pending plugin update (requires a restart to apply) |
/bs reload | Reloads BetterStructures configs and content, and imports pending content |
/bs version | Shows plugin version |
About /bs reload
/bs reload no longer disables and re-enables the plugin. It now performs an in-place content reload: config.yml and ValidWorlds.yml are re-read on the server thread, then treasure, generator, module-generator, spawn-pool, schematic, module and content-package configs are rebuilt on a worker thread. Commands, listeners and the NMS adapter are left registered.
Consequences worth knowing:
- While a reload is running,
/bs place,/bs lootify,/bs pregenerateand/bs generateModulesare refused with a "content is reloading" message, and newly generated chunks are skipped rather than scanned. - If you fire
/bs reloadagain while one is in progress, your request is queued and a second full reload runs afterwards, so a file you changed mid-reload is still picked up. - If the reload fails, BetterStructures disables itself on purpose rather than continuing with half-empty content registries. Check the console for the cause and restart the server after fixing it.
About /bs forcereinstallcontent
Normal downloads skip a package whose local version already matches the remote one, which makes them useless when the files on disk have been damaged or partially deleted. forcereinstallcontent bypasses that version check and pushes the selected package back through the same authenticated download, import and reload pipeline.
allselects every package that BetterStructures currently believes is downloaded, installed or out of date. If nothing matches, the command refuses and asks you to name a slug directly - which is what you want when a package's files are completely missing.- Naming a single slug reinstalls just that package.
- An unknown slug is rejected with a message pointing you at tab completion.
The download/update, recommended-plugins, and plugin-update commands are provided by the shared MagmaCore Nightbreak system that is bundled into BetterStructures. The same setup menu surfaces a Plugin Update entry, a Recommended Plugins entry, and an Automatic Updates toggle (see Setup).
Utility and Admin Commands
| Command | Purpose |
|---|---|
/bs place <schematic> <type> | Places a structure manually. Valid types: SURFACE, UNDERGROUND_SHALLOW, UNDERGROUND_DEEP, SKY, LIQUID_SURFACE |
/bs lootify <generator> <rarity> <minAmount> <maxAmount> <weight> | Adds the held item to a treasure table. The generator must be a valid treasure config, the rarity must exist in that config, minAmount must be at least 1, maxAmount must be at most 64, and you must be holding an item. |
/bs pregenerate <centerType> <shape> <radiusInBlocks> <applyWorldBorder> | Pre-generates chunks with BetterStructures enabled. The world is derived from the player's current world. centerType: HERE, WORLD_CENTER, WORLD_SPAWN. shape: SQUARE, CIRCLE. applyWorldBorder: TRUE/FALSE. |
/bs cancelPregenerate | Cancels active pregeneration in the player's current world (alias: /bs cancelpregenerate) |
/bs generateModules <generatorFile> | Generates modular content from a module generator file |
/bs teleport <world> <x> <y> <z> | Teleports to a specific location (alias: /bs tp) |
/bs silent | Toggles certain operator warnings |
Permissions
| Permission | Description | Default |
|---|---|---|
betterstructures.setup | Access to /bs setup, /bs recommendedplugins, /bs downloadallcontent, and /bs updatecontent | OP |
betterstructures.initialize | Access to /bs initialize | OP |
betterstructures.generatemodules | Access to /bs generateModules | OP |
betterstructures.generatemodules.slowly | Registered in plugin.yml but not currently used by any command in the source code. Likely vestigial. | OP |
betterstructures.generatemodules.instantly | Registered in plugin.yml but not currently used by any command in the source code. Likely vestigial. | OP |
betterstructures.* | Wildcard for utility and admin commands (place, pregenerate, cancelPregenerate, reload, teleport, version, lootify, /bs help) plus the admin content commands /bs downloadall, /bs downloadpluginupdate and /bs forcereinstallcontent. Held by OPs by default. | OP |
| (none) | /bs silent has no permission gate in source — any sender can run it. | — |
betterstructures.setup covers the content browsing/management commands, betterstructures.initialize covers first-time setup, and betterstructures.generatemodules covers dungeon generation. The combined plugin-and-content /bs downloadall, the plugin-only /bs downloadpluginupdate, and the repair-oriented /bs forcereinstallcontent are gated behind the admin wildcard betterstructures.*. The .slowly and .instantly variants are still declared in plugin.yml but no command currently checks them.
betterstructures.* also controls the first-time setup reminder: players holding it get a one-time join message pointing at /bs initialize until setupDone is set to true in config.yml.