quiqueck / BetterEnd

Better End MC Mod
https://modrinth.com/mod/betterend
Other
28 stars 40 forks source link

[Crash] Version 1.21: java.lang.IllegalStateException: Biome source config is not set. #448

Open wVtcher opened 3 months ago

wVtcher commented 3 months ago

What happened?

When going to launch a world the game crashes at 0%. Even after removing the other mods that Prism says could cause issues the problem persists. I was able to solve it by removing BetterEnd, and when I added it back it crashed the same. Could be because the version for 1.21 is in alpha.

BetterEnd

21.0.5

BCLib

21.0.9

Fabric API

0.100.7+1.21

Fabric Loader

0.15.11-1.21

Minecraft

1.20.4

Relevant log output

Prism Launcher version: 8.4 (official)

Launched instance in online mode

[01:50:48] [Server thread/WARN]: Method overwrite conflict for removeIf in modernfix-common.mixins.json:bugfix.paper_chunk_patches.SortedArraySetMixin from mod modernfix, previously written by me.jellysquid.mods.lithium.mixin.collections.chunk_tickets.SortedArraySetMixin. Skipping method.
[01:50:48] [Server thread/INFO]: Added 2 Biomes
[01:50:48] [Server thread/INFO]:  - minecraft:end_barrens, subbiomes=1
[01:50:48] [Server thread/INFO]:  - minecraft:end_midlands, subbiomes=1
[01:50:48] [Server thread/ERROR]: Encountered an unexpected exception
java.lang.IllegalStateException: Biome source config is not set
    at org.betterx.betterend.world.generator.TerrainGenerator.initNoise(TerrainGenerator.java:65) ~[better-end-21.0.5.jar:?]
    at org.betterx.betterend.world.generator.TerrainGenerator.onServerLevelInit(TerrainGenerator.java:253) ~[better-end-21.0.5.jar:?]
    at net.minecraft.class_3218.handler$zfi000$betterend$be_onServerWorldInit(class_3218.java:2331) ~[client-intermediary.jar:?]
    at net.minecraft.class_3218.<init>(class_3218.java:274) ~[client-intermediary.jar:?]
    at net.minecraft.server.MinecraftServer.method_3786(MinecraftServer.java:417) ~[client-intermediary.jar:?]
    at net.minecraft.server.MinecraftServer.method_3735(MinecraftServer.java:342) ~[client-intermediary.jar:?]
    at net.minecraft.class_1132.method_3823(class_1132.java:73) ~[client-intermediary.jar:?]
    at net.minecraft.server.MinecraftServer.method_29741(MinecraftServer.java:664) ~[client-intermediary.jar:?]
    at net.minecraft.server.MinecraftServer.method_29739(MinecraftServer.java:281) ~[client-intermediary.jar:?]
    at java.base/java.lang.Thread.run(Thread.java:1583) [?:?]
[01:50:48] [Server thread/ERROR]: This crash report has been saved to: C:\Users\jptkm\AppData\Roaming\PrismLauncher\instances\1.21\.minecraft\crash-reports\crash-2024-07-29_01.50.48-server.txt
[01:50:48] [Server thread/INFO]: Stopping server
[01:50:48] [Server thread/INFO]: Saving players
[01:50:48] [Server thread/INFO]: Saving worlds
[01:50:48] [Server thread/INFO]: Saving chunks for level 'ServerLevel[Build Planner]'/minecraft:overworld
[01:50:48] [Render thread/INFO]: [FastQuit] Exiting FastQuit.
---- Minecraft Crash Report ----
// You should try our sister game, Minceraft!

Time: 2024-07-29 01:50:48
Description: Exception in server tick loop

java.lang.IllegalStateException: Biome source config is not set
    at org.betterx.betterend.world.generator.TerrainGenerator.initNoise(TerrainGenerator.java:65)
    at org.betterx.betterend.world.generator.TerrainGenerator.onServerLevelInit(TerrainGenerator.java:253)
    at net.minecraft.class_3218.handler$zfi000$betterend$be_onServerWorldInit(class_3218.java:2331)
    at net.minecraft.class_3218.<init>(class_3218.java:274)
    at net.minecraft.server.MinecraftServer.method_3786(MinecraftServer.java:417)
    at net.minecraft.server.MinecraftServer.method_3735(MinecraftServer.java:342)
    at net.minecraft.class_1132.method_3823(class_1132.java:73)
    at net.minecraft.server.MinecraftServer.method_29741(MinecraftServer.java:664)
    at net.minecraft.server.MinecraftServer.method_29739(MinecraftServer.java:281)
    at java.base/java.lang.Thread.run(Thread.java:1583)

