-
Notifications
You must be signed in to change notification settings - Fork 23
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Fixed synchronization of weathers and interiors #96
Conversation
- ServerRPCs can only be called by clients and ClientRPCs can only be called by server. The issue here was that the check made to call the ServerRPCs was only to see if it was a server, which doesn't make sense because the server can't make a ServerRPC call. - Fixes IAmBatby#92
For the time those bugs are not fixed into the official version, would you know how I can compile those fixes myself ? I've tried multiple times to compile the mod from source, but I'm always blocked by private or internal attributes being accessed directly from the mod, which results in compilation error. |
Yes or could you upload your version to Thunderstore? |
Should just need to publicize |
@WhiteSpike I will fork this repo and implement your fixes as a temporary solution if you approve. Route to company and desyncs. |
Fine by me. They worked between two local instances. I cannot guarantee that they are actually fixed as the weather/dungeon sync was a matter of data race. Batby is thinking of an alternative solution to this as they do not wish to have all clients tell the server to execute code (which is what this fix does) but rather have server make a result and output it to all clients to use for weather/dungeon. |
Has to wait, there are a lot of libraries and referenced components locally so I need to remap those. |
I'm not sure that the fixes work. When someone tried to join me, they were stuck in a black screen. This one was caused by the SetPlanetsWeather_Postfix function (that had been modified with the fix) After messing with the code myself and making that postfix function do nothing, the other player got kicked while I got the eternal random seed screen. (I was not sure what to change actually) Note : for those tests, I had several modded planet mods that use LethalLevelLoader |
Hello, I've been struggling with uploading to thunderstore and went through 4 versions in 4 hours, could be that I accidentally broke something, 1.2.10 should be uploaded correctly after an eternity, could you try as soon as the thunderstore has refreshed? |
Actually, I tried with my local version (without thunderstore) and the same issue happens, I think my build has failed and I will deprecate this (unfortunately) EDIT: Sorry for wasting time. The only tests I did was booting the game up and routing to the company (which worked) |
I don't think your build has failed, because when I compiled the fix by myself, the same happened. It might be the way LethalLevelLoader is made that does not allow to change that portion of code (at least without big changes). |
Then I wonder how @WhiteSpike has tested this. (No sarcasm intended)
Also thanks @LinkTroisUn for checking this aswell. |
I didn't commit the changes I did on the csproj file. So if you haven't changed the paths according to your machine, it won't recognize core components to compile. |
No we both correctly compiled it but it doesnt work
|
I made sure I had the necessary dependencies and that MY .dll was the one used to be LethalLevelLoader, NOT the one in the Thunderstore. |
I ran it locally without thunderstore, I cant tell for the other person that tried it aswell, but honestly this is way too complicated for me. This is what I had edited in my own csproj to match my paths: |
Don't really see a reason for it to not work. |
I overwrited the dll of LethalLevelLoader in the Bepinex/plugins/"insert lethal level loader path"/ folder with my self compiled one |
The only noteworthy logs I get with Log Level: Debug, Unity logs and LethaLevelLoader logs are:
After this no more logs, everything just stops. |
More extensive log and screenshot: |
I forgot the case of just being the host (Because if there are no clients other than host, it won't sync thus this is not a good solution). I will think of a better way for this later. |
This reverts commit 592b243.
ServerRPCs can only be called by clients and ClientRPCs can only be called by server. The issue here was that the check made to call the ServerRPCs was only to see if it was a server, which doesn't make sense because the server can't make a ServerRPC call.
Fixes Desynchronization #92 , fixes 1.2.2 Adding the interior and modifying the map at the same time will cause the map to be out of sync #79 , fixes When will map desync be fixed?? #62 , fixes [Bug] LLL seems to be causing weather desync #57 , fixes it spawned different dungeons on the same planet #55 , fixes Custom moons weather is not synced #43