RimWorld

RimWorld

Character Editor
arcbeast Jan 11, 2021 @ 7:00am
Multiplayer Compatibility [ RW 1.2 ]
MP mod: https://steamcommunity.com/sharedfiles/filedetails/?id=1752864297

When I attempt to load a character from a save slot into an existing 1.2 Multiplayer server as host, with no Arbiter or other players, the character loses their name. The bio tab is completely blank.

On creation via left click somewhere in world, 15 errors "Thing colonist is inaccessible" appear. Here is a relevant looking snippet out of the stack trace. The character shows up with a generic label like "Colonist" or "Hunter"

Thing colonist is inaccessible
Verse.Log:Error(String, Boolean)
...
Multiplayer.Client.SyncTemplates:General(String, Int32, Object, Object[])
Verse.Pawn:Verse.Pawn.set_Name_Patch0(Pawn, Name)
RimWorld.PawnBioAndNameGenerator:RimWorld.PawnBioAndNameGenerator.GiveShuffledBioTo_Patch0(Pawn, FactionDef, String, List`1)
RimWorld.PawnBioAndNameGenerator:RimWorld.PawnBioAndNameGenerator.GiveAppropriateBioAndNameTo_Patch1(Pawn, String, FactionDef)
CharacterEditor.PawnCreator:TryGenerateNewPawnInternal(PawnGenerationRequest&, String&, Boolean, Boolean)
CharacterEditor.PawnCreator:CreateNewPawn(PawnKindDef, Faction)
CharacterEditor.PresetPawnNew:GeneratePawn(Boolean)
CharacterEditor.PresetPawnNew:<LoadPawn>b__9_0()
Verse.DebugTool:DebugToolOnGUI()
...


After that, clicking on the bio tab causes it to show up blank and this appears in the log.

Exception filling tab RimWorld.ITab_Pawn_Character: System.NullReferenceException: Object reference not set to an instance of an object
at RimWorld.CharacterCardUtility.DrawCharacterCard (UnityEngine.Rect rect, Verse.Pawn pawn, System.Action randomizeCallback, UnityEngine.Rect creationRect) [0x00222] in <069e57a12a3f41bd86017630cd035414>:0
at (wrapper dynamic-method) RimWorld.ITab_Pawn_Character.RimWorld.ITab_Pawn_Character.FillTab_Patch2(RimWorld.ITab_Pawn_Character)
at Verse.InspectTabBase+<>c__DisplayClass14_0.<DoTabGUI>b__0 () [0x00039] in <069e57a12a3f41bd86017630cd035414>:0
Verse.Log:Error(String, Boolean)
Verse.Log:ErrorOnce(String, Int32, Boolean)
Verse.<>c__DisplayClass14_0:<DoTabGUI>b__0()
Verse.ImmediateWindow:DoWindowContents(Rect)
Verse.Window:InnerWindowOnGUI(Int32)
UnityEngine.GUI:CallWindowDelegate(WindowFunction, Int32, Int32, GUISkin, Int32, Single, Single, GUIStyle)

...

This particular character has the trait pessimist, and that still shows up as a penalty in the needs tab, so they still have traits.

Also using the mod "Level Up!" and when the character levels the level up message appears in the blank space of the bio screen briefly.

In the current version of multiplayer is not possible to "Convert to Single Player" without corrupting the save, so that is no longer a viable solution at the moment.