KiameV / rimworld-weaponstorage

Storage for weapons and the ability to quickly equip weaponry.
MIT License
1 stars 1 forks source link

Error when saving (auto/manual) #8

Open tukoz opened 3 years ago

tukoz commented 3 years ago

RimWorld v1.2.2753 64-bit KV Weapon Storage 1.0.0.0.0

Hey, this error show up at every auto-save (seems to occur since we built a repair attachment):

In red:

Exception while saving WeaponStorage.AssignedWeaponContainer: System.NullReferenceException: Object reference not set to an instance of an object
  at WeaponStorage.AssignedWeaponContainer.ExposeData () [0x0001e] in <16de0203884b4079a3c644fffebf8866>:0
  at Verse.Scribe_Deep.Look[T] (T& target, System.Boolean saveDestroyedThings, System.String label, System.Object[] ctorArgs) [0x0016a] in <b02b390b894d4487a224faae4a3db641>:0
Verse.Log:Error(String, Boolean)
Verse.Scribe_Deep:Look(AssignedWeaponContainer&, Boolean, String, Object[])
Verse.Scribe_Collections:Look(List`1&, Boolean, String, LookMode, Object[])
Verse.Scribe_Collections:Look(List`1&, String, LookMode, Object[])
WeaponStorage.WorldComp:ExposeData()
Verse.Scribe_Deep:Look(WorldComponent&, Boolean, String, Object[])
Verse.Scribe_Collections:Look(List`1&, Boolean, String, LookMode, Object[])
Verse.Scribe_Collections:Look(List`1&, String, LookMode, Object[])
RimWorld.Planet.World:ExposeComponents()
RimWorld.Planet.World:ExposeData()
Verse.Scribe_Deep:Look(World&, Boolean, String, Object[])
Verse.Scribe_Deep:Look(World&, String, Object[])
Verse.Game:ExposeData()
Verse.Scribe_Deep:Look(Game&, Boolean, String, Object[])
Verse.Scribe_Deep:Look(Game&, String, Object[])
Verse.<>c:<SaveGame>b__13_0()
Verse.SafeSaver:DoSave(String, String, Action)
Verse.SafeSaver:Save(String, String, Action, Boolean)
Verse.GameDataSaveLoader:Verse.GameDataSaveLoader.SaveGame_Patch2(String)
RimWorld.Autosaver:DoAutosave()
Verse.LongEventHandler:Verse.LongEventHandler.UpdateCurrentSynchronousEvent_Patch2(Boolean&)
Verse.LongEventHandler:LongEventsUpdate(Boolean&)
Verse.Root:Verse.Root.Update_Patch1(Root)
Verse.Root_Play:Update()

Then in yellow:

