Topic category: Help with Minecraft modding (Java Edition)
So, im having issues trying to figure out how the biome generation works on the 2023.1 version of Mcreator, i already tried to watch videos and read about biome generation on Mcreator's official page and other places out there, but i still couldn't understand it.
Essentially my goal is to make 3 biomes for a dimension, one of them has to be an ocean that wont be covering much of the terrain.
The other should be a mostly flat land like a desert or plains that must cover most of the world.
And the last one should be composed of very tall peaks and mountains. If someone here could help me on getting the right values to generate that on my custom dimension i would be gratefull.
Thanks for your time :)
TL;DR: Ever since changes in Minecraft 1.18, we have less control over how biomes and the world overall generates.
I recommend you create four biomes: an ocean biome with just its continentalness range changed, set from -1 to -0.16; a plains biome with its continentalness set from -0.16 to 1 and its weirdness range set from -0.35 to 0.35, one mountain biome with just its weirdness range changed, set from 0.35 to 1, and another mountain biome, with its weirdness set from -1 to -0.35. Leave the other ranges their default values.
Also, after you're done creating the biomes and adding them to the custom dimension, open the custom dimension's second .json file in the code editor, replace the default seed it has with "-6554079638258233941", and then save and lock the code.
Unfortunately, the limitations and unintuitiveness of the 1.18+ generation system are pretty annoying to work with.
Before, biome generation settings determined the shape of the world itself. If you had an ocean, plains, or mountainous biome, where ever those biomes generated you would then have oceans, plains, or mountains respectively. But now it appears that world generation is unaffected by biome generation settings, and those settings now merely decide the placement of a biome within a pre-determined world.
An overworld-style dimension will now always generate oceans, rivers, plains, valleys, mountains etc., even if you only have one biome set to generate within that dimension. It's kind of like the game stretches out biome generation settings in order to fill any blanks- if the biome(s) within that dimension don't cover the full range of variables for all sorts of different types of terrain that the world has generated.
So you aren't able to have as stark of a contrast between biomes, and it seems impossible to make certain types of features commonplace now. (Like large, very flat biomes, or thinner, steeper mountains).
I suspect Mojang did this to force having gradual transitions between biomes, so mountains would have more realistically gradual slopes, and so some things wouldn't look so janky sometimes; but it ultimately took away some creative power from modders, and broke single-biome vanilla worlds, too.
All that being said, I'll talk you through my attempt at creating your idea with the restrictions we have to work with...
I started with three new biomes in a custom dimension- all with the default settings, aside from the continentalness range- which I tested first and by itself.
Limiting the ocean biome to, well, the ocean, was pretty simple. If you look at "continentalness ranges" here: https://mcreator.net/wiki/vanilla-biome-settings-data-list#toc-index-5, this value determines how far inland or out at sea a biome should be placed. Looking at these vanilla values really helps in figuring out which numbers yield different results.
I tried -1 to -0.16 for the ocean, -0.16 to 0.5 for the plains, and 0.5 to 1 for the mountains.
This caused the ocean biome to predictably generate primarily underwater, with a few rare islands, and some thin beaches along the coast of the plains biome. I also noticed the plains biome generated a few underwater bays, however, since the position of them were considered more inland than the "ocean".
If you open up the F3 menu in-game and take a look at that one long line on the left- the mess of numbers and letters called the "NoiseRouter"- as well as the line below it- they show you the kind of settings we're working with. In this case, C is for continentalness. If you fly back and forth between the coast and the ocean, you'll see the C value change. If you want more or less of a beach, you can set the upper limit of the ocean biome, and the lower limit of the plains biome, to whatever value you prefer.
I decided to work on getting the mountain biome to generate where its supposed to next, rather than worrying about the bay issue for now. Biome 'height' is a fair bit more complicated than continentalness is, though...
MCreator's wiki has little information on "weirdness" and that's what we should be looking into changing here, so if you take a look at the official Minecraft wiki: https://minecraft.fandom.com/wiki/Biome#Weirdness, you'll see that weirdness does a couple things. It influences the PV (peaks and valleys) value that we cannot change directly. The formula for PV directly ties to the weirdness value, but while PV ranges from 0-1, the weirdness range that influence it ranges from -1 to 1. The formula makes use of the absolute value of weirdness, however; giving it an interesting split. If weirdness is too low or to high, it correlates to taller terrain- but it isn't linear, which makes it a little more confusing- and weirdness can be high in the ocean without there being a mountain in the ocean, making it even less intuitive! It appears that generally, the difference between peaks and valleys is more extreme the further inland you go, and less severe the nearer to the coast; but you will still find extreme coastal cliffs on rare occasion that I cannot explain.
Going back to the F3 menu, however, if you take a look at W and PV as you fly back and forth into and out of the edge of a mountain, pay attention to the absolute value of W and how that translates into the PV. To me, it seems like 0.35 or so is a good cut-off point between the plains and mountain biomes. This checks out with the math, since 3.5 plugged into the PV formula for weirdness yields 0.05 - which is near the lower end of the "High Slice" range shown on the Minecraft wiki.
Minecraft only seems to use two ranges for weirdness for its biomes: -0.2 to 0, and 0 to 2. However, since we're working with a small number of biomes here, and we want to make sure there's a contrast between the height of the plains and mountain biomes, let's continue using custom ranges and just basing them off of vanilla ones rather than directly using vanilla ranges.
After several rounds of testing, I ended up having the plains' weirdness range set to -0.35 to 0.35, the mountain biome's weirdness range from 0.35 to 1, and a duplicate, second mountain biome's weirdness range from -1 to -0.35. When I initially tried this with just three biomes, with the mountain biome having a restricted positive weirdness range, the ocean and plains biomes ended up forming mountains on rare occasions - since they were going off of the negative weirdness range. I felt that a second mountain biome to essentially mirror the first would prevent the ocean or plains from rising up - and it has.
After tweaking values and going back and forth between trying to use just three biomes, and using four, I eventually settled on the following:
An ocean biome with just its continentalness range changed, and set to -1 to -0.16;
a plains biome with its continentalness range set to -0.16 to 1 and its weirdness range set to -0.35 to 0.35;
one mountain biome with just its weirdness range changed, set to 0.35 to 1;
and finally a second mountain biome with its weirdness range an inverse of the first, set to -1 to -0.35.
Lastly, I highly recommend you use the following seed: -6554079638258233941
Open up the custom dimension's second .json file in the code editor after you finished making your biomes and adding them to the dimension, then replace whatever seed value you have at the top of yours with this one, save, and lock it. I think you'll like it!
I didn't bother altering the erosion value because, even though you are looking to have a flatter biome, all of the hills in the world are still going to exist; so in order for the plains biome to constitute a larger portion of the world, it needs to consist of a greater variety of terrain, too.
Hopefully the above settings yield something close to what you're looking for, but if not, I'm afraid there isn't as much control over biomes as there used to be.
Will's Aquatic Craft, nice and accurate information, well written :)
Will's Aquatic Craft, thank you so much for this, i really didnt expect someone would care that much about my post! im going to test those settings rn, have a wonderful week! :)
Thank you, I try to be meticulous to more accurately convey information haha...
Will's Aquatic Craft Hey, can i contact you somewhere else? like on discord or reddit?
Yeah, sure. HoB#5169 is my Discord tag.