Other Mods

[✔] animatica-0.6.1+1.21
  [✔] balm-fabric-1.21-21.0.14
  [✔] bclib-21.0.9
  [✔] better-end-21.0.5
  [✔] bettermounthud-1.2.4
  [✔] better-nether-21.0.8
  [✔] capes-1.5.4+1.21-fabric
  [✔] cloth-config-15.0.128-fabric
  [✔] continuity-3.0.0-beta.5+1.21
  [✔] Controlify-2.0.0-beta.14+1.21-fabric
  [✔] cristellib-fabric-1.2.6
  [✔] cubes-without-borders-2.1.1+1.21
  [✔] Debugify-1.21+1.0
  [✔] dungeons-and-taverns-v4.3
  [✔] dynamic-fps-3.6.1+minecraft-1.21.0-fabric
  [✔] e4mc_minecraft-5.0.0-fabric
  [✔] e4mc_minecraft-5.1.0
  [✔] enhancedblockentities-0.10.1+1.21
  [✔] entity_model_features_fabric_1.21-2.1.3
  [✔] entity_texture_features_fabric_1.21-6.1.3
  [✔] entityculling-fabric-1.6.6-mc1.21
  [✔] fabric-api-0.100.7+1.21
  [✔] fabric-language-kotlin-1.11.0+kotlin.2.0.0
  [✔] fabricskyboxes-0.7.4+mc1.21
  [✔] fabrishot-1.14.0
  [✔] fastquit-3.0.0+1.20.6
  [✔] ferritecore-7.0.0-fabric
  [✔] fsb-interop-1.4.0+mc1.21-build.54
  [✔] ImmediatelyFast-Fabric-1.2.18+1.21
  [✔] indium-1.0.34+mc1.21
  [✔] iris-1.7.3+mc1.21
  [✔] language-reload-1.6.1+1.21
  [✔] lithium-fabric-mc1.21-0.12.7
  [✔] main-menu-credits-1.2.0
  [✔] mixintrace-1.1.1+1.17
  [✔] modelfix-1.21-1.6-fabric
  [✔] modernfix-fabric-5.18.8+mc1.21
  [✔] modmenu-11.0.1
  [✔] morechathistory-1.3.1
  [✔] moreculling-1.21-0.26.0
  [✔] NoChatReports-FABRIC-1.21-v2.8.0
  [✔] optigui-2.3.0-beta.2+1.21
  [✔] paginatedadvancements-2.4.2
  [✔] polytone-1.21-2.1.3-fabric
  [✔] puzzle-1.6.3+1.21
  [✔] reeses_sodium_options-1.7.3+mc1.21
  [✔] rrls-5.0.1+mc1.21-fabric
  [✔] sodium-extra-0.5.7+mc1.21
  [✔] sodium-fabric-0.5.11+mc1.21
  [✔] t_and_t-neoforge-fabric-1.13.2
  [✔] waystones-fabric-1.21-21.0.8
  [✔] worldweaver-21.0.10
  [✔] YetAnotherConfigLib-3.5.0+1.21-fabric
  [✔] yosbr-0.1.2
  [✔] Zoomify-2.14.0+1.21
OpenBagTwo commented 3 months ago

To clarify: is this when trying to create a new world or when loading up an existing world created prior to upgrading to 1.21?

If it is for creating a new world, what world type are you selecting?

liangmoe commented 3 months ago

To clarify: is this when trying to create a new world or when loading up an existing world created prior to upgrading to 1.21?

If it is for creating a new world, what world type are you selecting?

im trying to create a superflat world and resulting this https://mclo.gs/73ce3nR

wVtcher commented 3 months ago

To clarify: is this when trying to create a new world or when loading up an existing world created prior to upgrading to 1.21?

If it is for creating a new world, what world type are you selecting?

It happened when I was trying to load an existing superflat world already in 1.21. Also, I believe that I had this exact same issue when trying to load a different, already existing, BetterX world. Though I cannot be certain because I didn't look into that crash.

Amethyst-64 commented 3 months ago

Happened when loading a default world as well.

jamieclipse commented 3 months ago

I get this when trying to update a world with an older version of 1.21 BetterEnd, doesn't seem to happen when creating newer worlds however.

OpenBagTwo commented 3 months ago

I get this when trying to update a world with an older version of 1.21 BetterEnd, doesn't seem to happen when creating newer worlds however.

Upgrading older worlds is not currently implemented. It's something that can be done manually, but I would very much not recommend it, as when I did it, all my BE containers (end wood chests and barrels) had their stack sizes reset, and I'm sure there are other upgrading issues that I haven't yet caught.