DebugLoadIDsSavingErrorsChecker error: tried to register deep-saved object with loadID Verb_CompEquippable_Gun_BoltActionRifle846785_0, but it's already here. label=li (not cleared after the previous save? different objects have the same load ID? the same object is deep-saved twice?)
Verse.Log:Warning(String, Boolean)
Verse.DebugLoadIDsSavingErrorsChecker:RegisterDeepSaved(Object, String)
Verse.Scribe_Deep:Look(Verb&, Boolean, String, Object[])
Verse.Scribe_Collections:Look(List`1&, Boolean, String, LookMode, Object[])
Verse.Scribe_Collections:Look(List`1&, String, LookMode, Object[])
Verse.VerbTracker:ExposeData()
Verse.Scribe_Deep:Look(VerbTracker&, Boolean, String, Object[])
Verse.Scribe_Deep:Look(VerbTracker&, String, Object[])
Verse.CompEquippable:PostExposeData()
Verse.ThingWithComps:Verse.ThingWithComps.ExposeData_Patch2(ThingWithComps)
Verse.Scribe_Deep:Look(ThingWithComps&, Boolean, String, Object[])
Verse.Scribe_Collections:Look(List`1&, Boolean, String, LookMode, Object[])
WeaponStorage.Building_WeaponStorage:ExposeData()
Verse.Scribe_Deep:Look(Thing&, Boolean, String, Object[])
Verse.Scribe_Deep:Look(Thing&, String, Object[])
Verse.Map:Verse.Map.ExposeData_Patch1(Map)
Verse.Scribe_Deep:Look(Map&, Boolean, String, Object[])
Verse.Scribe_Collections:Look(List`1&, Boolean, String, LookMode, Object[])
Verse.Scribe_Collections:Look(List`1&, String, LookMode, Object[])
Verse.Game:ExposeData()
Verse.Scribe_Deep:Look(Game&, Boolean, String, Object[])
Verse.Scribe_Deep:Look(Game&, String, Object[])
Verse.<>c:<SaveGame>b__13_0()
Verse.SafeSaver:DoSave(String, String, Action)
Verse.SafeSaver:Save(String, String, Action, Boolean)
Verse.GameDataSaveLoader:Verse.GameDataSaveLoader.SaveGame_Patch2(String)
RimWorld.Autosaver:DoAutosave()
Verse.LongEventHandler:Verse.LongEventHandler.UpdateCurrentSynchronousEvent_Patch2(Boolean&)
Verse.LongEventHandler:LongEventsUpdate(Boolean&)
Verse.Root:Verse.Root.Update_Patch1(Root)
Verse.Root_Play:Update()

Also this shows up when manually saving: In yellow:

DebugLoadIDsSavingErrorsChecker error: tried to register deep-saved object with loadID Verb_CompEquippable_Gun_BoltActionRifle846785_0, but it's already here. label=li (not cleared after the previous save? different objects have the same load ID? the same object is deep-saved twice?)
Verse.Log:Warning(String, Boolean)
Verse.DebugLoadIDsSavingErrorsChecker:RegisterDeepSaved(Object, String)
Verse.Scribe_Deep:Look(Verb&, Boolean, String, Object[])
Verse.Scribe_Collections:Look(List`1&, Boolean, String, LookMode, Object[])
Verse.Scribe_Collections:Look(List`1&, String, LookMode, Object[])
Verse.VerbTracker:ExposeData()
Verse.Scribe_Deep:Look(VerbTracker&, Boolean, String, Object[])
Verse.Scribe_Deep:Look(VerbTracker&, String, Object[])
Verse.CompEquippable:PostExposeData()
Verse.ThingWithComps:Verse.ThingWithComps.ExposeData_Patch2(ThingWithComps)
Verse.Scribe_Deep:Look(ThingWithComps&, Boolean, String, Object[])
Verse.Scribe_Deep:Look(ThingWithComps&, String, Object[])
WeaponStorage.AssignedWeapon:ExposeData()
Verse.Scribe_Deep:Look(AssignedWeapon&, Boolean, String, Object[])
Verse.Scribe_Collections:Look(List`1&, Boolean, String, LookMode, Object[])
Verse.Scribe_Collections:Look(List`1&, String, LookMode, Object[])
WeaponStorage.AssignedWeaponContainer:ExposeData()
Verse.Scribe_Deep:Look(AssignedWeaponContainer&, Boolean, String, Object[])
Verse.Scribe_Collections:Look(List`1&, Boolean, String, LookMode, Object[])
Verse.Scribe_Collections:Look(List`1&, String, LookMode, Object[])
WeaponStorage.WorldComp:ExposeData()
Verse.Scribe_Deep:Look(WorldComponent&, Boolean, String, Object[])
Verse.Scribe_Collections:Look(List`1&, Boolean, String, LookMode, Object[])
Verse.Scribe_Collections:Look(List`1&, String, LookMode, Object[])
RimWorld.Planet.World:ExposeComponents()
RimWorld.Planet.World:ExposeData()
Verse.Scribe_Deep:Look(World&, Boolean, String, Object[])
Verse.Scribe_Deep:Look(World&, String, Object[])
Verse.Game:ExposeData()
Verse.Scribe_Deep:Look(Game&, Boolean, String, Object[])
Verse.Scribe_Deep:Look(Game&, String, Object[])
Verse.<>c:<SaveGame>b__13_0()
Verse.SafeSaver:DoSave(String, String, Action)
Verse.SafeSaver:Save(String, String, Action, Boolean)
Verse.GameDataSaveLoader:Verse.GameDataSaveLoader.SaveGame_Patch2(String)
RimWorld.<>c__DisplayClass3_0:<DoFileInteraction>b__0()
Verse.LongEventHandler:Verse.LongEventHandler.UpdateCurrentSynchronousEvent_Patch2(Boolean&)
Verse.LongEventHandler:LongEventsUpdate(Boolean&)
Verse.Root:Verse.Root.Update_Patch1(Root)
Verse.Root_Play:Update()

In red:

Exception while saving WeaponStorage.AssignedWeaponContainer: System.NullReferenceException: Object reference not set to an instance of an object
  at WeaponStorage.AssignedWeaponContainer.ExposeData () [0x0001e] in <16de0203884b4079a3c644fffebf8866>:0 
  at Verse.Scribe_Deep.Look[T] (T& target, System.Boolean saveDestroyedThings, System.String label, System.Object[] ctorArgs) [0x0016a] in <b02b390b894d4487a224faae4a3db641>:0 
Verse.Log:Error(String, Boolean)
Verse.Scribe_Deep:Look(AssignedWeaponContainer&, Boolean, String, Object[])
Verse.Scribe_Collections:Look(List`1&, Boolean, String, LookMode, Object[])
Verse.Scribe_Collections:Look(List`1&, String, LookMode, Object[])
WeaponStorage.WorldComp:ExposeData()
Verse.Scribe_Deep:Look(WorldComponent&, Boolean, String, Object[])
Verse.Scribe_Collections:Look(List`1&, Boolean, String, LookMode, Object[])
Verse.Scribe_Collections:Look(List`1&, String, LookMode, Object[])
RimWorld.Planet.World:ExposeComponents()
RimWorld.Planet.World:ExposeData()
Verse.Scribe_Deep:Look(World&, Boolean, String, Object[])
Verse.Scribe_Deep:Look(World&, String, Object[])
Verse.Game:ExposeData()
Verse.Scribe_Deep:Look(Game&, Boolean, String, Object[])
Verse.Scribe_Deep:Look(Game&, String, Object[])
Verse.<>c:<SaveGame>b__13_0()
Verse.SafeSaver:DoSave(String, String, Action)
Verse.SafeSaver:Save(String, String, Action, Boolean)
Verse.GameDataSaveLoader:Verse.GameDataSaveLoader.SaveGame_Patch2(String)
RimWorld.<>c__DisplayClass3_0:<DoFileInteraction>b__0()
Verse.LongEventHandler:Verse.LongEventHandler.UpdateCurrentSynchronousEvent_Patch2(Boolean&)
Verse.LongEventHandler:LongEventsUpdate(Boolean&)
Verse.Root:Verse.Root.Update_Patch1(Root)
Verse.Root_Play:Update()
tukoz commented 3 years ago
  1. When loading a game comes this:

In red:

Could not do PostLoadInit on WeaponStorage.AssignedWeaponContainer: System.NullReferenceException: Object reference not set to an instance of an object
at WeaponStorage.AssignedWeaponContainer.ExposeData () [0x000f9] in <16de0203884b4079a3c644fffebf8866>:0
at Verse.PostLoadIniter.DoAllPostLoadInits () [0x00032] in <b02b390b894d4487a224faae4a3db641>:0
Verse.Log:Error(String, Boolean)
Verse.PostLoadIniter:DoAllPostLoadInits()
Verse.ScribeLoader:FinalizeLoading()
Verse.Game:Verse.Game.LoadGame_Patch1(Game)
Verse.SavedGameLoaderNow:Verse.SavedGameLoaderNow.LoadGameFromSaveFileNow_Patch1(String)
Verse.<>c:<Start>b__1_1()
Verse.LongEventHandler:RunEventFromAnotherThread(Action)
Verse.<>c:<UpdateCurrentAsynchronousEvent>b__27_0()
System.Threading.ThreadHelper:ThreadStart_Context(Object)
System.Threading.ExecutionContext:RunInternal(ExecutionContext, ContextCallback, Object, Boolean)
System.Threading.ExecutionContext:Run(ExecutionContext, ContextCallback, Object, Boolean)
System.Threading.ExecutionContext:Run(ExecutionContext, ContextCallback, Object)
System.Threading.ThreadHelper:ThreadStart()

And

Cannot register Verse.ThingWithComps Gun_BoltActionRifle846785, (id=Thing_Gun_BoltActionRifle846785 in loaded object directory. Id already used by Verse.ThingWithComps Gun_BoltActionRifle846785.
Verse.Log:Error(String, Boolean)
Verse.LoadedObjectDirectory:RegisterLoaded(ILoadReferenceable)
Verse.CrossRefHandler:ResolveAllCrossReferences()
Verse.ScribeLoader:FinalizeLoading()
Verse.Game:Verse.Game.LoadGame_Patch1(Game)
Verse.SavedGameLoaderNow:Verse.SavedGameLoaderNow.LoadGameFromSaveFileNow_Patch1(String)
Verse.<>c:<Start>b__1_1()
Verse.LongEventHandler:RunEventFromAnotherThread(Action)
Verse.<>c:<UpdateCurrentAsynchronousEvent>b__27_0()
System.Threading.ThreadHelper:ThreadStart_Context(Object)
System.Threading.ExecutionContext:RunInternal(ExecutionContext, ContextCallback, Object, Boolean)
System.Threading.ExecutionContext:Run(ExecutionContext, ContextCallback, Object, Boolean)
System.Threading.ExecutionContext:Run(ExecutionContext, ContextCallback, Object)
System.Threading.ThreadHelper:ThreadStart()

Cannot register Verse.Verb_Shoot Verse.Verb_Shoot(null), (id=Verb_CompEquippable_Gun_BoltActionRifle846785_0 in loaded object directory. Id already used by Verse.Verb_Shoot Verse.Verb_Shoot(null).
Verse.Log:Error(String, Boolean)
Verse.LoadedObjectDirectory:RegisterLoaded(ILoadReferenceable)
Verse.CrossRefHandler:ResolveAllCrossReferences()
Verse.ScribeLoader:FinalizeLoading()
Verse.Game:Verse.Game.LoadGame_Patch1(Game)
Verse.SavedGameLoaderNow:Verse.SavedGameLoaderNow.LoadGameFromSaveFileNow_Patch1(String)
Verse.<>c:<Start>b__1_1()
Verse.LongEventHandler:RunEventFromAnotherThread(Action)
Verse.<>c:<UpdateCurrentAsynchronousEvent>b__27_0()
System.Threading.ThreadHelper:ThreadStart_Context(Object)
System.Threading.ExecutionContext:RunInternal(ExecutionContext, ContextCallback, Object, Boolean)
System.Threading.ExecutionContext:Run(ExecutionContext, ContextCallback, Object, Boolean)
System.Threading.ExecutionContext:Run(ExecutionContext, ContextCallback, Object)
System.Threading.ThreadHelper:ThreadStart()

Yellow:

Unable to load pawn []. Re-storing assigned weapons
Verse.Log:Warning(String, Boolean)
WeaponStorage.WorldComp:ExposeData()
Verse.PostLoadIniter:DoAllPostLoadInits()
Verse.ScribeLoader:FinalizeLoading()
Verse.Game:Verse.Game.LoadGame_Patch1(Game)
Verse.SavedGameLoaderNow:Verse.SavedGameLoaderNow.LoadGameFromSaveFileNow_Patch1(String)
Verse.<>c:<Start>b__1_1()
Verse.LongEventHandler:RunEventFromAnotherThread(Action)
Verse.<>c:<UpdateCurrentAsynchronousEvent>b__27_0()
System.Threading.ThreadHelper:ThreadStart_Context(Object)
System.Threading.ExecutionContext:RunInternal(ExecutionContext, ContextCallback, Object, Boolean)
System.Threading.ExecutionContext:Run(ExecutionContext, ContextCallback, Object, Boolean)
System.Threading.ExecutionContext:Run(ExecutionContext, ContextCallback, Object)
System.Threading.ThreadHelper:ThreadStart()