WerDei / Biome-Replacer

MIT License
3 stars 3 forks source link

Dark forest wont replace fully #7

Open lenauvi opened 2 months ago

lenauvi commented 2 months ago

Tried to replace minecraft:dark_forest > minecraft:cherry_grove, only worked partially. I managed to replace all modded biomes, except for the vanilla ones. For some reason, the biome doesnt get replaced fully. Im running a modpack with terralith

Leviathanium commented 1 month ago

Can confirm exactly the same issue. Dark Forest doesn't seem to go away. I'm using Terralith, Tectonic, and Regions unexplored Here's what I've tried:

  1. I've tried replacing Dark Forest in the Biome Replacer config file like usual. I've tried different biomes from other mods and from vanilla but it still seems to ignore the rule entirely.
  2. Using Terrablender's config file, you can change the spawn weight over vanilla biomes over modded biomes (the default spawn weight is 10.) Setting the vanilla biome weight to 0 to try removing all vanilla biomes from the game causes a crash every time when joining the world. Setting it to anything under 4 seems to crash the server as well, logs say the server "can't keep up."
  3. TerraBlender uses "regions" to group biomes into to decide which biomes should spawn. I've checked the Regions Unexplored config file and it doesn't reference the Dark Forest as a primary or secondary region, so that mod definitely isn't the culprit.

Still trying to figure out what the issue is. If it helps, I'm currently replacing around 80 biomes in total with the Biome Replacer mod (around 40 Terralith Biomes are being replaced, and nearly all vanilla biomes are being replaced except for oceans and rivers, and they're all being replaced with biomes from Terralith and Regions Unexplored). I don't know if it's resource intensive or something but I thought I'd mention it.

Leviathanium commented 1 month ago

Update: After some extensive testing, the Dark Forest issue seems to be fixed for me, but when looking into how to solve the problem, I had to dig pretty deep into how TerraBlender works, since I'm using TerraBlender for my modpack. So hopefully this could be considered good documentation for how exactly to replace TerraBlender biomes with Biome Replacer.

Firstly, TerraBlender is a library mod that essentially adds biomes to the game. A couple of very famous examples of mods that require it are mods like Regions Unexplored, Terralith (the mod version, not the datapack), and Biomes o' Plenty. TerraBlender takes all of these mods and, you guessed it, throws them in a "blender" before choosing any of them to generate within the world. Some of these mods can be configured, such as Regions Unexplored (you can configure exactly what biomes to disable and also what regions they will spawn in, etc.), but some of them, like Terralith, cannot, due to the way they are built.

What this means is that when Minecraft is looking to generate the world, are only two ways biomes get added to the game:

  1. TerraBlender chooses a vanilla biome to spawn by pulling from the list of vanilla biomes.
  2. TerraBlender chooses a modded biome to spawn by pulling from any of the possible biomes added via mods, assuming that they fit within the correct region (for example, TerraBlender won't place the biome _terralith:lushdesert right next to terralith:shield because they are different temperatures, meaning different regions.)

One other very important thing is that TerraBlender has the ability to configure vanilla biomes spawn weight in comparison to the modded biomes it normally ads in its config file. This means that you can decide how frequently TerraBlender will choose a modded biome vs. a vanilla Minecraft biome based on preference.

What I tried was probably what you'd expect. TerraBlender's vanilla weight distribution goes from 0-2147483647. So I figured setting it very low to 0 or 1 would do the trick. It did not. Vanilla biomes still spawned in the overworld at around a 50/50 chance, which is not what I wanted. This happened regardless of whether I used Biome Replacer to replace any of the vanilla biomes or not. It isn't clear in TerraBlender's documentation how the weight distribution completely works, but I decided to try something crazy and it worked.

I set the vanilla weight distribution in TerraBlender's config file to 7483647 and only vanilla biomes spawned, which is what you'd expect. This means only vanilla biomes are going to spawn and that TerraBlender should basically never choose a modded biome.

Then I used Biome Replacer to choose exactly which of these vanilla biomes to replace with the modded ones that will essentially never spawn naturally. It worked perfectly. Not a single vanilla biome, including Dark Forest ever spawns.

Right now I'm not entirely sure why this is the case, but if you want to try to recreate what I did, do this:

  1. Edit terrablender.properties in the config folder. vanilla_overworld_region_weight = 7483647 Now TerraBlender will essentially only choose vanilla biomes to spawn.
  2. In Biome Replacer, replace every vanilla biome you don't want with a modded biome. It should work as intended.

The downside to this system is that you have to do everything manually, but that's kind of the point I guess! I also don't know if this is by design, but this is how it's working for me.

Lastly, it does look like you can use vanilla overhaul datapacks with this method. William Wyther's Overhauled Overworld changed all of the vanilla biomes (including Dark Forest) before I replaced them, so if you want to keep a couple of vanilla biomes but just overhaul them a ton, it looks like you should be able to do that.