searica / MoreVanillaBuildPrefabs

GNU General Public License v3.0
3 stars 2 forks source link

possible incompatibility discovered #2

Closed BLUBBSON closed 1 year ago

BLUBBSON commented 1 year ago

Game crashes when I use more vanilla builds with the mod Multiverse, no error code in the log file

Maybe it's because when you enter a seed or server it reads all builds again (at least my theory)

Is it necessary to install on the server if this mod is only intended for administrators, at least on my two servers ;)

searica commented 1 year ago

Hmm, just to clarify does the game crash when you load it up or when entering a portal that changes servers? It sounds like the second option from your description but I want to make sure I'm on the right page before I go digging.

Also your theory matches up pretty well with mine and should be an easy fix if that is the case as I had already been considering adding a check to handle re-logging better to speed up load times.

Regarding your question about if it's necessary to install it on the server, the answer is no. The mod works entirely as a client-side only mod with server installation only used to enforce syncing of the configuration file. Unfortunately I don't have the best set up for testing on a dedicated server at the moment so I don't know what would happen if two players on a dedicated server had the mod installed client-side with different configurations and deconstructed pieces the the other one had built. Currently one of two things should happen:

  1. It would drop the resources that were used to build it regardless of who deconstructed it
  2. It would drop the resources required to build it based on the requirements for the person who deconstructed it

So I added server sync to prevent that particular situation from arising and to allow admins to restrict the use of CreatorShop pieces that can be used for griefing or exploits like infinite stability or building floating structures. If the only people on the server with the mod are already Admins and they can agree to keep the configuration file the same then it should have no issues.

BLUBBSON commented 1 year ago

The game crashes as soon as you enter the portal that you use to change servers

Once this problem has been solved, I would also like to install it on my server. I think a server-side setting is better because then you can better manage what admin and players can place. The thought only came to me if this is something that you can't reprogram like that I'll just call it that, I'm more of an amateur

searica commented 1 year ago

Okay, I've been able to replicate the error and tried a couple of possible fixes. Unfortunately none of them were successful so far. Gonna have to spend some more time getting to the root cause of the crash.

I'm in the middle of moving at the moment and so my debugging time is pretty limited but I'll take another crack at it tonight and give you an update on any progress. Hoping that I can figure it out pretty quickly cause if I don't manage it today or tomorrow it'll have to wait until the start of October.

BLUBBSON commented 1 year ago

thank you very much for your effort and don't stress yourself out The rest of the mod works ;) Thank you very much for keeping me up to date

searica commented 1 year ago

Thanks for your understanding. I haven't had access to the internet since I last replied due to moving.

So far I have confirmed the crash occurs whenever re-logging while the mod is installed and that it is caused by Unity attempting to access memory it does not have permission to access.

Solutions I tried that did not solve the issue:

I did confirm that having the mod active while setting the config to not add any custom pieces did not result in a crash when re-logging. Suggesting that enabling certain prefabs via Jotunn may be contributing to the issue.

Updating the mod for the newer version of Jotunn also did not resolve the issue.

So I am currently working on rewriting the mod to use the PieceManager library from Azumatt instead of Jotunn in the hopes that it will resolve the issue. Will still be without reliable internet for the next 4-5 days and pretty busy with work deadlines but I hope to give an update with good news before October 10th.

searica commented 1 year ago

All right, I have internet again and have uploaded a new version of the mod that fixes the crash caused when re-logging which should make it compatible with the multiverse mod now. Please let me know if the update resolves this issue for you when you get a chance to test it.

BLUBBSON commented 1 year ago

Hello, I'm in the process of testing it. Unfortunately, when I start the game, I get this error message, but when the game starts, jotuun and of course bepinex are installed

[Error : Unity Log] MissingFieldException: Field 'FejdStartup.m_connectionFailedError' not found. Stack trace: (wrapper dynamic-method) FejdStartup.DMD(FejdStartup,ZNet/ConnectionStatus) (wrapper dynamic-method) FejdStartup.DMD(FejdStartup)

and if you then want to enter a world, this also happens in a newly created world and an already existing world

[Error : Unity Log] NullReferenceException: Object reference not set to an instance of an object Stack trace: FejdStartup.OnWorldStart () (at <19c5e9736483495da0c4e300eb98ab45>:0) UnityEngine.Events.InvokableCall.Invoke () (at <80fe1a4e36fe44618284312cb721a597>:0) UnityEngine.Events.UnityEvent.Invoke () (at <80fe1a4e36fe44618284312cb721a597>:0) UnityEngine.UI.Button.Press () (at :0) UnityEngine.UI.Button.OnPointerClick (UnityEngine.EventSystems.PointerEventData eventData) (at :0) UnityEngine.EventSystems.ExecuteEvents.Execute (UnityEngine.EventSystems.IPointerClickHandler handler, UnityEngine.EventSystems.BaseEventData eventData) (at :0) UnityEngine.EventSystems.ExecuteEvents.Execute[T] (UnityEngine.GameObject target, UnityEngine.EventSystems.BaseEventData eventData, UnityEngine.EventSystems.ExecuteEvents+EventFunction`1[T1] functor) (at :0) UnityEngine.EventSystems.EventSystem:Update()

Then I hope the move is at least mostly completed ;)

Thank you for your work

BLUBBSON commented 1 year ago

At least that's the case in the single player server. I haven't tested it yet

searica commented 1 year ago

Thanks, just in the process of finishing unpacking now.

Hmm, so that seems like a new error that the recent update to Valheim has introduced. At first I was unable to replicate the issue until I realized a patch had been released (didn't realize due to prior lack of internet). After updating the game I was able to replicate the error. I have now recompiled the mod against the new patch for Valheim and the updated versions of BepInEx, Jotunn, and ServerSync which appears to have resolved the new errors. Seems like the previous version of ServerSync being incompatible with the new patch.

I have just uploaded version 0.1.4 of the mod to Thunderstore. Please let me know if this resolves the issue on your end as well.

BLUBBSON commented 1 year ago

Yes, I just discovered that too. Once I update the server, I'll take a look at it again, thank you :)

BLUBBSON commented 1 year ago

hello, it works wonderfully with multiverse incompatibility so officially eliminated, thank you very much then we can also use the mod, thank you for taking the time

searica commented 1 year ago

Perfect, thanks for letting me know it works.