RimWorld

RimWorld

The Monocle
Bug Reports
Good evening.

I have no idea how this happened, but I have actually found a bug it this Mod, It somehow fixed itself. I managed to catalog it anyway, and I hope it can help you.

Anyone else experiencing similar problems is free to join me in aiding this Mod's author.


Thank you.
-TURTLESHROOM
< >
Showing 1-2 of 2 comments
TurtleShroom 4 Jun, 2022 @ 4:17pm 
Tried to get a resource "Things/Apparel/monocle_north" from a different thread. All resources must be loaded in the main thread. UnityEngine.StackTraceUtility:ExtractStackTrace () (wrapper dynamic-method) Verse.Log:Verse.Log.Error_Patch2 (string) Verse.ContentFinder`1<UnityEngine.Texture2D>:Get (string,bool) ApparelBodyTypeResolver.HarmonyPatches:TryGetApparelFix (string&,RimWorld.Apparel,RimWorld.BodyTypeDef) (wrapper dynamic-method) RimWorld.ApparelGraphicRecordGetter:RimWorld.ApparelGraphicRecordGetter.TryGetGraphicApparel_Patch2 (RimWorld.Apparel,RimWorld.BodyTypeDef,RimWorld.ApparelGraphicRecord&) (wrapper dynamic-method) Verse.PawnGraphicSet:Verse.PawnGraphicSet.ResolveApparelGraphics_Patch4 (Verse.PawnGraphicSet) AlienRace.HarmonyPatches:ResolveAllGraphicsPrefix (Verse.PawnGraphicSet) (wrapper dynamic-method) Verse.PawnGraphicSet:Verse.PawnGraphicSet.ResolveAllGraphics_Patch7 (Verse.PawnGraphicSet) AlienRace.HarmonyPatches:CheckForStateChangePostfix (Verse.Pawn) (wrapper dynamic-method) Verse.Pawn_HealthTracker:Verse.Pawn_HealthTracker.CheckForStateChange_Patch5 (Verse.Pawn_HealthTracker,System.Nullable`1<Verse.DamageInfo>,Verse.Hediff) (wrapper dynamic-method) Verse.Pawn_HealthTracker:Verse.Pawn_HealthTracker.AddHediff_Patch8 (Verse.Pawn_HealthTracker,Verse.Hediff,Verse.BodyPartRecord,System.Nullable`1<Verse.DamageInfo>,Verse.DamageWorker/DamageResult) VanillaTraitsExpanded.SpawnSetup_Patch:AddPawn (Verse.Pawn) VanillaTraitsExpanded.SpawnSetup_Patch:Postfix (Verse.Pawn) (wrapper dynamic-method) Verse.Pawn:Verse.Pawn.SpawnSetup_Patch6 (Verse.Pawn,Verse.Map,bool) (wrapper dynamic-method) Verse.GenSpawn:Verse.GenSpawn.Spawn_Patch4 (Verse.Thing,Verse.IntVec3,Verse.Map,Verse.Rot4,Verse.WipeMode,bool) RimWorld.Planet.CaravanEnterMapUtility:Enter (RimWorld.Planet.Caravan,Verse.Map,System.Func`2<Verse.Pawn, Verse.IntVec3>,RimWorld.Planet.CaravanDropInventoryMode,bool) System.Reflection.MonoMethod:Invoke (object,System.Reflection.BindingFlags,System.Reflection.Binder,object[],System.Globalization.CultureInfo) System.Reflection.MethodBase:Invoke (object,object[]) TerrainMovement.CaravanEnterMapUtility_Enter_Patch:Prefix (RimWorld.Planet.Caravan,Verse.Map,RimWorld.Planet.CaravanEnterMode,RimWorld.Planet.CaravanDropInventoryMode,bool,System.Predicate`1<Verse.IntVec3>) (wrapper dynamic-method) RimWorld.Planet.CaravanEnterMapUtility:RimWorld.Planet.CaravanEnterMapUtility.Enter_Patch1 (RimWorld.Planet.Caravan,Verse.Map,RimWorld.Planet.CaravanEnterMode,RimWorld.Planet.CaravanDropInventoryMode,bool,System.Predicate`1<Verse.IntVec3>) RimWorld.Planet.SettleInEmptyTileUtility/<>c__DisplayClass1_0:<Settle>b__1 () Verse.LongEventHandler:RunEventFromAnotherThread (System.Action) Verse.LongEventHandler/<>c:<UpdateCurrentAsynchronousEvent>b__27_0 () System.Threading.ThreadHelper:ThreadStart_Context (object) System.Threading.ExecutionContext:RunInternal (System.Threading.ExecutionContext,System.Threading.ContextCallback,object,bool) System.Threading.ExecutionContext:Run (System.Threading.ExecutionContext,System.Threading.ContextCallback,object,bool) System.Threading.ExecutionContext:Run (System.Threading.ExecutionContext,System.Threading.ContextCallback,object) System.Threading.ThreadHelper:ThreadStart () Tried to get a resource "Things/Apparel/monocle_Male_north" from a different thread. All resources must be loaded in the main thread. UnityEngine.StackTraceUtility:ExtractStackTrace () (wrapper dynamic-method) Verse.Log:Verse.Log.Error_Patch2 (string) Verse.ContentFinder`1<UnityEngine.Texture2D>:Get (string,bool) ApparelBodyTypeResolver.HarmonyPatches:TryGetApparelFix (string&,RimWorld.Apparel,RimWorld.BodyTypeDef) (wrapper dynamic-method) RimWorld.ApparelGraphicRecordGetter:RimWorld.ApparelGraphicRecordGetter.TryGetGraphicApparel_Patch2 (RimWorld.Apparel,RimWorld.BodyTypeDef,RimWorld.ApparelGraphicRecord&) (wrapper dynamic-method) Verse.PawnGraphicSet:Verse.PawnGraphicSet.ResolveApparelGraphics_Patch4 (Verse.PawnGraphicSet) AlienRace.HarmonyPatches:ResolveAllGraphicsPrefix (Verse.PawnGraphicSet) (wrapper dynamic-method) Verse.PawnGraphicSet:Verse.PawnGraphicSet.ResolveAllGraphics_Patch7 (Verse.PawnGraphicSet) AlienRace.HarmonyPatches:CheckForStateChangePostfix (Verse.Pawn) (wrapper dynamic-method) Verse.Pawn_HealthTracker:Verse.Pawn_HealthTracker.CheckForStateChange_Patch5 (Verse.Pawn_HealthTracker,System.Nullable`1<Verse.DamageInfo>,Verse.Hediff) (wrapper dynamic-method) Verse.Pawn_HealthTracker:Verse.Pawn_HealthTracker.AddHediff_Patch8 (Verse.Pawn_HealthTracker,Verse.Hediff,Verse.BodyPartRecord,System.Nullable`1<Verse.DamageInfo>,Verse.DamageWorker/DamageResult) VanillaTraitsExpanded.SpawnSetup_Patch:AddPawn (Verse.Pawn) VanillaTraitsExpanded.SpawnSetup_Patch:Postfix (Verse.Pawn) (wrapper dynamic-method) Verse.Pawn:Verse.Pawn.SpawnSetup_Patch6 (Verse.Pawn,Verse.Map,bool) (wrapper dynamic-method) Verse.GenSpawn:Verse.GenSpawn.Spawn_Patch4 (Verse.Thing,Verse.IntVec3,Verse.Map,Verse.Rot4,Verse.WipeMode,bool) RimWorld.Planet.CaravanEnterMapUtility:Enter (RimWorld.Planet.Caravan,Verse.Map,System.Func`2<Verse.Pawn, Verse.IntVec3>,RimWorld.Planet.CaravanDropInventoryMode,bool) System.Reflection.MonoMethod:Invoke (object,System.Reflection.BindingFlags,System.Reflection.Binder,object[],System.Globalization.CultureInfo) System.Reflection.MethodBase:Invoke (object,object[]) TerrainMovement.CaravanEnterMapUtility_Enter_Patch:Prefix (RimWorld.Planet.Caravan,Verse.Map,RimWorld.Planet.CaravanEnterMode,RimWorld.Planet.CaravanDropInventoryMode,bool,System.Predicate`1<Verse.IntVec3>) (wrapper dynamic-method) RimWorld.Planet.CaravanEnterMapUtility:RimWorld.Planet.CaravanEnterMapUtility.Enter_Patch1 (RimWorld.Planet.Caravan,Verse.Map,RimWorld.Planet.CaravanEnterMode,RimWorld.Planet.CaravanDropInventoryMode,bool,System.Predicate`1<Verse.IntVec3>) RimWorld.Planet.SettleInEmptyTileUtility/<>c__DisplayClass1_0:<Settle>b__1 () Verse.LongEventHandler:RunEventFromAnotherThread (System.Action) Verse.LongEventHandler/<>c:<UpdateCurrentAsynchronousEvent>b__27_0 () System.Threading.ThreadHelper:ThreadStart_Context (object) System.Threading.ExecutionContext:RunInternal (System.Threading.ExecutionContext,System.Threading.ContextCallback,object,bool) System.Threading.ExecutionContext:Run (System.Threading.ExecutionContext,System.Threading.ContextCallback,object,bool) System.Threading.ExecutionContext:Run (System.Threading.ExecutionContext,System.Threading.ContextCallback,object) System.Threading.ThreadHelper:ThreadStart () Exception drawing Hoss: System.ArgumentNullException: Value cannot be null. Parameter name: key at System.Collections.Generic.Dictionary`2[TKey,TValue].FindEntry (TKey key) [0x00008] in <eae584ce26bc40229c1b1aa476bfa589>:0 at System.Collections.Generic.Dictionary`2[TKey,TValue].TryGetValue (TKey key, TValue& value) [0x00000] in <eae584ce26bc40229c1b1aa476bfa589>:0 at VFECore.Patch_PawnRenderer_DrawPawnBody_Transpiler.ModifyApparelLoc (Verse.Rot4 rot, UnityEngine.Vector3& vector, UnityEngine.Material mat) [0x0000c] in <eb94142db15448c39b474292a961dd8e>:0 at (wrapper dynamic-method) Verse.PawnRenderer.Verse.PawnRenderer.DrawPawnBody_Patch0(Verse.PawnRenderer,UnityEngine.Vector3,single,Verse.Rot4,Verse.RotDrawMode,Verse.PawnRenderFlags,UnityEngine.Mesh&) at (wrapper dynamic-method) Verse.PawnRenderer.Verse.PawnRenderer.RenderPawnInternal_Patch3(Verse.PawnRenderer,UnityEngine.Vector3,single,bool,Verse.Rot4,Verse.RotDrawMode,Verse.PawnRenderFlags) at (wrapper dynamic-method) Verse.PawnRenderer.Verse.PawnRenderer.RenderPawnAt_Patch10(Verse.PawnRenderer,UnityEngine.Vector3,System.Nullable`1<Verse.Rot4>,bool) at Verse.Pawn_DrawTracker.DrawAt (UnityEngine.Vector3 loc) [0x00000] in <99518a644a3e4a7ea3fde566568df84a>:0 at (wrapper dynamic-method) Verse.Pawn.Verse.Pawn.DrawAt_Patch1(Verse.Pawn,UnityEngine.Vector3,bool) at Verse.Thing.Draw () [0x00015] in <99518a644a3e4a7ea3fde566568df84a>:0 at (wrapper dynamic-method) Verse.ThingWithComps.Verse.ThingWithComps.Draw_Patch2(Verse.ThingWithComps) at Verse.DynamicDrawManager.DrawDynamicThings () [0x000d8] in <99518a644a3e4a7ea3fde566568df84a>:0 UnityEngine.StackTraceUtility:ExtractStackTrace () (wrapper dynamic-method) Verse.Log:Verse.Log.Error_Patch2 (string) Verse.DynamicDrawManager:DrawDynamicThings () (wrapper dynamic-method) Verse.Map:Verse.Map.MapUpdate_Patch4 (Verse.Map) (wrapper dynamic-method) Verse.Game:Verse.Game.UpdatePlay_Patch2 (Verse.Game) Verse.Root_Play:Update () Error rendering pawn portrait: Exception has been thrown by the target of an invocation. UnityEngine.StackTraceUtility:ExtractStackTrace () (wrapper dynamic-method) Verse.Log:Verse.Log.Error_Patch2 (string) yayoAni.Patch_PawnRenderer_RenderCache:Prefix (Verse.PawnRenderer,Verse.Pawn,System.Collections.Generic.Dictionary`2<RimWorld.Apparel, System.ValueTuple`2<UnityEngine.Color, bool>>,Verse.Rot4,single&,UnityEngine.Vector3,bool,bool,bool,bool,bool,System.Collections.Generic.Dictionary`2<RimWorld.Apparel, UnityEngine.Color>,System.Nullable`1<UnityEngine.Color>,bool) (wrapper dynamic-method) Verse.PawnRenderer:Verse.PawnRenderer.RenderCache_Patch2 (Verse.PawnRenderer,Verse.Rot4,single,UnityEngine.Vector3,bool,bool,bool,bool,bool,System.Collections.Generic.Dictionary`2<RimWorld.Apparel, UnityEngine.Color>,System.Nullable`1<UnityEngine.Color>,bool) RimWorld.PawnCacheRenderer:OnPostRender () (wrapper dynamic-method) RimWorld.PawnCacheRenderer:RimWorld.PawnCacheRenderer.RenderPawn_Patch4 (RimWorld.PawnCacheRenderer,Verse.Pawn,UnityEngine.RenderTexture,UnityEngine.Vector3,single,single,Verse.Rot4,bool,bool,bool,bool,bool,UnityEngine.Vector3,System.Collections.Generic.Dictionary`2<RimWorld.Apparel, UnityEngine.Color>,System.Nullable`1<UnityEngine.Color>,bool) (wrapper dynamic-method) RimWorld.PortraitsCache:RimWorld.PortraitsCache.RenderPortrait_Patch1 (Verse.Pawn,UnityEngine.RenderTexture,UnityEngine.Vector3,single,Verse.Rot4,bool,bool,System.Collections.Generic.Dictionary`2<RimWorld.Apparel, UnityEngine.Color>,System.Nullable`1<UnityEngine.Color>,bool) RimWorld.PortraitsCache:Get (Verse.Pawn,UnityEngine.Vector2,Verse.Rot4,UnityEngine.Vector3,single,bool,bool,bool,bool,System.Collections.Generic.Dictionary`2<RimWorld.Apparel, UnityEngine.Color>,System.Nullable`1<UnityEngine.Color>,bool) RimWorld.ColonistBarColonistDrawer:DrawColonist (UnityEngine.Rect,Verse.Pawn,Verse.Map,bool,bool) RimWorld.ColonistBar:ColonistBarOnGUI () (wrapper dynamic-method) RimWorld.MapInterface:RimWorld.MapInterface.MapInterfaceOnGUI_BeforeMainTabs_Patch2 (RimWorld.MapInterface) (wrapper dynamic-method) RimWorld.UIRoot_Play:RimWorld.UIRoot_Play.UIRootOnGUI_Patch1 (RimWorld.UIRoot_Play) (wrapper dynamic-method) Verse.Root:Verse.Root.OnGUI_Patch1 (Verse.Root) Exception drawing Hoss: System.ArgumentNullException: Value cannot be null. Parameter name: key at System.Collections.Generic.Dictionary`2[TKey,TValue].FindEntry (TKey key) [0x00008] in <eae584ce26bc40229c1b1aa476bfa589>:0 at System.Collections.Generic.Dictionary`2[TKey,TValue].TryGetValue (TKey key, TValue& value) [0x00000] in <eae584ce26bc40229c1b1aa476bfa589>:0 at VFECore.Patch_PawnRenderer_DrawPawnBody_Transpiler.ModifyApparelLoc (Verse.Rot4 rot, UnityEngine.Vector3& vector, UnityEngine.Material mat) [0x0000c] in <eb94142db15448c39b474292a961dd8e>:0 at (wrapper dynamic-method) Verse.PawnRenderer.Verse.PawnRenderer.DrawPawnBody_Patch0(Verse.PawnRenderer,UnityEngine.Vector3,single,Verse.Rot4,Verse.RotDrawMode,Verse.PawnRenderFlags,UnityEngine.Mesh&) at (wrapper dynamic-method) Verse.PawnRenderer.Verse.PawnRenderer.RenderPawnInternal_Patch3(Verse.PawnRenderer,UnityEngine.Vector3,single,bool,Verse.Rot4,Verse.RotDrawMode,Verse.PawnRenderFlags) at (wrapper dynamic-method) Verse.PawnRenderer.Verse.PawnRenderer.RenderPawnAt_Patch10(Verse.PawnRenderer,UnityEngine.Vector3,System.Nullable`1<Verse.Rot4>,bool) at Verse.Pawn_DrawTracker.DrawAt (UnityEngine.Vector3 loc) [0x00000] in <99518a644a3e4a7ea3fde566568df84a>:0 at (wrapper dynamic-method) Verse.Pawn.Verse.Pawn.DrawAt_Patch1(Verse.Pawn,UnityEngine.Vector3,bool) at Verse.Thing.Draw () [0x00015] in <99518a644a3e4a7ea3fde566568df84a>:0 at (wrapper dynamic-method) Verse.ThingWithComps.Verse.ThingWithComps.Draw_Patch2(Verse.ThingWithComps) at Verse.DynamicDrawManager.DrawDynamicThings () [0x000d8] in <99518a644a3e4a7ea3fde566568df84a>:0 UnityEngine.StackTraceUtility:ExtractStackTrace () (wrapper dynamic-method) Verse.Log:Verse.Log.Error_Patch2 (string) Verse.DynamicDrawManager:DrawDynamicThings () (wrapper dynamic-method) Verse.Map:Verse.Map.MapUpdate_Patch4 (Verse.Map) (wrapper dynamic-method) Verse.Game:Verse.Game.UpdatePlay_Patch2 (Verse.Game) Verse.Root_Play:Update ()

I got these errors (with the last one repeating over a thousand times) when one of my Pawns entered a new Map. His Sprite completely disappeared. When I made him drop the Monocle he was wearing, the errors stopped and he showed back up. I put the monocle back on, and everything worked perfectly.


This is the Hugs Library Log that I took before the errors happened, since the succeeding one was so large.

Since that one incident, I have not been able to reproduce the bug.


https://gist.github.com/72ef4eb8d46d5295ba45ac9efb8d33b0
Last edited by TurtleShroom; 4 Jun, 2022 @ 4:19pm
Zaljerem  [developer] 8 Jun, 2022 @ 8:09pm 
Interesting, I just now saw this. I have also not seen the behavior myself, but I will put this mod back in my current rotation and see if anything pops up.
< >
Showing 1-2 of 2 comments
Per page: 1530 50