Tags
Creators
Details
0.5.14
Compatibility
Changes
๐ SchemFlow v0.5.14
Critical fix: per-round world provisioning no longer freezes the server. Also adds headless map capture.
๐ ๏ธ Fixed โ round provisioning froze the main thread
The on-demand provisionRoundWorld from v0.5.13 had two main-thread stalls (normal /schemflow paste was not affected):
- the schematic was pasted synchronously on the main thread (
ignoreAir=false), defeating FastAsyncWorldEdit's async edits; - the void world was created with a generator that triggered a blocking spawn-point search plus a multi-second "Preparing spawn area" pass.
On a large map this dropped TPS and could trip Paper's watchdog ("server stopped responding").
Now:
- the paste runs off the main thread under FastAsyncWorldEdit (plain WorldEdit falls back to the main thread). The returned future still completes on the main thread, so callers can safely teleport players in
whenComplete. Round pastes useignoreAir=true, since a fresh world is all void; - the void world generator has a fixed spawn location and skips all vanilla generation phases, so world creation no longer blocks.
โ Verified
Paper 1.21.11 + FastAsyncWorldEdit 2.15.2 + MinIO, 95k-block map, real S3 round-trip:
| v0.5.13 | v0.5.14 | |
|---|---|---|
| Max main-thread stall | ~2906 ms | ~109 ms |
| "Preparing spawn area" | 2845 ms | 1 ms |
| Watchdog thread dump | yes | none |
| Paste-at-origin correctness | n/a | 8/8 checks pass |
โจ Added โ headless map capture
/schemflow savemap <world> <x1 y1 z1> <x2 y2 z2> <group> <name>andWorldProvisioner.saveRegionAsMap(pos1, pos2, group, name)โCompletableFuture<Void>: save a region of any world to S3 with the absolute origin preserved. The world folder is loaded for the capture and unloaded afterwards. Built for batch-converting pre-built map worlds without an in-game selection.
โ ๏ธ Anyone on v0.5.13 should update: that release contains the provisioning freeze fixed here.
Compatibility: Minecraft 1.21โ1.21.11 and 26.1โ26.2 ยท Paper/Purpur ยท Java 21+ ยท WorldEdit 7.2.18+ / FastAsyncWorldEdit
Optional dependencies
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:RWuhoVqf:ZPTfigys"
}
// Legacy Loom dependency
dependencies {
modImplementation "maven.modrinth:RWuhoVqf:ZPTfigys"
}

