quiqueck / BCLib

A library mod for BetterX team mods, developed for Fabric, MC 1.16.4+
https://modrinth.com/mod/bclib
Other
26 stars 24 forks source link

[Bug] Regions Unexplored nether biome surface rules not generating with BetterX world type #75

Open UHQ-GAMES opened 1 year ago

UHQ-GAMES commented 1 year ago

What happened?

hey there! I'm the dev for the mod "Regions Unexplored" and I recently ported to fabric, so far everything is working well except for one thing. It seems that my nether biomes spawn without surface rules in 1.19.2. I think it has something to do with the Terrablender API and the BetterX world type but im not sure. I talked with paulevs on discord and he helped by checking it out for me and he found it odd. He suggested posting an issue to the BClib github so here I am lol, I can provide access to my source code and any other relevant information needed, especially cause its always possible I'm doing something it doesn't like. My biomes wont even generate in the nether with BetterX in 1.19.3 (but that's an issue for another time). Any guidance or information would be much appreciated, thanks!

It may also be important information that i have tried multiple BClib versions and have had no luck.

BCLib

2.1.5

Fabric API

0.73.0

Fabric Loader

0.14.11

Minecraft

1.19.2

Relevant log output

No response

Other Mods

-Forge Config API Port - 4.2.10
-Terrablender(Fabric) - 2.0.1.136
Questwizard commented 1 year ago

This is also relevant in 1.20.1 with BCLib 3.0.9. The biomes actually generate in the BetterX world type in 1.20.1 with the latest update, but are still missing surface rules. In the default world type, the surface rules are applied, but the biome distribution is not great (kind of expected that).

With BCLib & BetterX world type: with_bclib

Without BCLib and/or using default world type: without_bclib

ghost commented 9 months ago

I'm also having this issue on Minecraft 1.20.1, using BCLib 3.0.14.

New Project

If it's possible for this to be fixed, I'd really appreciate it. I absolutely love BetterNether, and I'd love to use it alongside a few other nether biomes if possible :)

lSherozl commented 8 months ago

This issue is something I reported to connector, who directed us to this page, it is a problem with Bclib, but idk why surface rules are affected, someone in another thread also said for connector: So to fix this u need to use fabric terrablender and fabric regions unexplored(also should this issue be pinned so people can find solution to biome problems?) But I can not confirm if this somehow solves the issue

LwkySad commented 8 months ago

This issue is something I reported to connector, who directed us to this page, it is a problem with Bclib, but idk why surface rules are affected, someone in another thread also said for connector: So to fix this u need to use fabric terrablender and fabric regions unexplored(also should this issue be pinned so people can find solution to biome problems?) But I can not confirm if this somehow solves the issue

Yeah this does fix the nether but makes it so overworld biomes don't spawn anymore

alessiorapisarda commented 8 months ago

Using Fabric Terrablender and Fabric Regions Unexplored won't completely fix the generation issues in the Nether, there are some biomes not generating correctly

mxKeaton commented 8 months ago

I have the exact opposite problem. Both mods generate all of their blocks and components without any issues, but it interupts the vanilla biomes from generating their surface blocks. Even soulsand is affected.

A tangent issue that arises out of this, is that because I have to remove both Better X mods because of BCLib, I can not find any end biome mods. For the nether, I like the combination of RE and Cinderscapes, but the end only really offers Enderscape and Better End, which both rely on BCLib.

You have any recommendations for alternetives without BCLib or any solutions to make it work with it?

ZaChr0me commented 7 months ago

I'm having a mix of the problems : Some biomes don't generate at all (no soul sand plains for example), and some don't have any surface rules (no gravel in gravel plains)

aking4125 commented 7 months ago

Reporting here, we're getting the same thing via Connector and using Forge[1.20.1] :

2024-03-31_20 14 50

2024-03-31_20 32 35

2024-03-31_20 45 36

2024-03-31_20 52 27

BOP biomes are affected as well

image

Reshy commented 6 months ago

This issue is still present on the latest versions.

CaptConrad commented 5 months ago

Still an issue.

MrElectrum commented 5 months ago

