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] [1.20.1] BCLib not picking the right generation on server #135

Closed sirben99 closed 10 months ago

sirben99 commented 1 year ago

What happened?

Hey!

After a long talk in the BetterX Mods discord server, i have come to an conclusion that BCLib:s End generation is broken on servers if using anything other than Normal level type. Judging by the jar file and testing this in action, BClib is supposed to pick its generation settings based on what generation you pick: Amplified, Large Biomes, Legacy or Normal. I run the server on Large Biomes, but, for whatever reason, BClib doesent take the Large biome properties in server, and instead takes the Normal one instead. Putting the generation values from Large to Normal inside the jar file, The End generates as normal, just like in singleplayer, although its not perfect all the time (Biomes still overlapping and being generated too small, even tho they dont in singleplayer) This also means that any edit to the level.dat gets overridden by BCLibs world generation settings, meaning if you want to edit any of the values you have open the jar file of the mod and edit them there (For example the Custom End Terrain Generation is apparently supposed to be enabled by default, but its not. This can be only fixed on the server by opening bclib.jar and editing the files withing), which is quite bad.

My suggestion is that the right generation file is picked on server and made the generation settings changeable though a config file or a datapack instead of being locked values (Idk if this is possbile).

You can find the discord discussion under the name of "BetterEnd worldgen weird on servers" if you want bigger context where the problem started. TLDR: BetterEnd biomes generated small and overlapping. There still seems to be some generation issues even with fixed settings server side, so that could possibly need improvement if possible. image

BCLib

3.0.13

Fabric API

0.90.0

Fabric Loader

0.14.23

Minecraft

1.20.1

Relevant log output

No response

Other Mods

Better-End 4.0.10
SwankyHanky commented 1 year ago

"This can be only fixed on the server by opening bclib.jar and editing the files withing"

Could you walk me through the settings in the bclib.jar file?

I looked in data\bclib\worldgen\world_preset\normal and found where it says things like: "generator": { "type": "bclib:betterx",

"biome_source": { "type": "bclib:end_biome_source",

"generator_version": "vanilla",

I'm guessing I need to replace "vanilla" with something else, but what? "bclib:betterx"?

P.S. I'm not using the Better Nether mod, so I'd also like to know how to disable the BetterX Nether settings altogether.

sirben99 commented 1 year ago

Heres the end line i have in my normal.json:

"minecraft:the_end": {
  "type": "minecraft:the_end",
  "generator": {
    "type": "bclib:betterx",
    "biome_source": {
      "type": "bclib:end_biome_source",
      "config": {
        "barrens_biomes_size": 512,
        "center_biomes_size": 256,
        "generator_version": "vanilla",
        "inner_void_radius_squared": 1048576,
        "land_biomes_size": 1024,
        "map_type": "hex",
        "void_biomes_size": 512,
        "with_void_biomes": true
      },
      "seed": 0
    },
    "settings": "minecraft:end"
  }
},

TLDR: You only want to replace the values with numbers to the one in large.json. So for e.g: "barrens_biomes_size": 512

For generation setting, dev on a discord sayd that the generation should a custom one, but from my experience vanilla generation works just fine, if not better (Lakes in one biome for example dint seem to generate at all with the custom generation). I unfortnatly cant remember the value and where to put it

I hope this helped!

SwankyHanky commented 1 year ago

Thank you very much.

sirben99 commented 10 months ago

Hey, i saw that you closed the issue as completed. Im curious is the issue going to be addressed or is it already been addressed?

quiqueck commented 10 months ago

Yes, the next major update to BCLib will address those configuration issues.

You could als use the bclib:large world-type (in your server.properties) That combines the vanilla large biomes settings with changed biome sizes for the nether/end.

sirben99 commented 10 months ago

Awesome! Thank you for the answer and the upcoming update!

As for the world type, i faintly remember that it had some compatibility issues with the modpack i was running, but i could be totally wrong about that. If the issue comes more clearly to my head, ill report the issue asap!

If i may ask, does the upcoming update change anything drastically to the point where dimensions that depend on BCLib have to be reset or something major like that (Mainly asking for End and Nether since they are modified by BetterEnd and BetterNether)?

Thank you once again for the answer!

quiqueck commented 10 months ago

It should not change anything. At least I hope so :D I mostly rewrote the API to make it more modular and data driven (i.e. configurable/extensible using Datapacks).

sirben99 commented 10 months ago

Good to know! If something breaks ill be sure to report it haha, but im sure its going to be fine :D. Ill stop bothering you now with the questions. Thank you once again for the update and answering my questions and i wish you happy holidays!