BetterStructures Commands
Use /betterstructures or /bs.
Setup and Content
| Command | Purpose |
|---|---|
/bs | Main help 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. A restart applies it, unless /bs applypluginupdate or the nightbreak.applyPluginUpdatesWithoutRestart setting applies it sooner. |
/bs applypluginupdate | Applies a downloaded plugin update without restarting the server |
/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:
- Reloading cancels active pregeneration and modular generation, and stops structure and dungeon pastes that are still queued or in progress where they are. The setup and first-time setup menus are also unavailable during the reload.
- While a reload is running,
/bs place,/bs lootify,/bs pregenerateand/bs generateModulesare refused with a "content is reloading" message, and new-chunk scans are retained until the reload succeeds. Pending dungeon scans are also preserved. If a queued chunk unloads, its scan waits until it loads again. - 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.
About /bs applypluginupdate
/bs applypluginupdate swaps in a BetterStructures update that is already downloaded and waiting in the server's update folder, without a restart. It disables BetterStructures and every MagmaGuy plugin that depends on it, replaces the jar, then loads and enables them again. Plugins that reload with it are listed in chat. If the new jar does not enable, the previous jar is loaded again and the update stays staged for the next restart.
The command refuses when no update is staged, when the staged jar is invalid or not newer than the running version, or when a plugin from another author depends on BetterStructures. Restart the server in that case. Bosses, arenas and dungeon instances in progress end when the plugin reloads.
To apply downloaded updates automatically, set nightbreak.applyPluginUpdatesWithoutRestart in config.yml (see Configuration).
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> | Attempts to fit a structure starting from the player's current chunk; the search can choose a nearby position. 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 |
Use these utility commands with the following constraints:
/bs placereports an attempted placement, not confirmation that a structure was placed.- Run
/bs lootifyin-game with the item in your main hand. Its command arguments require integer amounts and weight. Choose1 <= minAmount <= maxAmount <= 64and a positive weight; the handler does not reject every invalid range. Saving an entry starts a content reload. /bs pregenerateaccepts a radius of zero or more blocks and rounds up to whole chunks. WithapplyWorldBorderset toTRUE, completion sets a square world border of diameter2 × radiusInBlocks, even forCIRCLEgeneration. Cancellation does not set the border or undo generated chunks. If a chunk fails to load, pregeneration stops, logs the failed chunk and leaves the world border unchanged./bs teleportrequires a loaded world and integer coordinates; relative coordinates are not supported.
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, /bs applypluginupdate and /bs forcereinstallcontent. Held by OPs by default. | OP |
betterstructures.* | Also required for /bs silent, which changes the server-wide warning setting. | OP |
betterstructures.warn | Receives the clickable "new building generated" and "new dungeon started generating" messages while warnAdminsAboutNewBuildings is true. Not declared in plugin.yml, so Bukkit gives it to OPs by default. | OP |
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 /bs applypluginupdate, 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.
Granting any one of betterstructures.*, betterstructures.setup, betterstructures.initialize, or betterstructures.generatemodules allows root-command access. Each subcommand still checks its own permission, so a setup-only administrator does not need the wildcard.
betterstructures.* also controls the first-time setup reminder: players holding it get a message ten seconds after each join while setupDone is false in config.yml, pointing at /bs initialize.