Skip to main content

BetterStructures Commands

Use /betterstructures or /bs.

Setup and Content​

CommandPurpose
/bsMain help command
/bs initializeFirst-time setup flow (opens the first-time setup menu)
/bs setupOpens the setup/content menu
/bs recommendedpluginsShows companion plugins that work well with BetterStructures
/bs downloadallDownloads the plugin update (if any) and all available content, then reloads
/bs downloadallcontentDownloads all available content packages only (no plugin update)
/bs updatecontentDownloads 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 downloadpluginupdateDownloads a pending plugin update. A restart applies it, unless /bs applypluginupdate or the nightbreak.applyPluginUpdatesWithoutRestart setting applies it sooner.
/bs applypluginupdateApplies a downloaded plugin update without restarting the server
/bs reloadReloads BetterStructures configs and content, and imports pending content
/bs versionShows 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 pregenerate and /bs generateModules are 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 reload again 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.

  • all selects 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​

CommandPurpose
/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 cancelPregenerateCancels 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 silentToggles certain operator warnings

Use these utility commands with the following constraints:

  • /bs place reports an attempted placement, not confirmation that a structure was placed.
  • Run /bs lootify in-game with the item in your main hand. Its command arguments require integer amounts and weight. Choose 1 <= minAmount <= maxAmount <= 64 and a positive weight; the handler does not reject every invalid range. Saving an entry starts a content reload.
  • /bs pregenerate accepts a radius of zero or more blocks and rounds up to whole chunks. With applyWorldBorder set to TRUE, completion sets a square world border of diameter 2 × radiusInBlocks, even for CIRCLE generation. 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 teleport requires a loaded world and integer coordinates; relative coordinates are not supported.

Permissions​

PermissionDescriptionDefault
betterstructures.setupAccess to /bs setup, /bs recommendedplugins, /bs downloadallcontent, and /bs updatecontentOP
betterstructures.initializeAccess to /bs initializeOP
betterstructures.generatemodulesAccess to /bs generateModulesOP
betterstructures.generatemodules.slowlyRegistered in plugin.yml but not currently used by any command in the source code. Likely vestigial.OP
betterstructures.generatemodules.instantlyRegistered 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.warnReceives 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.