Skip to content

Instantly share code, notes, and snippets.

@ubergarm
Created March 31, 2024 21:48
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save ubergarm/f9d3e4751cdbe6e34bfa1bfa9d05075a to your computer and use it in GitHub Desktop.
Save ubergarm/f9d3e4751cdbe6e34bfa1bfa9d05075a to your computer and use it in GitHub Desktop.
RimWorld 1.4 Mod Nomad Caravan Bug Report

Nomad Scavanger 1.4 Mod Error Report

The RimWorld 1.4 Mod Nomad Scavanger causes an error that breaks the Assign Manage Outfits menu until you restart the game.

Steps to Recreate Bug

  1. Use this ModPack https://steamcommunity.com/sharedfiles/filedetails/?id=3174706609
  2. Start a new colony (singleplayer is fine).
  3. Tabs at bottom of screen -> Assign -> Manage Outfits -> Select Outfit -> Soldier -> Headgear
  4. Scroll down a little bit

Fix

I noticed that the Nomad Caravan Guard Helmet seemed to appear before it would crash, so by commenting out the other hats I discovered the error is related only to the NS_TechnopathHood.

Then looking closer, I noticed that the NS_TechopathHood adds HackingSpeed +20%. However, as I don't have Ideology DLC installed, this was causing errors to print to player log on startup too.

The fix for me was to edit the Robes.xml file and change the NS_TechnopathHood section to comment out Hacking:

<!-- <HackingSpeed>0.2</HackingSpeed> -->

If there is a way to add some logic to the XML to only add HackingSpeed if it detects Ideology is available, that might help others.

References

Steam Workshop user WintersKnight94 has a recent comment on Jan 14th, 2024 suggesting something possibly similar:

Hey, I'm having an issue where none of the headgear displays. it may have
something to do with one of my mods, im not sure, and its not throwing
an error in the log.  I'm not expecting a perfect fix, just wondering
if anyone else is having the same issue? maybe we can compare modlists
and figure out the issue?

Debug Log

