Tags
Creators
Details
Licensed ARR
Published 4 days ago
Updated last week
All versions
0.1.0-beta2
Beta
TifWorldGen 0.1.0-beta2last week 21
Compatibility
Minecraft: Java Edition
1.20.1
Platform
Forge
Supported environments
Server-side
Singleplayer
Changes
Changelog
0.1.0-beta2 β stability & worldgen fixes
π Fixed
- Worlds now save correctly on disconnect β map readers were closed before the
world finished saving, which could abort the save entirely, or silently complete
in-flight chunks as empty "ghost chunks" when leaving during terrain generation.
Readers are now released only after the world is fully saved (
ServerStoppedEvent). - No more ghost chunks β chunk generation refuses to run without a working heightmap reader: the chunk is left ungenerated and retried later, instead of being saved as empty terrain.
- Generation errors can no longer destroy chunks β every generation step (terrain, biomes, surface, caves, structures, decorations, mob spawning) is guarded: on an unexpected error the chunk keeps safe fallback terrain and the error is logged with the chunk position and a full stack trace (log messages in English).
- Color Mapping screen at high GUI scale β the tab no longer overflows the screen at GUI scale Auto / 4 (small windows). Widgets stay vanilla-sized, long buttons adapt their width, overlong map names are shortened with "β¦" and show the full name in a tooltip, and the whole tab scrolls when the window is short.
β¨ Added
- River and ocean biomes from the water mask β narrow water areas get a river biome, large lakes get an ocean biome (kelp-friendly). River depth adapts to the width of the water area.
- Unified map list (
maps[]) β every map is an equal entry in one list; no more "custom vs fixed" split. Old configurations migrate automatically on first start.
π§ Changed
- Map layer generators always read through the current map reader instance (no stale references after a config reload).
- Slovak in-game log messages with a unified
[TIFWORLDGEN]prefix. - Documentation and in-jar descriptions updated.
0.1.0-beta1 β first public beta
β¨ Highlights
- Built-in pure-Java GeoTIFF engine β the mod no longer depends on GDAL or any native library. Reads classic TIFF and BigTIFF (tested with a 14 GB heightmap, designed for 100 GB+ files), stripped and tiled layouts, LZW and Deflate compression. Verified pixel-perfect against GDAL before the switch (336,959 sampled pixels, 0 differences).
- Zero-install experience β no DLLs, no system packages, no
.sofiles. Works on Windows, Linux and macOS out of the box: just drop the jar intomods/. - Dedicated server support β create worlds with
level-type=tifworldgen:void_presetand manage everything in-game (verified on a production Forge server):/tifworldgen infoβ loaded heightmap size and path/tifworldgen mapsβ configured maps overview with missing-file check/tifworldgen configβ effective configuration overview/tifworldgen reloadβ reload config and map readers without restart/tifworldgen set <key> <value>β change any setting in-game (saved + applied instantly)/tifworldgen map add/removeβ register map files without editing JSON- works over RCON for headless servers
- Portable configuration β map paths now support relative paths (resolved against the
game directory on both client and server). Configure everything comfortably in
singleplayer, then copy
config/tifworldgen.jsonand thetifworldgen/maps/folder to the server β no edits needed. - Single-file distribution β the all-in-one jar bundles the library inside (Forge JarJar), so players download exactly one file.
π§ Changed
- Rewritten map layer readers (
HeightMapReader,WaterLayer,ForestLayer,StructureLayer) on top of the new engine β also removes the thread-local dataset handling and its file-handle leaks. - GDAL completely removed from the repository, build and in-jar descriptions.
π Privacy
- Fully offline: no telemetry, no analytics, no network communication of any kind. The mod only reads the map files the player/admin selects.
π¦ Upgrading from alpha builds
- Delete the old
tifworldgen/native/folder from your game directory β it is no longer used. - If you configured maps by absolute paths, they keep working; relative paths (relative to the game directory) are now recommended.
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:XPlPTN0u:1v6gNtzE"
}
// Legacy Loom dependency
dependencies {
modImplementation "maven.modrinth:XPlPTN0u:1v6gNtzE"
}

