WorldGen Editor is a JSON-driven Minecraft world generation mod for Minecraft 1.21.1.
It adds a datapack-style world preset named WorldGen Editor: Islands. The preset keeps vanilla noise generation as the base, then uses a custom island biome source and density function to turn the Overworld into a configurable archipelago.
The project is built with Architectury Loom and targets:
- Fabric
- Forge
- NeoForge
- Configurable islands from
config/worldgen_editor/continents.json. - Simple island fields such as
x,z,radius,rotation,shape_power,roughness, andshore_width. - JSON entry types for normal islands, ocean-carved cuts, and generated archipelagos.
- Per-entry biome exclusions with
exclude_biomes, including biome ids and tags. - Climate-aware ocean and land fallback biome selection.
- Backward-compatible support for older field names such as
center_x,center_z,x_divisor, andz_divisor. - Built-in world preset:
WorldGen Editor: Islands. - Runtime commands for reload and per-world enable state.
- Separate preview tool for developers: WorldGen Editor Preview.
- Java 21
- Minecraft
1.21.1 - Gradle wrapper included in this repository
Loader dependency notes:
- Fabric requires Fabric Loader, Fabric API, and Architectury API.
- NeoForge requires NeoForge and Architectury API.
- Forge uses the native Forge API path for
1.21.1.
From the project root:
.\gradlew.bat build --no-daemonOn Linux or macOS:
./gradlew build --no-daemonThe production jars are created here:
fabric/build/libs/worldgen-editor-fabric-0.2 beta.jar
forge/build/libs/worldgen-editor-forge-0.2 beta.jar
neoforge/build/libs/worldgen-editor-neoforge-0.2 beta.jar
For convenience, the root build task also copies the three loader-ready jars into:
release/
You can run the copy task directly:
.\gradlew.bat releaseJars --no-daemonThe version is controlled by mod_version in gradle.properties.
common/ Shared config, island mask, commands, codecs, and datapack-style worldgen resources
fabric/ Fabric entrypoint and metadata
forge/ Forge entrypoint and metadata
neoforge/ NeoForge entrypoint and metadata
Important shared resources:
common/src/main/resources/data/worldgen_editor/worldgen/world_preset/islands.json
common/src/main/resources/data/worldgen_editor/worldgen/noise_settings/island_overworld.json
common/src/main/resources/assets/worldgen_editor/default_continents.json
Install the jar for your loader, then create a new world and select:
WorldGen Editor: Islands
The mod reads:
config/worldgen_editor/continents.json
If the file does not exist, the mod creates a default config.
Changing the config does not rebuild old chunks. Use this command after editing the file:
/worldgen_editor reload
Reload affects newly generated chunks only.
/worldgen_editor enable
/worldgen_editor disable
/worldgen_editor status
/worldgen_editor reload
Generation is enabled only when both the global config and the per-world state are enabled:
continents.json enabled && <world>/worldgen_editor/worldgen_editor.json enabled
See JSON_GUIDE.md for the full continents.json format, examples, compatibility fields, and troubleshooting notes.
Minimal example:
{
"enabled": true,
"entries": [
{
"x": 0,
"z": 0,
"radius": 850
}
]
}The companion preview tool is located outside this repository folder: WorldGen Editor Preview
Open index.html in a browser to preview island masks without generating Minecraft worlds.
WorldGen Editor is licensed under the Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License.
See LICENSE.txt.