Skip to main content

BetterStructures Content Packages

BetterStructures now treats official content as managed packages instead of a pure manual-import workflow.

Main Commands​

CommandPurpose
/bs initializeFirst-time setup flow
/bs setupBrowse and manage package state
/bs downloadallDownloads the plugin update (if any) and all available content, then reloads
/bs downloadallcontentDownloads all available content only (no plugin update)
/bs updatecontentUpdates outdated content (alias: /bs updateallcontent)
/bs forcereinstallcontent <package|all>Re-downloads content even when the installed version is already current - the repair command for damaged or partially deleted packs
/bs recommendedpluginsLists companion plugins that pair well with BetterStructures
/nightbreaklogin <token>Shared Nightbreak token registration

The download and update commands use the shared MagmaCore Nightbreak system bundled into BetterStructures for token checks, access checks and downloads. BetterStructures then imports the content through its own reload process.

Package Types​

Each package declares a contentPackageType, and the setup menu offers one filter per type:

contentPackageTypeSetup menu filterFiles land in
STRUCTURE (default)Structure Packsplugins/BetterStructures/schematics/<folderNameV2>
MODULARModule Packsplugins/BetterStructures/modules/<folderNameV2>

Use /bs setup to filter and inspect packages instead of relying on old static lists.

Package Config Fields​

Each package is described by a config in plugins/BetterStructures/content_packages. You rarely need to edit these by hand - they ship with the plugin and are how it tracks package state - but the fields are:

KeyDefaultDescription
isEnabledtruePackage installation flag changed by the setup menu. When false, nothing inside the package's folder loads; see below.
name—Display name shown in the setup menu
description—Lore lines shown in the setup menu
downloadLink—Manual download link shown when a package has no nightbreakSlug; managed downloads use the slug
version0Local content version, compared against the remote version to decide whether the package is out of date
folderNameV2—Subfolder the package's files live in, under schematics or modules depending on the type
contentPackageTypeSTRUCTURESTRUCTURE or MODULAR
nightbreakSlug—Nightbreak identifier used for access checks, downloads, and as the selector for /bs forcereinstallcontent

Installing or uninstalling a package from the setup menu changes only the package's isEnabled and then triggers a reload. It does not edit the schematic or module configs inside the package. Uninstalling leaves the files on disk.

While a package has isEnabled: false, the schematic and module loaders skip its whole folder, schematics/<folderNameV2> or modules/<folderNameV2>, including subfolders. This applies to both STRUCTURE and MODULAR packages. Inside an enabled package, each schematic and module config still has its own isEnabled.

Package Contents​

A BetterStructures package is a zip whose pack.meta declares betterstructures. A zip without pack.meta placed in plugins/BetterStructures/imports is treated the same way. Its top-level folders are unpacked by name:

Folder in the packageDestination
content_packages, schematics, modules, module_generators, generators, treasures, spawn_pools, componentsThe folder of the same name in plugins/BetterStructures
custombosses, customitems, customtreasurechests, powers, enchantmentsThe folder of the same name in plugins/EliteMobs
models or modelengineFreeMinecraftModels' models folder, or ModelEngine's blueprints when only ModelEngine is installed
scriptsplugins/FreeMinecraftModels/scripts
freeminecraftmodels, elitemobs, betterstructuresThe root of that plugin's data folder, keeping the layout inside, for example freeminecraftmodels/enchantments
worldcontainerThe server's world container

A top-level folder not in this table makes the importer reject the whole package. See Manual imports vs in-game management for the shared import rules.

When a package adds EliteMobs content, BetterStructures reloads EliteMobs after the import. When another plugin's package imports files into the BetterStructures folder, BetterStructures runs a content reload once its own startup has finished.

Package States​

Depending on the package and your token state, BetterStructures can distinguish between:

  • installed content
  • downloaded but not enabled content
  • outdated content
  • content that needs Nightbreak access

The menu treats an existing package path as downloaded and combines that with the package's isEnabled flag to decide whether it is installed. This is a state indicator, not a file-integrity check: an empty or damaged folder can still appear installed. Use /bs forcereinstallcontent <package|all> to repair files. all selects packages currently detected as downloaded, installed or outdated; name the slug directly if the entire package folder is missing.

Manual Import Fallback​

Manual imports still use:

plugins/BetterStructures/imports

Keep package zips intact, then reload BetterStructures if needed. Manual import is still supported, but it is no longer the main documented workflow.