jamieclipse commented 3 months ago

I get this when trying to update a world with an older version of 1.21 BetterEnd, doesn't seem to happen when creating newer worlds however.

Upgrading older worlds is not currently implemented. It's something that can be done manually, but I would very much not recommend it, as when I did it, all my BE containers (end wood chests and barrels) had their stack sizes reset, and I'm sure there are other upgrading issues that I haven't yet caught.

How would I manually upgrade an older world if I wanted to do so?

OpenBagTwo commented 3 months ago

How would I manually upgrade an older world if I wanted to do so?

@jamieclipse I cannot stress enough that I do not recommend doing this, and I disclaim any and all responsibility for whatever problems arise from following these directions. That being said, what I did was:

  1. Back up my existing world!!
  2. In a fresh 1.21 instance with the latest versions of BetterEnd, BCLib, etc. I created a new BetterX creative world and used execute in [dimension] run tp @s 1000 200 1000 to quickly visit all three dimensions
  3. Back in my old, 1.20.4 world, I then deleted all files in my data folder that weren't maps or vanilla files like raids.dat, scoreboard.dat, etc. I repeated this for DIM-1/data and DIM1/data.
  4. I then copied the contents of the data (and DIMx/data) folders from the 1.21 "donor" world
  5. Lastly, I used an NBT editor to replace the Data > WorldGenSettings NBT tag in level.dat of my 1.20.4 donor world with the value from the "donor" world's level.dat
  6. Finally, I opened my world in Minecraft 1.21 and, using a creative mode copy (or the "Open to LAN" commands hack), verified that everything was where it should be

Why I don't recommend doing this:

Long story short: I would not consider BetterEnd 1.21 to be in a playable state and would very much suggest sticking with 1.20.4 until such time as these issues are resolved and the "Guardian" world upgrader is functioning.

jamieclipse commented 3 months ago

How would I manually upgrade an older world if I wanted to do so?

@jamieclipse I cannot stress enough that I do not recommend doing this, and I disclaim any and all responsibility for whatever problems arise from following these directions. That being said, what I did was:

0. **Back up my existing world!!**

1. In a fresh 1.21 instance with the latest versions of BetterEnd, BCLib, etc. I created a new BetterX creative world and used `execute in [dimension] run tp @s 1000 200 1000` to quickly visit all three dimensions

2. Back in my old, 1.20.4 world, I then deleted all files in my `data` folder that weren't maps or vanilla files like `raids.dat`, `scoreboard.dat`, etc. I repeated this for `DIM-1/data` and `DIM1/data`.

3. I then _copied_ the contents of the data (and `DIMx/data`) folders from the 1.21 "donor" world

4. Lastly, I used an NBT editor to replace the `Data > WorldGenSettings` NBT tag in `level.dat` of my 1.20.4 donor world with the value from the "donor" world's `level.dat`

5. Finally, I opened my world in Minecraft 1.21 and, using a creative mode copy (or the  "Open to LAN" commands hack), verified that everything was where it should be

Why I don't recommend doing this:

* Anything you store in a BetterEnd container (wood chests and barrels) will have their stack sizes reset unless you painstakingly go into the NBT data and change every slot's "Count" component to "count" (I did this via a Python script using the [NBT library](https://github.com/twoolie/NBT), but not that that library doesn't work if you have any items, entities, etc. with non-ASCII characters in their name)

* BetterEnd worldgen is _not 100%_ in 1.21. Namely, **end caves do not currently generate.** Existing caves will port over fine, but unless you're planning on doing a massive world prune—or even a full dimension reset—I wouldn't want to generate any new chunks in the current version of BE.

* There are plenty of other bugs, from blockstates not rendering properly; to broken UIs that cause large portions of the mods' mechanics to be unusable ([End Stone Smelter and Infusion Pedestal ui wont open #435](https://github.com/quiqueck/BetterEnd/issues/435)); to armor items having weapon properties ([[Bug] Terminite Armor Considered a Weapon #442](https://github.com/quiqueck/BetterEnd/issues/442)). With BetterEnd installed, you also **cannot create a world of any other worldtype** ([[Crash] Version 1.21: java.lang.IllegalStateException: Biome source config is not set. #448](https://github.com/quiqueck/BetterEnd/issues/448)).

Long story short: I would not consider BetterEnd 1.21 to be in a playable state and would very much suggest sticking with 1.20.4 until such time as these issues are resolved and the "Guardian" world upgrader is functioning.

The world I'm upgrading doesn't have an End dimension that's been accessed yet, so hopefully it's a bit safer to upgrade since I can reset the dimension without issue. Thanks for the info!