Links
Tags
Creators
Details
Licensed GPL-3.0-or-later
Published 9 months ago
Updated 3 days ago
All versions
2.1.2
Release
BetterStructures-FAWE 2.1.29 months ago 41
Compatibility
Minecraft: Java Edition
1.21.x
1.20.x
Platforms
Paper
Purpur
Required content
Any compatible version
Changes
Based on upstream BetterStructures 2.1.2. All changes below are relative to the original release.
Fixed
PersistentDataContainer for chunk tracking: Replaced isNewChunk flag with PersistentDataContainer to reliably track processed chunks, preventing duplicate structure placement on server restart.
Cross-chunk structure placement: Fixed 5x5 transparent chunk holes by verifying chunk generation before world block access in createPasteBlocks() and assignPedestalMaterial(), ensuring all surrounding chunks are loaded before pasting.
Changed
Async block pasting via FAWE: Migrated block pasting from the WorkloadRunnable frame-splitting system to FAWE asynchronous EditSession, completely eliminating main thread blocking.
Hard dependency changed from WorldEdit to FastAsyncWorldEdit in plugin.yml.
FAWE is detected on startup; plugin disables itself if FAWE is not present.
Removed WorkloadRunnable system; all blocks (including NBT) are now pasted through a single FAWE async EditSession.
Bedrock checking uses editSession.getBlock() asynchronously.
Entity spawning and chest filling are deferred to the main thread after async paste completion.
Removed deprecated createSingleBlockClipboard method from WorldEditUtils.
Parallelized schematic loading: Schematic and module file loading now uses parallelStream(), significantly reducing plugin startup time. Timing logs added for diagnostics.
Added
Chinese localization: Full Chinese language support throughout the codebase.
README: Added project README.
Notes
The config option percentageOfTickUsedForPasting is now obsolete due to the fully async architecture.
Known incompatibilities
Any 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:1JHdsCoL:2siUyKxx"
}
// Legacy Loom dependency
dependencies {
modImplementation "maven.modrinth:1JHdsCoL:2siUyKxx"
}

