
RealisticWorld
This project adds a realistic custom world generation
Список изменений
RealisticWorld
A Paper plugin for Minecraft 26.3 that replaces the Overworld generator with a climate-based generator featuring more realistic terrain.
Features
- Continents, coastlines, continental shelves and deep oceans generated using Continentalness Noise with Domain Warping.
- Tall, steep mountain ranges (Ridged Noise, narrow transition zones), with snow lines depending on temperature.
- Rivers with valleys and riverbanks made of gravel, sand or coarse dirt.
- Climate model (temperature, humidity and altitude-based cooling) determines Vanilla biomes, ensuring that trees, ores, caves and mobs continue to work.
- Vanilla structures are generated; the plugin provides its own terrain height through
getBaseHeight. - Every biome has its own terrain shapes, surfaces and features (see below).
- Lush Caves and Dripstone Caves generated using 3D noise, with custom cave features.
- Configurable world height (default: Y -64 to 511).
- The plugin automatically registers itself as the generator for the default world's Overworld, Nether and End (by modifying
bukkit.yml). - Custom caves (cheese caves, spaghetti tunnels, sinkholes) instead of Vanilla carvers. Vanilla aquifers are incompatible with the custom terrain and caused air bubbles in oceans as well as random water and lava.
- Biome terrain shapes are blended together using a Gaussian kernel (approximately 60 blocks), preventing abrupt terrain transitions at biome borders.
- Vanilla lava lakes above Y -40 are removed (can be disabled); lava underneath magma blocks is preserved.
- Lava underneath magma blocks (1–2 blocks deep, configurable): on magma surfaces and near lava oceans in the Nether, and as magma vents in deep Overworld caves.
- Nether: Lava oceans, canyons, stalactites, continuous pillars, floating islands, jagged basalt deltas, depressed Soul Sand Valleys and Nylium forests; custom features (basalt spikes, Blackstone ruins, bone ribs).
- End: Round central island with an underside, a gap with smaller islands, large outer islands with terraces, hanging spikes and floating fragments.
Biome-Specific Features
Oceans: Sandbanks (Ocean), trenches (Deep Ocean), coral reefs (Warm Ocean), sand ripples (Lukewarm Ocean), sand terraces (Deep Lukewarm Ocean), boulders on the seabed (Cold Ocean), underwater mountains (Deep Cold Ocean), icebergs and pack ice (Frozen Ocean, Deep Frozen Ocean).
Coasts: Dune formations and driftwood (Beach), ice floes (Snowy Beach), steep cliffs with rock spires (Stony Shore).
Deserts and Mesas: Dunes, layered sandstone, gravel fields, buttes and hoodoos (Desert); terracotta terraces (Badlands, Wooded Badlands); pointed rock formations (Eroded Badlands).
Savannas: Kopjes, plateaus with terracotta edges and wind-shaped terraces.
Temperate Regions: Ponds and wildflower fields (Plains, Sunflower Plains), fallen logs, mushrooms, mossy ground and exposed roots (Forest, Flower Forest, Birch Forest, Old Growth Birch Forest, Dark Forest).
Cold Regions: Podzol, mossy rocks and fallen spruce trees (Taiga variants); frozen ponds and snowdrifts (Snowy Plains, Snowy Taiga); ice plateaus (Ice Spikes).
Tropical Regions and Swamps: Karst towers (Bamboo Jungle), rugged terrain and mossy rocks (Jungle, Sparse Jungle), flat swamps with tidal channels (Swamp, Mangrove Swamp).
Highlands: Flower meadows and ponds (Meadow); flower petals and ponds (Cherry Grove); terraces and boulders (Grove); glacial ice and cirques (Snowy Slopes, Frozen Peaks); rugged ridges (Jagged Peaks); calcite, andesite and spires (Stony Peaks); scree fields (Windswept variants).
Caves: Clay pools (Lush Caves), dripstone hills with calcite (Dripstone Caves).
Installation
- Run
gradle buildand copy the JAR frombuild/libsintoplugins/. - Use a fresh world: delete the world folder and start the server. The plugin adds
worlds.<level-name>.generator: RealisticWorldtobukkit.ymland writes the height datapack into the world folder. On the very first world, a second restart may be necessary if the configuration change does not take effect while the server is running (a message will appear in the log). - Additional worlds:
/rw create <name> [normal|nether|end] [seed]. - Nether and End of the default world: the plugin registers
<level-name>_netherwithRealisticWorld:netherand<level-name>_the_endwithRealisticWorld:end. If your server uses different world names, adjust the entries inbukkit.yml. - Old configurations: if
config-versionis below 3,structuresis automatically set totrue.
Configuration
config.yml is organized by dimension (overworld, nether, end) and includes, among other things: continent size, land percentage, hill and mountain height, mountain coverage, river width, climate (biome size, temperature, humidity), dunes, cave density, sinkholes, cave lava height, magma vents, individual feature groups, Nether settings (lava height, floor and ceiling height, canyons, pillars, islands, magma with lava, features) and End settings (central island, outer islands, fragments, spikes).
Every option is documented with comments in the configuration file. Old configurations are backed up on startup (config-backup-v<N>.yml), migrated to the new layout and their known values are preserved.
Biomes:
overworld.climate.biome-size (small, medium, large, extreme; also klein, mittel, gross, extrem) determines the size of climate-based biome regions. nether.biome-size applies to the Nether.
Under overworld.biomes.weights, nether.biomes.weights and end.biomes.weights, every biome has a spawn weight (1.0 by default, 0.5 means half as common, 2.0 means twice as common, 0 means disabled).
Weights only change the distribution between biomes that match the same climate and altitude. Coastlines, rivers and mountains are not affected by biome size (use continent-size, horizontal-scale and the mountain settings for those).
Height Datapack:
The plugin searches for Vanilla files in the classloader and in JARs located in cache/, versions/ and the server directory.
If this fails, copy data/minecraft/dimension_type/overworld.json and pack.mcmeta from a Vanilla server JAR into plugins/RealisticWorld/vanilla/ (preserving the same relative paths).
Commands
/rw create <name> [normal|nether|end] [seed]/rw infodisplays the biome and terrain values at your current position./rw tp <world>
Permission: realisticworld.admin
Notes
- Already generated chunks in an existing world are not modified. New chunks use the generator, which can result in visible edges between old and new terrain.
- The world height limit is configured through a datapack that overrides the Overworld dimension type. Existing Overworlds must not change their height.
- The generator adapts to the actual world height. Without the height datapack (
world-height.enabled: false), mountains are compressed into the range of Y -64 to 319. - Dungeons, geodes and lava lakes are Vanilla decoration features and cannot be individually disabled through the API. The plugin removes lava lakes afterwards, but dungeons and geodes remain.
- Vanilla structure placement uses terrain heights provided by the generator. Individual structures may still float slightly or become embedded in hills.