Exception filling window for RimWorld.Dialog_ManageOutfits: System.NullReferenceException: Object reference not set to an instance of an object
  at (wrapper dynamic-method) Verse.ThingDef.Verse.ThingDef.get_DescriptionDetailed_Patch0(Verse.ThingDef)
  at Verse.Listing_TreeThingFilter.DoThingDef (Verse.ThingDef tDef, System.Int32 nestLevel, Verse.Map map) [0x000c3] in <d006c28bc811417ea565feda544f6d2b>:0 
  at Verse.Listing_TreeThingFilter.DoCategoryChildren (Verse.TreeNode_ThingCategory node, System.Int32 indentLevel, System.Int32 openMask, Verse.Map map, System.Boolean subtreeMatchedSearch) [0x000d1] in <d006c28bc811417ea565feda544f6d2b>:0 
  at Verse.Listing_TreeThingFilter.DoCategory (Verse.TreeNode_ThingCategory node, System.Int32 indentLevel, System.Int32 openMask, Verse.Map map, System.Boolean subtreeMatchedSearch) [0x000cf] in <d006c28bc811417ea565feda544f6d2b>:0 
  at Verse.Listing_TreeThingFilter.DoCategoryChildren (Verse.TreeNode_ThingCategory node, System.Int32 indentLevel, System.Int32 openMask, Verse.Map map, System.Boolean subtreeMatchedSearch) [0x00078] in <d006c28bc811417ea565feda544f6d2b>:0 
  at Verse.Listing_TreeThingFilter.ListCategoryChildren (Verse.TreeNode_ThingCategory node, System.Int32 openMask, Verse.Map map, UnityEngine.Rect visibleRect) [0x0004a] in <d006c28bc811417ea565feda544f6d2b>:0 
  at (wrapper dynamic-method) Verse.ThingFilterUI.Verse.ThingFilterUI.DoThingFilterConfigWindow_Patch2(UnityEngine.Rect,Verse.ThingFilterUI/UIState,Verse.ThingFilter,Verse.ThingFilter,int,System.Collections.Generic.IEnumerable`1<Verse.ThingDef>,System.Collections.Generic.IEnumerable`1<Verse.SpecialThingFilterDef>,bool,System.Collections.Generic.List`1<Verse.ThingDef>,Verse.Map)
  at (wrapper dynamic-method) RimWorld.Dialog_ManageOutfits.RimWorld.Dialog_ManageOutfits.DoWindowContents_Patch4(RimWorld.Dialog_ManageOutfits,UnityEngine.Rect)
  at (wrapper dynamic-method) Verse.Window.Verse.Window.InnerWindowOnGUI_Patch0(Verse.Window,int)
UnityEngine.StackTraceUtility:ExtractStackTrace ()
(wrapper dynamic-method) Verse.Log:Verse.Log.Error_Patch2 (string)
(wrapper dynamic-method) Verse.Window:Verse.Window.InnerWindowOnGUI_Patch0 (Verse.Window,int)
UnityEngine.GUI:CallWindowDelegate (UnityEngine.GUI/WindowFunction,int,int,UnityEngine.GUISkin,int,single,single,UnityEngine.GUIStyle)

Exception filling window for RimWorld.Dialog_ManageOutfits: System.Exception: Thing filter context already set!
  at Multiplayer.Client.ThingFilterMarkers.set_DrawnThingFilter (Multiplayer.API.ThingFilterContext value) [0x00016] in <d797d5473e814994b088d005b6f9b57d>:0 
  at Multiplayer.Client.ThingFilterMarkers.ManageOutfit_Prefix (RimWorld.Dialog_ManageOutfits __instance) [0x0000b] in <d797d5473e814994b088d005b6f9b57d>:0 
  at (wrapper dynamic-method) RimWorld.Dialog_ManageOutfits.RimWorld.Dialog_ManageOutfits.DoWindowContents_Patch4(RimWorld.Dialog_ManageOutfits,UnityEngine.Rect)
  at (wrapper dynamic-method) Verse.Window.Verse.Window.InnerWindowOnGUI_Patch0(Verse.Window,int)
UnityEngine.StackTraceUtility:ExtractStackTrace ()
(wrapper dynamic-method) Verse.Log:Verse.Log.Error_Patch2 (string)
(wrapper dynamic-method) Verse.Window:Verse.Window.InnerWindowOnGUI_Patch0 (Verse.Window,int)
UnityEngine.GUI:CallWindowDelegate (UnityEngine.GUI/WindowFunction,int,int,UnityEngine.GUISkin,int,single,single,UnityEngine.GUIStyle)

Word wrap was false at end of frame.
UnityEngine.StackTraceUtility:ExtractStackTrace ()
(wrapper dynamic-method) Verse.Log:Verse.Log.Error_Patch2 (string)
Verse.Log:ErrorOnce (string,int)
Verse.Text:StartOfOnGUI ()
(wrapper dynamic-method) Verse.UIRoot:Verse.UIRoot.UIRootOnGUI_Patch2 (Verse.UIRoot)
(wrapper dynamic-method) RimWorld.UIRoot_Play:RimWorld.UIRoot_Play.UIRootOnGUI_Patch2 (RimWorld.UIRoot_Play)
(wrapper dynamic-method) Verse.Root:Verse.Root.OnGUI_Patch2 (Verse.Root)

Mouse position stack is not empty. There were more calls to BeginScrollView than EndScrollView. Fixing.
UnityEngine.StackTraceUtility:ExtractStackTrace ()
(wrapper dynamic-method) Verse.Log:Verse.Log.Error_Patch2 (string)
Verse.Widgets:EnsureMousePositionStackEmpty ()
(wrapper dynamic-method) Verse.Root:Verse.Root.Update_Patch1 (Verse.Root)
Verse.Root_Play:Update ()

# this next one one spams like almost 1000 times
Exception filling window for RimWorld.Dialog_ManageOutfits: System.Exception: Thing filter context already set!
  at Multiplayer.Client.ThingFilterMarkers.set_DrawnThingFilter (Multiplayer.API.ThingFilterContext value) [0x00016] in <d797d5473e814994b088d005b6f9b57d>:0 
  at Multiplayer.Client.ThingFilterMarkers.ManageOutfit_Prefix (RimWorld.Dialog_ManageOutfits __instance) [0x0000b] in <d797d5473e814994b088d005b6f9b57d>:0 
  at (wrapper dynamic-method) RimWorld.Dialog_ManageOutfits.RimWorld.Dialog_ManageOutfits.DoWindowContents_Patch4(RimWorld.Dialog_ManageOutfits,UnityEngine.Rect)
  at (wrapper dynamic-method) Verse.Window.Verse.Window.InnerWindowOnGUI_Patch0(Verse.Window,int)
UnityEngine.StackTraceUtility:ExtractStackTrace ()
(wrapper dynamic-method) Verse.Log:Verse.Log.Error_Patch2 (string)
(wrapper dynamic-method) Verse.Window:Verse.Window.InnerWindowOnGUI_Patch0 (Verse.Window,int)
UnityEngine.GUI:CallWindowDelegate (UnityEngine.GUI/WindowFunction,int,int,UnityEngine.GUISkin,int,single,single,UnityEngine.GUIStyle)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment