Woot and BOP breaks world.
xannor opened this issue ยท 3 comments
I Just saw and installed woot (1.0) for 1.16.3, on forge 34.1.24 played for a bit and then had to exit my single player. When I reloaded I got stuck at Loading data, according to the logs, when Biomes O Plenty loads and tries to scan the dimensions, DIM 1 and DIM-1 are no longer available. Even after disabling woot the issue still occurs (something gets broken in the level.dat ad far as I can find out.) IF i jump back to a backup made before woot everything loads fine, but if I save then reload it is broken again. This issue has been reported to BOP but it was discovered that woot (at the time the 1.61.2 version, Glitchfiend/BiomesOPlenty#1696) but I am encountering it in 1.16.3, I also found references to a MC bug (https://bugs.mojang.com/browse/MC-197860) via another BOP bug-report (Glitchfiend/BiomesOPlenty#1704) for 1.62.3/3 that seems to be related, that creating and removing a dimension, in the bug report this was done via datapack, breaks the world.
The error is an IndexOutOfBounds error from (line https://github.com/Glitchfiend/BiomesOPlenty/blob/f45020028b8533445f32d312002d999926ad906f/src/main/java/biomesoplenty/common/world/BOPWorldTypeUtil.java#L46) in BOP but it is a point where it is trying to load a dimension. Removing BOP will get past the error but then portals are broken.
Does woot do anything to add/remove dimensions during its startup? it seems odd, but it also seems to be the only commonality I can find.
In the meantime I am researching a thread to possible see if there is a way to manually fix/work around the problem with woot disabled so I can continue my save (my last working back is a day old and I don't want to lose progress) and then see if it is possible to work around the issue after the fact.
I did a bit more research, and it seems that BOP is more the culprit and woot just may be a victim. If you feel this is the case go ahead and close it as I have now found a few other mods that use json dimensions point to BOP and some even to the very issues I referenced.
I'm creating the Tartarus dimension using vanilla datapacks and tiny bit of Forge calls to register the DimensionType.
I think I'm doing it correctly to the point where it works. But if there is something wrong there that someone can point me at, I'll be happy to make any fixes.
https://github.com/Ipsis/Woot/blob/1.16.x/src/main/resources/data/woot/dimension/tartarus.json
https://github.com/Ipsis/Woot/blob/1.16.x/src/main/resources/data/woot/dimension_type/mobsimulator.json
Looking at some of the other mods that use the json method and the problems with BOP I am beginning to think it is not something you have done wrong but something BOP has. I just ran a test with BOP disabled, and I could load my world and go to the nether (woot was disabled in that load as well) so I am now going to to a test with woot loaded and if that works then it definitely seems to be a BOP problem and not yours. I walking through The Bumblezones issues on BOP lead me to a Rats issue as well, which in turn brought up the suggestion that BOP is doing something to request the dimensions to soon before json dimensions are fully initialized and thus causing the whole thing to break.
While tying this My game reloaded with woot and it seems all is well, so I'll wait for a BOP update and try not to travel to far.