Tags
Creators
Details
Licensed LGPL-3.0-only
Published last year
Updated last week
All versions
2.4.0
Release
BetterStructures 2.4.05 months ago 7,046
Compatibility
Minecraft: Java Edition
26.1.x
1.21.4–1.21.11
Platforms
Paper
Purpur
Spigot
Changes
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).
Optional dependencies
Any compatible version
Any compatible version
Any compatible version
Projects on Modrinth are automatically available through a Maven repository for use with JVM build tools such as Gradle. To learn more about the Modrinth Maven API, click here.
Note: When available, you should use the creator's maven repo instead as it will have transitive dependency information that the Modrinth Maven API does not. You may also end up with duplicate dependencies if you use a mix of Modrinth and non-Modrinth Maven repositories for your dependencies, because the group identifier will be different when served through the Modrinth Maven API.
Maven coordinates:
Version ID:
build.gradle:
repositories {
exclusiveContent {
forRepository {
maven {
name = "Modrinth"
url = "https://api.modrinth.com/maven"
}
}
// forRepositories(fg.repository) // Uncomment when using ForgeGradle
filter {
includeGroup "maven.modrinth"
}
}
}
// Standard Gradle dependency
dependencies {
implementation "maven.modrinth:KYXglN2M:DM6my0lP"
}
// Legacy Loom dependency
dependencies {
modImplementation "maven.modrinth:KYXglN2M:DM6my0lP"
}

