rwmt / multiplayer Goto Github PK
View Code? Open in Web Editor NEWZetrith's Multiplayer mod for RimWorld
License: MIT License
Zetrith's Multiplayer mod for RimWorld
License: MIT License
(Fix task list if you want use it)
Desync :
NotWorking :
Using FarSkyp from caravan is desyncing the game
• 1 Rimworld version: [1.2.2723 rev661]
• 2 Multiplayer mod version: [0.5.1.8]
• 3 Does the issue/desync happen when only harmony and the mp mod is enabled? [Yes]
• 4 Have you both tried to resubscribe/redownload* the mods?: [Yes]
• 5 Have you both tried to delete the "data" folder found in rimworlds directory and verifed the integrity of the game afterwards?: [Yes]
• 6 Are you all running the same language for rimworld?: [Yes, English]
• 7
Desync-07.zip
For psycast FarSkip from the map and Neuroquake nothing happen when we try using them
The pawn is Standing for 3/4 sec then Watching for targets
This quest send shuttle to pick some of you pawn. The shuttle travel the map and when it's the time to generate the bandit camp, we have this debug and shuttle stuck
This is 3 last report for this quest
https://discordapp.com/channels/524286515644203028/524286515644203030/744761888298238032
https://discordapp.com/channels/524286515644203028/524286515644203030/744330225482989588
https://discordapp.com/channels/524286515644203028/526116932655775744/744161856893222943
The debug log:
System.NullReferenceException: Object reference not set to an instance of an object
at RimWorld.TransportPodsArrivalAction_Shuttle.ShouldUseLongEvent (System.Collections.Generic.List`1[T] pods, System.Int32 tile) [0x00000] in <7b345446a85d4ed599f9c604ae61854b>:0
at RimWorld.Planet.TravelingTransportPods.Arrived () [0x0012f] in <7b345446a85d4ed599f9c604ae61854b>:0
at RimWorld.Planet.TravelingTransportPods.Tick () [0x00031] in <7b345446a85d4ed599f9c604ae61854b>:0
at RimWorld.Planet.WorldObjectsHolder.WorldObjectsHolderTick () [0x00029] in <7b345446a85d4ed599f9c604ae61854b>:0
at RimWorld.Planet.World.WorldTick () [0x00016] in <7b345446a85d4ed599f9c604ae61854b>:0
at (wrapper dynamic-method) Verse.TickManager.Verse.TickManager.DoSingleTick_Patch1(Verse.TickManager)
Verse.Log:Error(String, Boolean)
Verse.TickManager:Verse.TickManager.DoSingleTick_Patch1(TickManager)
Multiplayer.Client.MultiplayerWorldComp:Tick()
Multiplayer.Client.TickPatch:TickTickable(ITickable)
Multiplayer.Client.TickPatch:Tick()
Multiplayer.Client.TickPatch:Prefix()
Verse.TickManager:Verse.TickManager.TickManagerUpdate_Patch2(TickManager)
Verse.Game:UpdatePlay()
Verse.Root_Play:Update()
In a multiplayer game, when splitting a caravan, the dialog to select the subset of colonists+items for the new caravan is missing the travel supplies tab.
This means the split off caravan cannot be given any food and must starve.
Note: the items tab does not show the food/medicine/bedrolls.
Workaround: convert to single-player before splitting the caravan.
When someone conects to a full server, it just fails, doesn't tell you it is full.
I'm having an issue where the client seems to desync anytime a caravan from the initial base is formed. This happens on both regular time and async mode enabled and I can't figure out a way to fix the Rimworld instance (not even restarting), as every time a resync attempt occurs / the world tries to load again, the pawn is sent back on the caravan and the desync occurs again (pawns don't register as travelling in a caravan on host / client, depending on who settled it.) It doesn't matter what tile is being selected to travel to. If I manage to get both clients synced with an idle caravan on the world map by hosting the server after setting the caravan, if the host sets a destination for the caravan to travel to, the caravan doesn't register it on the client and a desync occurs instantly.
The only way to fix the issue is to restart the game on both client and host I believe.
There are no mods enabled other than Harmony and Multiplayer on both machines. Config files are all synced. Host in on Steam and Client is on GOG (but the error still occurs the other way around.) Host using the latest Workshop file, and GOG is using the latest Github download. Files were also reinstalled.
The client either gets hit with one of these three:
Random state from commands doesn't match
wrong random state on map 0
Map instnaces don't match
(<-- this one happens when a caravan settles on a tile in the world. The area is settled but the client gets the desync which begins the desync loop.)
This happens 100% of the time under the same circumstances. I've tested on about 5 different worlds.
Problem is similar to the one this Discord user was having, except my game fails to catch up after the desync: https://discordapp.com/channels/524286515644203028/702190105607143424/717033695994970162
De sync happens after selecting recipient of the royal favor on quest completion.
Tested with
Multiplayer: v0.5.0.25
Rimworld: 1.1.2618 & 1.1.2610
Just like the title says, THe workshop page links to the wrong github repo.
This is a link to my post on discord with the desync file + savefile :
https://discordapp.com/channels/524286515644203028/526116932655775744/735475916196544512
And when you choose someone it desync for the other people
The debug of the quest:
https://pastebin.com/mcBvk0AY (Expired on 24/07/2021)
You can load the save with only Harmony, Multiplayer + base file it's the same
Force bestowal ceremony cause desync.
I know this is a know issue
Report from discord :
With desync trace:
https://discordapp.com/channels/524286515644203028/696348995030614036/742637056848560279
Without trace:
https://discordapp.com/channels/524286515644203028/524286515644203030/745263628223119370
https://discordapp.com/channels/524286515644203028/526116932655775744/745063444717240392
https://discordapp.com/channels/524286515644203028/696348995030614036/742795522125070427
https://discordapp.com/channels/524286515644203028/526116932655775744/740479766024421416
Mod broken by 1.1.2647 patch. Desyncs at random and 'Form Caravan' button disabled. Tested on fresh install; only harmony, core, royal, multi.
Disclaimer - Playing with a ton of mods, 4s, 3s and lots of 0s. But, the only way to for sure prevent the issue is by not using async.
After some amount of time, the pawns will never elect to sleep again, and will constantly pass out exhausted. Loading an earlier save and hosting with async off fixes. All effected pawns get a 'canSleepTick' value in the save file. Uneffected pawns do not have that variable set in their block.
Setting to zero and re-hosting fixes, but it reoccurs unless async is off.
EDIT: took out < > around canSleepTick
Seems pretty consistent. Hosting a game with the arbiter and no other clients. When research completes, the notification window pops up as expected but the game no longer responds to UI inputs (you can x out just fine though) and the window popup sound loops endlessly. The game is basically softlocked here until what appears to be an autosave interval. After the autosave, the game resumes but immediately desyncs
Multiplayer game with 3 players.
When host activates the ability both clients will be de-synced.
If one of the clients tries to use the ability nothing happens and the client is getting de-sync.
Tested with
Multiplayer: v0.5.0.25
Rimworld: 1.1.2618 & 1.1.2610
Similar to how reforming caravans and trading outside of main settlement works, main-settlement trading and caravan forming should NOT force other players to have to participate.
It should pause the game as it does now to avoid weird behavior but players should be able to view pawns, quests, possibly build, queue up tasks etc. (if building and queuing up tasks could cause desync while one player is trading, this can be a "use with caution beta feature")
To simplify this, it could be a toggleable option when first hosting the game, something like: "Disable forced in-settlement caravan/trading dialog".
Thank you.
When running with a relative config path (for example `"-savedatapath=..\Config") all files fail validation.
Note that the path also seems to be cut off weirdly. If I tell the client to sync, it restarts and no longer shows a conflict. However, it has created a strange folder structure, replicating Client 1's full path under Client 2's folder. Deleting this folder causes the mod sync error to reappear on next connect.
Running the connecting client with the absolute path (eg: "-savedatapath=D:\Games\Rimworld Multiplayer\Test\Game Client 2\Config"
) still behaves the same, confirming it is a host-side issue.
Running the hosting client with an absolute path, while the connecting client is using a relative path, works fine. This seems to be something in the way the host is providing the config data to the client to compare.
Currently working around this using Powershell's Resolve-Path
in my launch script to force absolute paths on launch. In all tests above, the arbiter command line fix (from #124) is running on the host, however the issue can be repeated even without arbiter running.
It should have 6 buttons instead of 5.
Since my first report on discord i already redownloading the whole game
Report from discord:
https://discordapp.com/channels/524286515644203028/526116932655775744/747147339436785824
https://discordapp.com/channels/524286515644203028/526116932655775744/734559313871241356
https://discordapp.com/channels/524286515644203028/526116932655775744/679830285990494220
Test game condition:
Rimworld Version: v1.1.2610
Multiplayer Version: v0.5.0.25
Game is as Direct connect with static IP and proper port forwarding.
Internet connection was tested and no issues was detected (packet loss, latency & etc)
3 players on 3 maps with a total of 20 colonists.
If the game is set to run on a speed above normal like x2 or x3 players will start lagging in ticks behind the host.
on x2 speed it happens after few minutes of game play (ticks are growing, but slowly),
on x3 it is nearly instant.
The issue might be somewhat related to:
Zetrith/Multiplayer#79
Or
Parexy/Multiplayer#32
Since the host machine got AMD Ryzen Threadripper 2920X 12-Core Processor
No HW bottleneck was observed during game play session.
Tested the above and it seems it makes no difference on intel.
all of 3 players are on the high end HW, but both clients are on Intel based CPUs
the situation was somehow improved by removing excess of domesticated animals and cleaning up the maps from raiders bodies.
Current situation: Multiplayer works with minor issues, ready to ship.
Done...
Client/Multiplayer.cs
Client/MultiplayerMod.cs
Client/Designators.cs
Client/MpPatches.cs
Client/ScribeUtils.cs
Client/Sync/SyncSerialization.cs
Multiplayer.Common.ServerPlayingState
HandleSelected()
needs to account for 1.1 bigger selection limit.Client/Patches.cs
Client/Blueprints.cs
Client/DebugTools.cs
has been excluded from build
Client/Optimizations.cs
Client/ClientNetworking.cs
For the future...
Synchronization
After installing the 0.5.1.8 version of the Multiplayer mod i cannot start a new colony any more.
When i click on "New colony" i can choose a scenario but clicking "Next" doesn't do anything.
My game's version is 1.2.2753 and i have following other mods:
Harmony, ModManager, CommonSense, AllowTool, SimpleSidearms, SnapOut, WallLight, WorkTab & PickUpAndHaul.
I am sure this problem is because of the Multiplayer mod as after disabling it the game worked correctly.
Thanks for the support and the help!
I was trying to get the project setup to poke around and see what I could help with, but ran into an issue with the Publicise tool used to build Assembly-CSharp_public
.
I was following the setup steps from the hackmd book.
The project to build successfully
1>------ Rebuild All started: Project: MultiplayerAPI, Configuration: Debug Any CPU ------
1> MultiplayerAPI -> E:\Steam\steamapps\common\RimWorld\Mods\Multiplayer\Assemblies\0MultiplayerAPI.dll
2>------ Rebuild All started: Project: Multiplayer, Configuration: Debug Any CPU ------
2> '"E:\Steam\steamapps\common\RimWorld\Mods\Multiplayer\Source\..\Publicise\Publicise.exe"' is not recognized as an internal or external command,
2> operable program or batch file.
2>C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\MSBuild\Current\Bin\Microsoft.Common.CurrentVersion.targets(1328,5): error MSB3073: The command ""E:\Steam\steamapps\common\RimWorld\Mods\Multiplayer\Source\..\Publicise\Publicise.exe" "E:\Steam\steamapps\common\RimWorld\Mods\Multiplayer\Source\..\..\..\RimWorldWin64_Data\Managed\Assembly-CSharp.dll" "E:\Steam\steamapps\common\RimWorld\Mods\Multiplayer\Source\..\Publicise"" exited with code 9009.
========== Rebuild All: 1 succeeded, 1 failed, 0 skipped ==========
I got the project to build using the Publicize tool from the repo https://github.com/jacobEAdamson/publicize. With a little renaming and moving the tool into the folder expected I got the project to build.
Please add a released version for 1.2. It works on Steam workshop but the download says it's for 1.1 only
One source of desyncs + user friction is the need to sync up the mod configs from the more complex mods like Simple Sidearms.
Building on #41, it'd be neat to synchronize those on connect too - possibly any unknown file in the Config/HugsLib dir, excluding a whitelist of client-only mods like RimHUD/KeyPrefs.xml/Knowledge.xml
Example of problem:
Possible solution shapes:
AppData\LocalLow\Ludeon Studios\RimWorld by Ludeon Studios\Config
with their clients, redoing it if they edit anythingalong with some sort of 4. backup the client's configs, and let them restore them... somewhen.
Technical observations
Mod.GetSettings
or HugsLib's equivalent - maybe we can patch those to invent a reload()?Apologies for not posting an error message, but it should be easy to reproduce:
It didn't cause a desync or break the game, the ability just doesn't do anything, and a red error appears.
ass
on the Discorda desync right around when a colonist picked up a downed pawn to capture and started bringing it to a bed. I thought it was happening if no prisoner-designated beds existed before hosting the server but now after seeing the second behavior I can't reproduce that.
the pawn takes the capture order and the game desyncs when the pawn starts moving
Rehosting lets the capture continue
The captured still seems to be part of their original faction. Unless the prisoner status is the temp faction?
desync_before_capturing_pawn.zip
Hello, we have a problem when we change the sort of storage areas.
For example, the game crashes when I allow the pieces of stone to be stored in the storage areas.
There is the log:
RimWorld 1.1.2640 rev935
Fallback handler could not load library D:/Jeux/RimWorld.v1.1.2640/RimWorldWin64_Data/Mono/data-0000016489AD0090.dll
Fallback handler could not load library D:/Jeux/RimWorld.v1.1.2640/RimWorldWin64_Data/Mono/data-000001648766D010.dll
Fallback handler could not load library D:/Jeux/RimWorld.v1.1.2640/RimWorldWin64_Data/Mono/data-0000016489AC0080.dll
Fallback handler could not load library D:/Jeux/RimWorld.v1.1.2640/RimWorldWin64_Data/Mono/data-0000016489BCB010.dll
Fallback handler could not load library D:/Jeux/RimWorld.v1.1.2640/RimWorldWin64_Data/Mono/data-0000016489BDCA20.dll
Fallback handler could not load library D:/Jeux/RimWorld.v1.1.2640/RimWorldWin64_Data/Mono/data-0000016489C22840.dll
Fallback handler could not load library D:/Jeux/RimWorld.v1.1.2640/RimWorldWin64_Data/Mono/data-0000016489C39850.dll
Fallback handler could not load library D:/Jeux/RimWorld.v1.1.2640/RimWorldWin64_Data/Mono/data-0000016489D24020.dll
Fallback handler could not load library D:/Jeux/RimWorld.v1.1.2640/RimWorldWin64_Data/Mono/data-000001648768E190.dll
Fallback handler could not load library D:/Jeux/RimWorld.v1.1.2640/RimWorldWin64_Data/Mono/data-000001648A146150.dll
Current API version: 0.1
Translation data for language French has 20 errors. Generate translation report for more info.
(Filename: C:\buildslave\unity\build\Runtime/Export/Debug/Debug.bindings.h Line: 35)
Plugins: Failed to load 'simple_profiler' because one or more of its dependencies could not be loaded.
(Filename: C:\buildslave\unity\build\Runtime/Misc/Plugins.cpp Line: 292)
Fallback handler could not load library D:/Jeux/RimWorld.v1.1.2640/RimWorldWin64_Data/Mono/.\simple_profiler.dll
Fallback handler could not load library D:/Jeux/RimWorld.v1.1.2640/RimWorldWin64_Data/Mono/.\simple_profiler.dll
Fallback handler could not load library D:/Jeux/RimWorld.v1.1.2640/RimWorldWin64_Data/Mono/simple_profiler.dll
Fallback handler could not load library D:/Jeux/RimWorld.v1.1.2640/RimWorldWin64_Data/Mono/simple_profiler.dll
Fallback handler could not load library D:/Jeux/RimWorld.v1.1.2640/RimWorldWin64_Data/Mono/simple_profiler.dll
Fallback handler could not load library D:/Jeux/RimWorld.v1.1.2640/RimWorldWin64_Data/Mono/.\simple_profiler
Fallback handler could not load library D:/Jeux/RimWorld.v1.1.2640/RimWorldWin64_Data/Mono/.\simple_profiler.dll
Fallback handler could not load library D:/Jeux/RimWorld.v1.1.2640/RimWorldWin64_Data/Mono/simple_profiler
Fallback handler could not load library D:/Jeux/RimWorld.v1.1.2640/RimWorldWin64_Data/Mono/simple_profiler.dll
Fallback handler could not load library D:/Jeux/RimWorld.v1.1.2640/RimWorldWin64_Data/Mono/simple_profiler
Fallback handler could not load library D:/Jeux/RimWorld.v1.1.2640/RimWorldWin64_Data/Mono/.\libsimple_profiler.dll
Fallback handler could not load library D:/Jeux/RimWorld.v1.1.2640/RimWorldWin64_Data/Mono/.\libsimple_profiler.dll
Fallback handler could not load library D:/Jeux/RimWorld.v1.1.2640/RimWorldWin64_Data/Mono/libsimple_profiler.dll
Fallback handler could not load library D:/Jeux/RimWorld.v1.1.2640/RimWorldWin64_Data/Mono/libsimple_profiler.dll
Fallback handler could not load library D:/Jeux/RimWorld.v1.1.2640/RimWorldWin64_Data/Mono/libsimple_profiler.dll
Multiplayer version 0.5.0.25
Player's username: MajorAeon
Processor: Intel(R) Core(TM) i7-6700K CPU @ 4.00GHz
Exception during Sync initialization: System.TypeInitializationException: The type initializer for 'Multiplayer.Client.SyncDelegates' threw an exception. ---> System.Exception: Couldn't find method or property b__58_2 in type RimWorld.Building_TurretGun
at Multiplayer.Client.Sync.RegisterSyncMethod (System.Type type, System.String methodOrPropertyName, Multiplayer.API.SyncType[] argTypes) [0x0006f] in <82d92488c9c049b7bc529604cdbe3d7e>:0
at Multiplayer.Client.SyncMethod.Register (System.Type type, System.String methodOrPropertyName, Multiplayer.API.SyncType[] argTypes) [0x00000] in <82d92488c9c049b7bc529604cdbe3d7e>:0
at Multiplayer.Client.SyncDelegates..cctor () [0x001ba] in <82d92488c9c049b7bc529604cdbe3d7e>:0
--- End of inner exception stack trace ---
at (wrapper managed-to-native) System.Runtime.CompilerServices.RuntimeHelpers.RunClassConstructor(intptr)
at System.Runtime.CompilerServices.RuntimeHelpers.RunClassConstructor (System.RuntimeTypeHandle type) [0x0002a] in <567df3e0919241ba98db88bec4c6696f>:0
at Multiplayer.Client.SyncHandlers.Init () [0x00037] in <82d92488c9c049b7bc529604cdbe3d7e>:0
at Multiplayer.Client.Multiplayer..cctor () [0x002c6] in <82d92488c9c049b7bc529604cdbe3d7e>:0
(Filename: C:\buildslave\unity\build\Runtime/Export/Debug/Debug.bindings.h Line: 35)
Anotated patches
General designation patches
non-deterministic patches
non-deterministic patches
floating point patches
map time gui patches
Mod patches
The Arbiter 0 Net client connected
ArgumentNullException: Value cannot be null.
Parameter name: src
at System.Buffer.BlockCopy (System.Array src, System.Int32 srcOffset, System.Array dst, System.Int32 dstOffset, System.Int32 count) [0x00003] in <567df3e0919241ba98db88bec4c6696f>:0
at LiteNetLib.Utils.NetDataReader.GetRemainingBytes () [0x00020] in <33d01d33713f4808bb562d0819377e58>:0
at Multiplayer.Client.MpClientNetListener.OnPeerDisconnected (LiteNetLib.NetPeer peer, LiteNetLib.DisconnectInfo info) [0x00000] in <82d92488c9c049b7bc529604cdbe3d7e>:0
at LiteNetLib.NetManager.ProcessEvent (LiteNetLib.NetEvent evt) [0x00089] in <33d01d33713f4808bb562d0819377e58>:0
at LiteNetLib.NetManager.PollEvents () [0x0003b] in <33d01d33713f4808bb562d0819377e58>:0
at Multiplayer.Client.OnMainThread.Update () [0x00014] in <82d92488c9c049b7bc529604cdbe3d7e>:0
(Filename: <567df3e0919241ba98db88bec4c6696f> Line: 0)
There have been several reports as of 1.1 of desyncs when Traders/Raiders arrive, though its unclear exactly why, as most don't experience that.
It may be related to 'Pause on Events' having a different setting between clients. That, along with some other settings like Pause on Load and Run in Background are supposed to be forced to specific values when Multiplayer is active, but those patches seem to be inconsistently working in 1.1...
(Fix task list if you want use it)
Desync :
Using them when drafted will cause desync, gui isn't synced
Report from discord:
For both:
Without desync trace:
https://discordapp.com/channels/524286515644203028/696348995030614036/744605888433750076
https://discordapp.com/channels/524286515644203028/696348995030614036/744476216609996861
Only for SmokePop Belt
Desync trace:
https://discordapp.com/channels/524286515644203028/696348995030614036/745057442513289227
Only for BroadShield
Desync trace:
https://discordapp.com/channels/524286515644203028/696348995030614036/745365460618313808
Feature suggestion + PR:
Synchronize the game's soundtrack between the host and the connected players
Reproduced on vanilla Rimword+Royalty 1.2.2753 (both Steam and non-Steam) on Windows 10 20H2 with only Harmony and Multiplayer (both latest versions) enabled.
Steps to reproduce:
-savedatafolder=Local
The abiter_log.txt
shows the following relevant lines:
Command line arguments: -batchmode -nographics -arbiter -logfile arbiter_log.txt -connect=127.0.0.1:55054 -savedatafolder="Local"
RimWorld 1.2.2753 rev705
Save data folder overridden to "Local"
Critical error in root Start(): System.ArgumentException: Illegal characters in path.
at System.IO.DirectoryInfo.CheckPath (System.String path) [0x0002f] in <567df3e0919241ba98db88bec4c6696f>:0
at System.IO.DirectoryInfo..ctor (System.String path, System.Boolean simpleOriginalPath) [0x00006] in <567df3e0919241ba98db88bec4c6696f>:0
at System.IO.DirectoryInfo..ctor (System.String path) [0x00000] in <567df3e0919241ba98db88bec4c6696f>:0
at (wrapper remoting-invoke-with-check) System.IO.DirectoryInfo..ctor(string)
at Verse.GenFilePaths.get_SaveDataFolderPath () [0x000ec] in <6326ac03f61f45efb3178f3bfd084139>:0
at Verse.GenFilePaths.FolderUnderSaveData (System.String folderName) [0x00000] in <6326ac03f61f45efb3178f3bfd084139>:0
at Verse.GenFilePaths.get_ConfigFolderPath () [0x00000] in <6326ac03f61f45efb3178f3bfd084139>:0
at Verse.GenFilePaths.get_PrefsFilePath () [0x00000] in <6326ac03f61f45efb3178f3bfd084139>:0
at Verse.Prefs.Init () [0x00000] in <6326ac03f61f45efb3178f3bfd084139>:0
at Verse.Root.CheckGlobalInit () [0x0004f] in <6326ac03f61f45efb3178f3bfd084139>:0
at Verse.Root.Start () [0x0000a] in <6326ac03f61f45efb3178f3bfd084139>:0
(Filename: C:\buildslave\unity\build\Runtime/Export/Debug/Debug.bindings.h Line: 35)
Critical error in root Start(): System.ArgumentException: Illegal characters in path.
at System.IO.Path.Combine (System.String path1, System.String path2) [0x0003e] in <567df3e0919241ba98db88bec4c6696f>:0
at Verse.GenFilePaths.FolderUnderSaveData (System.String folderName) [0x00005] in <6326ac03f61f45efb3178f3bfd084139>:0
at Verse.GenFilePaths.get_SavedGamesFolderPath () [0x00000] in <6326ac03f61f45efb3178f3bfd084139>:0
at Verse.GenFilePaths.get_AllSavedGameFiles () [0x00000] in <6326ac03f61f45efb3178f3bfd084139>:0
at Verse.SaveGameFilesUtility.GetAutostartSaveFile () [0x00009] in <6326ac03f61f45efb3178f3bfd084139>:0
at Verse.Root_Entry.Start () [0x0001e] in <6326ac03f61f45efb3178f3bfd084139>:0
(Filename: C:\buildslave\unity\build\Runtime/Export/Debug/Debug.bindings.h Line: 35)
This is then followed by a the following entries endlessly repeating forever:
Root level exception in Update(): System.NullReferenceException: Object reference not set to an instance of an object
at RimWorld.MusicManagerEntry.StartPlaying () [0x000a1] in <6326ac03f61f45efb3178f3bfd084139>:0
at RimWorld.MusicManagerEntry.MusicManagerEntryUpdate () [0x0001b] in <6326ac03f61f45efb3178f3bfd084139>:0
at Verse.Root_Entry.Update () [0x00017] in <6326ac03f61f45efb3178f3bfd084139>:0
(Filename: C:\buildslave\unity\build\Runtime/Export/Debug/Debug.bindings.h Line: 35)
Root level exception in Update(): System.NullReferenceException: Object reference not set to an instance of an object
at RimWorld.ResolutionUtility.Update () [0x0001f] in <6326ac03f61f45efb3178f3bfd084139>:0
at Verse.Root.Update () [0x00000] in <6326ac03f61f45efb3178f3bfd084139>:0
(Filename: C:\buildslave\unity\build\Runtime/Export/Debug/Debug.bindings.h Line: 35)
Have confirmed that The Arbiter works perfectly if the savedatafolder is not set, however this means it is not possible to have a "clean portable multiplayer copy" in order to keep config/mods/etc clean and always matching.
I have not been able to determine if this is an issue with the Rimworld core, as it only affects The Arbiter. The actual client loads from the specified folder just fine and multiplayer connects and works.
When the multiplayer mod is comparing configs and ensuring the systems are synchronized it fails to account for differences in line encoding between platforms.
diff -ub shows no difference (-b ignores non-printing characters like line endings), and the difference in file-size also makes a strong case that the only difference is the line endings.
Examining the smaller two files with a hex-view also makes it clear that line endings are the cause of the difference.
543 ./Config/Mod_1127530465_RimatomicsMod.xml
556 ./Windows/Mod_1127530465_RimatomicsMod.xml
5119 ./HugsLib/SpottedMods.xml
5230 ./Windows/SpottedMods.xml
This is where the bug exists
Multiplayer/Source/Client/ModManagement.cs
Line 168 in a7e8c8b
I agree with this stackoverflow example, that a regular expression is the correct answer.
https://stackoverflow.com/a/8196219/825613 ( string result = Regex.Replace(input, @"\r\n?|\n", replacementString); )
I hereby assert that the following is obvious to anyone skilled in the 'art'. I refuse to attempt to claim any copyright or any other sort of rights in relation to it. I just want this mod to work.
var localFileContents = Regex.Replace(File.ReadAllText(localFileName), @"\r\n?|\n", "\n");
Additional documentation if necessary:
https://docs.microsoft.com/en-us/dotnet/api/system.text.regularexpressions.regex.replace?view=netcore-3.1#System_Text_RegularExpressions_Regex_Replace_System_String_System_String_System_String_
Try opening comms with any faction to trade: the window opens infinitely (the sound loops), which effectively locks the game.
The same symptom, for the 'research completed' window, was fixed by 39e9c3a
In this save, there's a comms console in the bottom-left area of the base.
replay-with-comms-console.zip
Multiplayer game with 3 players.
De sync guaranteed to happen if one of the following pulse abilities is used:
Blinding Pulse
Berserk Pulse
Vertigo Pulse
After de-sync the host need to re host the game since clients will not be able to re sync on their own.
Tested with:
Rimworld Version: RimWorld v1.1.2610
Multiplayer version: v0.5.0.22
P.S. LOVE your mod !!!!!
The ability to split off and not work co-operatively would be much appreciated. Some major problems with "just pretending" right now is that your pawns are effected by moods that have nothing to do with your settlement. Take for example, I was playing a game with 3 friends all on separate tiles. One person started an organ harvesting op, and everyone was punished for it. So if it isn't possible to have different factions, it would be nice to not have these debuffs be applied to pawns on every tile.
To reproduce: Host a game from main menu and then unfocus the game. Notice that loading progress will not go any further until you focus the game again.
But after game was loaded and simulated unfocusing the game won't stop it.
It is really annoying.
When the host completes an action that changes game data, e.g. adding a task to a workbench or forbidding an item, at the exact same time the save triggers, the game desyncs within a minute after the save. I can not say if this is an issue on the client also. The timing needed is within the milliseconds ballpark, to the user it feels as if the click actually triggered the save.
Now, I realize that this should be a once in a blue moon problem, but this tight timing happens far more often than is statistically probable. While inconsequential clicks, e.g. opening an info window, are not a problem, they too coincide with auto-saves often. Whatever triggers the check if an auto-save is due must be somehow tied to user action (among other things).
Any change made is present in the game after the save, but not in the save itself. I wonder if the action is not communicated to the client(s) or the arbiter due to the save freeze, or if things somehow involve the RNG and are communicated in the wrong order. I will try to verify the status of the action on the client at the next opportunity.
When i'm playing and activate the mod, the tab "multiplayer" isn't displayed. What do I do? I have the harmony and i'm in the correct version of the game.
the title is self-explanatory, right? When surrounding traders with walls, a desync happens for all connected clients. It happened pretty consistently, I can submit a save if you want.
I'm moderately colorblind, and the red cursor of the other players is almost indistinguishable for me.
Is there any way to change the color to something else? I'd prefer something blue or high value green, but a configurable option would be good too.
When will it come out?
What does it mean to have MP compat (3) and MP compat (4). I have downloaded the mp compatibility mod but the numbers are still [1]/ [2] / [3]
i wanted to ask other user in the discord before but after searching for like 30 mins for a green checkmark (what ever that may be) i have to go this way.
every time i used the royal feature giving a speech the game desynced. the game is modded so it would be much better if i could ask other user first if they have the same problem but it is as it is.
i have more stuff like rimatomic shouldn't be a "4" because the liberator doesn't work in multiplayer it's complaining that the scas isn't manned even if it's manned.
Both 1.1 and current 1.0 versions are affected. After Try resync
is selected, world is simulated (seemingly) successfully, but nothing happen after (for all connected players, including host). Child process (desync tracer) idle as if game was on pause.
RimWorld 1.1.2647 Starting from the mods menu, only using the latest Harmony 2.0.1 and Multiplayer 0.5.1.0. Causes "Close" button to disappear when pressing on Multiplayer, attempt to create a colony even in singleplayer makes Storyteller menu to appear blank, loading existing save starts the game without any UI and empty small window in the middle. Debug log gets filled with the same exception multiple times during that.
This was from Pardeike on the old repo.
https://github.com/rwmt/Multiplayer/wiki/Async-time
Says "this feature is currently disabled"
We're playing right now and you definitely can pause time separately in our two colonies.
So please just select that "disabled" line and hit delete. Done.
I'd do it myself but I can't figure out how. I assume the wiki can't be updated except by owners.
Tried on both computer, re-downloading the game, different ressource for the build.
I'm bit confuse because NotFood say she doesn't have any problem with :/.
But that strange.. Could be one mod i downloaded without activate them ?
The save is fresh and full vanilla, i forced the quest in solo then host the game and accept the quest once i'm in MP with arbiter joined.
Reproduce:
• 1 Rimworld version: [1.2.2723 rev661]
• 2 Multiplayer mod version: [0.5.1.8]
• 3 Does the issue/desync happen when only harmony and the mp mod is enabled? [Yes]
• 4 Have you both tried to resubscribe/redownload* the mods?: [Yes]
• 5 Have you both tried to delete the "data" folder found in rimworlds directory and verifed the integrity of the game afterwards?: [Yes]
• 6 Are you all running the same language for rimworld?: [Yes, English]
• 7
Desync-03.zip
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.