AllenSeitz / DimDungeons

A Minecraft mod which adds proceedurally generated dungeons.
14 stars 11 forks source link

Three+ way mod incompatibility: Multiplayer with Vampirism Integrations w/ dimension adding mods #14

Closed Solxanich closed 3 years ago

Solxanich commented 3 years ago

I've encountered the following client error while attempting to connect to a multiplayer server: "failed to connect to server: java.lang.stackoverflow error"

Server has 6G ram, client has 9G ram. Both are on same computer; i9, 32GB ram.

The modlist is TNPLimitless V1.85a + [upsizer, Guide-API, good-nights-sleep, TheAbyss, The_undergarden, immersive-portals, Project_MMO, Bountiful Baubles, SimpleSponge, GunpowderLib, Lost Trinkets, enchantedbookredesign, savageandravage, Vampirism, Vampirism integrations, Corail Tombstone, dim dungeons]

Given that that is a fairly big modlist, I have the following troubleshooting data from a testing replica: 1) removing dimDungeons by itself eliminates the error 2) removing [TheAbyss, The_Undergarden, and good-nights-sleep] as one set by itself eliminates the error 3) removing Vampirism integrations by itself eliminates the error 4) Running with just dimdungeons, guide-api, vampirism integrations, good-nights-sleep, the abyss, the undergarden, and vampirism works OK.

I don't know why removing those three sets in particular eliminates the issue. I suspect a combination of things is causing the issue. I wasn't able to identify what other mods may be involved such that could reproduce with just the relevant mods.

Any tips on what to do to resolve the issue is appreciated! For now, I'm just not using Vampirism Integrations. Let me know if you want additional info

AllenSeitz commented 3 years ago

Thank you for using 'divide and conquer' on the mod list for me! That's how I do it too. I'm actually not familiar with many of those mods, except Immersive Portals.

I haven't tried Immersive Portals in 1.16.4, but the 1.15.2 version disappointed me personally. I love the concept and I want this mod to work desperately. But the 1.15.2 version crashed so frequently that I had to remove it from my personal world. If you look at the mod itself, it is primarily a Fabric mod, and what it does is actually just core mod the entire game rather invasively. It's not really Forge at all. To be fair, the grand effect that Immersive Portals has is probably impossible without a huge core mod. But I found it to be too unstable.

Looking at cases 1 and 3. If removing DimDungeons alone fixes it, and removing Vampirism Integrations alone fixes it, then it was probably neither of those things. In fact I bet that adding another mod (like Lost Cities for example) has a chance to fix it too.

If you save a crash log from the next time it happens I'd like to see that.

By the way I see you're using Corail Tombstone! I like that mod. Don't forget to add tombstone:white_marble and tombstone:dark_marble to the block breaking whitelist of the server config. (I might be wrong about those block ids.)

Solxanich commented 3 years ago

Thanks for the quick response! Indeed, binary search to find problems has always been a favorite of mine. I have found that the current forge version of immersive portals is mostly stable - exempting the odd mod incompatibility such as with create. But that's the give and take with it I suppose. Unfortunately, the logs aren't very helpful from the client; it seems to be failing while handling the packet dispatch from the server - regardless, I've attached the server_debug and client logs.

Also great catch on the Corail Tombstone - I completely forgot to check block breaking white list.

EDIT: Mis-clicked close debug-5.log

AllenSeitz commented 3 years ago

I see, this log file really isn't helpful. And yeah your modpack is huge!

I have another idea. There's a vanilla bug where if you add and then remove a custom dimension then level.dat will be corrupted. Basically, other dimensions (at random, in an unordered list) could be removed too. This actually seems like it could be causing the problem. Not only do you have a large number of custom dimensions in this pack, but you were just adding and removing them while testing.

The vanilla bug with an unmodded client (no Forge at all) goes like this: 1) Use a datapack to add dim4. 2) Run the game for a tick. 3) Log out. Remove dim4. 4) Try to log back in. At best, minecraft:the_nether and minecraft:the_end are no longer in the dimension registry. At worst you didn't even get that far.

You can use the command /forge dimensions to see which dimensions currently exist. If any dimensions that you're expecting to be present are missing then this is surely the problem.

If this is the case there are some unappealing fixes. One would be manual surgery on level.dat if you're comfortable with that. Another idea might be to reinstall every mod and datapack you've ever installed. You might also try 1.16.5 and Forge 36.0.1 which is supposed to be perfectly compatible with 1.16.4, except for some server-side stuff which could conflict with a coremod.

Solxanich commented 3 years ago

Wow. Spot on. Looking in the level.dat - after adding this mod(and probably any other dimensions mod) post generating a world, the level.dat forge tags got cleared. There's zero data under forge :( Tried repeating by generating new world with everything enabled; works fine, no issues. Guess that at-least clarifies the issue and fixing the level.dat should be doable. Thanks for the help!