still an issue :(

Inferkn commented 4 months ago

issue still not resolved :c

meelboo commented 3 months ago

still an issue it seems.... on 1.20.1 at least

Meek97 commented 1 week ago

Hey all, After tinkering around with this for a few days - there is definitely an incompatibility issue with BCLib generating Terablender biomes. Personally I've been working on a 1.20.1 modpack that includes Biomes O' Plenty & Better Nether, and this bug has been SUPER frustrating. I haven't been able to find a way to stop these "incompatible" biomes from generating all together with the BetterX world type, and the complete lack of information regaurding the BCLib config / datapack structure has been a struggle. In the end, I think I found a way for people to actually fix this with some datapack tinkering! This example will be for BoP biomes, but it should work for other Terablender mods, like "Regions Unexplored". The problem with BoP is that is does not define some of it's generation in a "data driven" format, and that's where we can fill in the gaps for BCLib. BCLib will apparently look for surface generation data files in the following data folder: <data_pack>/data/<mod_id>/worldgen/betterx/surface_rules/<biome>.json (at this time I'm not entirely sure if these data files need to coincide with the mod who's biome we are trying to fix, but that's what I've been doing so far. It's likely that they could live in a seperate data folder). Now I'm still very much a novice when it comes to minecraft datapacks - but I was able to take some of the data files from the BetterNether biomes, and start to modify them to fit the BoP biomes that were missing surface generation. I did run into a caveat with a lot of the BoP biome surface decorations - as it turns out a lot of the decoration "placement rules" are coded very specifically to the biomes intended surface generation. For example: the decorations in the _witheredabyss biome are coded to only be placed onto a few select blocks, like Netherrack and Blackstone(reference). Or the Undergrowth biome only generate it's larger trees and brambles on Netherrack, or blocks that an Oak Sapling could survive on (reference). This does work to our advantage too though, as correcting the surface generation to match the intended block surface restores pretty much all of the biome decorations for BoP. The trick is dialing in the surface_rules to closely match the mods intended generation, but it also gives us a little room for customizing!

Here are some of the surface_rule data files I made for a few BoP nether biomes (these are by no means, "polished") errupting_inferno.json visceral_heap.json withered_abyss.json

Meek97 commented 1 week ago

Some screenshots to compare: First, some examples of the BoP Undergrowth & Withered Abyss biomes with the "default" worldgen: 2024-11-04_19 36 21 2024-11-04_19 35 03

(The rest of the photos will be from the same seed since they will all be with the "BetterX" worldtype)

Next, how these biomes generate by default with the "BetterX" Worldtype. Note that the Undergrowth isn't affected much since it's surface is normally netherrack anyway, but the patches of obsidian are missing from the Withered Abyss 2024-11-04_19 42 55 2024-11-04_19 42 32

Now, with the "fixed" surface_rules datapack installed. I added some soul-sandstone under the "surface" in the Undergrowth, and brought the blackstone surface back to the Withered Abyss. The obsidian decorations there are automatically spawned in by BoP since the surface now matches what those generation features are programmed to spawn in 2024-11-04_19 45 39 2024-11-04_19 46 20

Lastly, to showcase the "caveats" you can catch when trying to customize the surface_rules. Because of the way BoP, specifically, is coded - it's surface features will not generate properly if the surface blocks are not what the mod expects them to be. Here, if I made the surface block of the Undergrowth "Netherrack Moss" from BetterNether and it's trees and brambles won't generate. If I made the ceiling of the Withered Abyss "black sand" from BoP, it will be missing those obsidian patches again 2024-11-04_19 51 05 2024-11-04_19 51 59

aking4125 commented 3 days ago

I'm getting the reversed issue in 1.21.1. BetterX Biomes doesn't generate surface blocks. All other biome types are working, however, so my end's issue is reversed.

2024-11-08_22 05 36

Meek97 commented 3 days ago

Well this is definitely strange... I just ended up publishing a datapack to fix the generation issues when using BetterNether + Biomes O' Plenty. I was going to do the same for Regions Unexplored, since i saw a number of people reporting the same issue with that mod on here as well - but made some confusing discoveries instead.

With the following versions:

(All using the BetterX WorldType)

  1. When only using BetterNether & Regions Unexplored (BOP+GlitchCore mods disabled) - biomes from BetterNether and Regions Unexplored generated properly
  2. When only using BetterNether & BOP (Regions Unexplored + FCAPIP mods disabled) - biomes from BOP were missing the correct surface generation - and this is the scenario I had set out to fix with my datapack
  3. When using all mods together - biomes from ALL mods were generating properly. I definitely didn't expect this to happen.

Is there anyone who can corroborate this setup?