
BetterStructures
Add structures for any world generation!
BetterStructures 2.4.0:
- [New] Barrel loot generation — barrels in schematics and modules now get treasure rolled into them on placement, gated by new
generateLootInBarrelstoggles on both the generator config (top-level kill-switch) and per-module config (defaults true on both). - [New] Inherent barrel detection — barrels baked into schematics and modules are now picked up automatically with no special markup required; routed through the same fill pipeline as chests.
- [New]
barrelTreasureFilenameoverride — per-schematic and per-module field for pointing a placement at a specific treasure config; falls back to the generator-level default on typo or missing rather than skipping the schematic. - [New]
treasure_barrel_food.ymlpremade — ships a tiered food loot map (mean=1, stddev=0.7) as the default barrel treasure, matching thetreasure_*.ymlconvention. - [New] Tiered barrel food loot map — drop-in food tier definitions backing the new premade.
- [Fix]
treasure_barrel_foodlookup now resolves correctly — the premade key was missing.yml, breaking every generator and module default;TreasureConfig.getConfigFields()now also auto-appends.ymlso existing user YAMLs keep working without manual edits. - [Fix] Schematic chest override now resolves via
getTreasureFile()instead ofgetFilename()— a typo intreasureFileorbarrelTreasureFilenameno longer excludes the schematic from generation. - [Fix]
ChestFillEvent.getTreasureFilename()now reports the per-schematic treasure file when one is set, instead of always reporting null. - [Fix] Removed a spurious "Failed to get barrel treasure config file" warning logged per module on partial deploys.
- [Tweak] Setup menu rebuilt on MagmaCore's
SetupMenuBuildershared UI — same Structure Packs / Module Packs filters, cleaner filter wiring. - [Tweak] MagmaCore shared assets now exported on enable via
MagmaCore.exportSharedAssets(this). - [Tweak] Various MagmaCore library improvements (NMS v26 / Paper 26.1 support, type-based
EntityDimensionsreflection with cached lookup,WorldFolderResolverand Paper-migration debris quarantine,TemporaryBlockManager,SetupMenuBuilder+InfoButtonFactory+NightbreakSetupIconsshared UI,ContainerAllowlist/WorldProtectionRulesinstance protection,MagmaCore.exportSharedAssets/enableWorldProtections/isShutdownRequested,AdvancedCommandoptional-argument support,LocationAPIwith WorldGuard + GriefPrevention providers, Nightbreak token-change subscribers,ClientboundEntityPositionSyncPacketadoption on 1.21.2+ with BedrockClientboundBundlePacketskip, ArmorStand HeadPose force-send every tick for Bedrock attachable rebind,DAMAGE_INDICATORoutbound particle-count clamp, per-plugin Netty handler name inPacketInteractionListener, lazy Lua field support,ZipFileSTORED-with-EXT-descriptor fix, dedup / rate-limited Nightbreak auth-failure logs, three-tier BedrockChecker detection — name pattern^\..*\d{4}$+ UUID-MSB == 0 + case-insensitive plugin lookup — so Bedrock viewers are detected even when Floodgate hasn't registered them yet).
- [New] Barrel loot generation — barrels in schematics and modules now get treasure rolled into them on placement, gated by new
BetterStructures 2.3.1:
[New] Now fully updated up to MC 26.1.2 [Fix] Updated plugin.yml api-version from 1.14 to 1.21.4 (the old value was incorrectly triggering legacy 1.12-era Material rewriting) [Tweak] Various MagmaCore library improvements (MC 26 Spigot compatibility, Bedrock position sync, classloader isolation for shaded copies, etc.)
BetterStructures 2.3.0:
- [New] Spawn protection radius — structures no longer generate within a configurable radius of world spawn (default: 100 blocks), applies to all worlds
- [New] spawnProtectionRadius config option to control or disable (set to 0) the spawn exclusion zone
- [Fix] Fixed content package folder names for "103 Default Structures" and "101 Premium Shrines" not matching Nightbreak download slugs
- [Tweak] Updated MagmaCore dependency to 2.0.0-SNAPSHOT
- [Tweak] Removed standalone EasyMinecraftGoals dependency (now bundled in MagmaCore)
- [Tweak] Content package system refactored to use MagmaCore's AbstractNightbreakContentPackage — download, access checks, and UI item generation now handled by the core library
- [Tweak] Install/uninstall operations are now async-safe with proper CompletableFuture handling
- [Tweak] Reload command now uses MagmaCore's NightbreakPluginBootstrap for pending reload sender tracking
- [Tweak] Added EMG package relocation to shadow jar to avoid classloader conflicts
- [Tweak] Updated Shadow plugin to 9.0.0-beta12
- [Tweak] Removed unused commons-lang3 and reflections dependencies
BetterStructures 2.2.0:
- [New] Nightbreak content management integration - content packages can now be downloaded and updated directly through Nightbreak accounts
- [New] /bs downloadall command to bulk download all available content packages
- [New] /bs updatecontent command to update outdated content packages
- [New] Revamped first-time setup menu with three options: Recommended Setup (Nightbreak-guided), Manual Setup, and Use Current Content
- [New] Setup menu now shows real-time access info and out-of-date status for content packages
- [New] Plugin initialization now uses MagmaCore's async/sync initialization system with progress reporting
- [Fix] Fixed content package and treasure config duplication on reload
- [Tweak] Updated MagmaCore dependency to 1.28-SNAPSHOT
- [Tweak] Adjusted default spawn distances - surface: 31→27, sky: 95→90, liquid: 65→60
- [Tweak] Reload command refactored to use dedicated content reload method instead of full plugin restart
- [Tweak] Updated help text and setup menus to reference Nightbreak workflow
- Updated to Minecraft 21.11
Exploration pack update: https://nightbreak.io/plugin/betterstructures/#exploration-pack
BetterStructures 2.1.0:
- [New] Added /bs pregenerate
command to pregenerate the world without the need of using chunky or other plugins. It also has a performance monitor to prevent servers from crashing or taking up too many resources while generating. - [Tweak] Moved some of the logic to MagmaCore
- [New] Added /bs pregenerate
BetterStructures 2.0.4:
- [New] Modular builds can now be provided a y level to start at
- [Tweak] Optimized vertical location of builds to better fit world generation
BetterStructures 2.0.3:
- [Fix] Fixed issue where modular content was not correctly listed as correctly installed when installed
BetterStructures 2.0.2:
- [New] Updated for Minecraft 1.21.9 and 1.21.10
- [New] Modular dungeons can now use whitelisted worlds and per-type worlds (avoids them appearing in the nether/end when they are not designed to)
- [Fix] Fixed problem where the default modular dungeons could not cope with not having all content installed (fixes admins only using the free pack)
- [Tweak] Better error messages for modular content
BetterStructures 2.0.1:
- [New] Updated for Minecraft 1.21.9
- [New] Non-modular dungeons can now correctly paste props from FreeMinecraftModels
- [Fix] Critical fix to defaults for spawning dungeons
First release of modular builds! Generate modular dungeons right in your server!
Free pack: https://nightbreak.io/plugin/betterstructures/#dungeoneering-modules-free
Premium pack: https://nightbreak.io/plugin/betterstructures/#dungeoneering-modules-premium
These packs are made to stack, so you will have more modules if you run both!
After installing, just walk around in your world to generate dungeons as with every other structure type!
Initial release on Modrinth

