RimWorld

RimWorld

Trade UI Revised
Hob Took  [developer] 16 Dec, 2021 @ 10:29am
Bug reports here!
1) What is the observed behavior?
2) What is the expected behavior?
3) Any relevant mods that are causing incompatibilities?
< >
Showing 1-15 of 28 comments
l0rf 16 Dec, 2021 @ 10:53am 
Hi, currently encountered a UI issue with three modded factions.
When approaching a settlement for trade, the UI that pops up has no items available for trade and the error log appears.
First error message that pops up is below, followed by 6 further errors. Those seem to be a cascade of problems caused by the first error of a missing reference, and then one repeating infinitely for Exception filling window for RimWorld.Dialog_Trade: System.NullReferenceException: Object reference not set to an instance of an object

I have to assume that Vanilla Furniture Expanded is conflicting in some way. An Item that doesn't have the right amount of mass, perhaps.

Error 1:
Exception filling window for Verse.FloatMenuWorld: System.NullReferenceException: Object reference not set to an instance of an object
at VanillaFurnitureExpanded.CompGlowerExtended.TransformLabel (System.String label) [0x00001] in <14556d56915b4db8996971a7b105f71e>:0
at Verse.ThingWithComps.get_LabelNoCount () [0x0002b] in <cdbd0ed5089a418da09b9a259f9dbd8f>:0
at RimWorld.Tradeable.get_Label () [0x00006] in <cdbd0ed5089a418da09b9a259f9dbd8f>:0
at RimWorld.Dialog_Trade.<CacheTradeables>b__63_2 (RimWorld.Tradeable tr) [0x00000] in <cdbd0ed5089a418da09b9a259f9dbd8f>:0
at System.Linq.Utilities+<>c__DisplayClass1_0`1[TSource].<CombinePredicates>b__0 (TSource x) [0x0000e] in <351e49e2a5bf4fd6beabb458ce2255f3>:0
at System.Linq.Enumerable+WhereListIterator`1[TSource].ToArray () [0x00023] in <351e49e2a5bf4fd6beabb458ce2255f3>:0
at System.Linq.Buffer`1[TElement]..ctor (System.Collections.Generic.IEnumerable`1[T] source) [0x0000a] in <351e49e2a5bf4fd6beabb458ce2255f3>:0
at System.Linq.OrderedEnumerable`1[TElement].ToList () [0x00000] in <351e49e2a5bf4fd6beabb458ce2255f3>:0
at System.Linq.Enumerable.ToList[TSource] (System.Collections.Generic.IEnumerable`1[T] source) [0x0001f] in <351e49e2a5bf4fd6beabb458ce2255f3>:0
at RimWorld.Dialog_Trade.CacheTradeables () [0x00186] in <cdbd0ed5089a418da09b9a259f9dbd8f>:0
at (wrapper dynamic-method) RimWorld.Dialog_Trade.RimWorld.Dialog_Trade.PostOpen_Patch1(RimWorld.Dialog_Trade)
at Verse.WindowStack.Add (Verse.Window window) [0x0003a] in <cdbd0ed5089a418da09b9a259f9dbd8f>:0
at RimWorld.Planet.CaravanArrivalAction_Trade.Arrived (RimWorld.Planet.Caravan caravan) [0x0003a] in <cdbd0ed5089a418da09b9a259f9dbd8f>:0
at RimWorld.Planet.CaravanArrivalActionUtility+<>c__DisplayClass0_0`1[T].<GetFloatMenuOptions>b__2 () [0x00041] in <cdbd0ed5089a418da09b9a259f9dbd8f>:0
at Verse.FloatMenuOption.Chosen (System.Boolean colonistOrdering, Verse.FloatMenu floatMenu) [0x00030] in <cdbd0ed5089a418da09b9a259f9dbd8f>:0
at Verse.FloatMenuOption.DoGUI (UnityEngine.Rect rect, System.Boolean colonistOrdering, Verse.FloatMenu floatMenu) [0x003b1] in <cdbd0ed5089a418da09b9a259f9dbd8f>:0
at Verse.FloatMenu.DoWindowContents (UnityEngine.Rect rect) [0x000fb] in <cdbd0ed5089a418da09b9a259f9dbd8f>:0
at Verse.FloatMenuWorld.DoWindowContents (UnityEngine.Rect inRect) [0x0009b] in <cdbd0ed5089a418da09b9a259f9dbd8f>:0
at (wrapper dynamic-method) Verse.Window.Verse.Window.InnerWindowOnGUI_Patch0(Verse.Window,int)
UnityEngine.StackTraceUtility:ExtractStackTrace ()
(wrapper dynamic-method) Verse.Log:Verse.Log.Error_Patch4 (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_Trade: System.NullReferenceException: Object reference not set to an instance of an object
at TradeUI.Harmony_DialogTrade_FillMainRect.Prefix (UnityEngine.Rect& mainRect, System.Collections.Generic.List`1[RimWorld.Tradeable]& ___cachedTradeables, RimWorld.Dialog_Trade& __instance) [0x0024a] in <7396b39abe5942dda480c006c4eaa472>:0
at (wrapper dynamic-method) RimWorld.Dialog_Trade.RimWorld.Dialog_Trade.FillMainRect_Patch1(RimWorld.Dialog_Trade,UnityEngine.Rect)
at TradeUI.Harmony_DialogTrade_DoWindowContents.Prefix (UnityEngine.Rect& inRect, RimWorld.Dialog_Trade& __instance) [0x0014b] in <7396b39abe5942dda480c006c4eaa472>:0
at (wrapper dynamic-method) RimWorld.Dialog_Trade.RimWorld.Dialog_Trade.DoWindowContents_Patch1(RimWorld.Dialog_Trade,UnityEngine.Rect)
at (wrapper dynamic-method) Verse.Window.Verse.Window.InnerWindowOnGUI_Patch0(Verse.Window,int)
(Filename: C:\buildslave\unity\build\Runtime/Export/Debug/Debug.bindings.h Line: 39)
Hob Took  [developer] 29 Dec, 2021 @ 1:51pm 
When does this happen?
Any relevant other mods that are affecting the trade UI window?
Are you using the steam version or GitHub version?
Do you get this same problem in a game with just Harmony + TradeUI and no other mods installed?
Hard to say. It was working fine for my entire game. Just randomly happened and had to ALT+F4. I just figured I'd post the repeating line from my player.log. I'm not using any other mods that affect the trade UI, I'm using the Steam Version. I think it would be difficulty to reproduce as it seemed to happen randomly. I re-booted the save up and the next trader worked just fine.

Sorry if the data wasn't useful. I figured you might've been able to make something out of it as I can't decipher that stuff. If you want, I'll delete the original post as well as this one. If I haven't said already; thank you for the mod in the first place.
Hob Took  [developer] 29 Dec, 2021 @ 5:37pm 
Thanks for the details and the positive feedback! I can read the log but it merely says "something was broken in the function named DialogTrade_FillMainRect.Prefix" but unfortunately that function draws almost the entire UI so we do not know precisely what went wrong and can't start an investigation without a way to reproduce the problem.

I will add some better error handling to the mod. If a problem happens in the future, there will be more useful information in the log that we can determine what broke.
No worries. Your mod has already paid for itself in my book. Like I said, it appeared to be random, so nothing an autosave can't fix. Take care and have a happy new year. :steamthumbsup:
Danarca 2 Jan, 2022 @ 12:35am 
1) Nothing shows up in the trade window when trading with certain factions...
2) It *should* show up
3) The faction is one of the Cowboy ones from the Vanilla Expanded series, but surely that doesn't hinder anything?

Log: https://gist.github.com/HugsLibRecordKeeper/30a0fceb54aa63095791a94489e88079

EDIT:
Using AutoSeller I was able to use 'Bargain' on the trader, which traded our goods according to the rules I've set up.

EDIT 2:
Found this on one of the muffalo belonging to the trade caravan; https://steamhost.cn/steamcommunity_com/sharedfiles/filedetails/?id=2704651394
Appears to be a blank item? Nothing shows up when I click the info icon...
Last edited by Danarca; 2 Jan, 2022 @ 12:41am
Hob Took  [developer] 2 Jan, 2022 @ 10:13am 
@Danarca This looks like it is caused by a NullReferenceException in VanillaFurnitureExpanded. Can you try unsubscribing/re-subscribing to Trade UI Revised to be sure you have the latest update? I think the update I pushed yesterday should handle this.

If you still encounter the problem, I will return to try to fix this bug but it really needs to be handled by the VFE team.
joseasoler 25 Apr, 2022 @ 8:33am 
I found the reason for the VanillaFurnitureExpanded.CompGlowerExtended.TransformLabel exception and reported it to the VE team. I wanted to let you know that the latest Vanilla Factions Expanded - Ancients release includes the fix :)
Hob Took  [developer] 25 Apr, 2022 @ 8:14pm 
Thank you @joseasoler! Above and beyond
mkdr 8 Jun, 2022 @ 6:23pm 
Please implement options to change the following, which I found always confusing about trade GUI:

- change symbols of < > I found those buttons confusing and cant remember what is < and what is >. Give option to change it to Sell and Buy or mark it plus and minus with + and - $, or something like that, make it green if plus red if minus (sell, buy).
- mark the own and sellers amount of money making it better viewable
Amish Hooker 11 Aug, 2022 @ 5:03pm 
I seem to be running into a bug where, seemingly randomly, my Hospitality Guest's inventory will be blocked off with the "Trader is not willing to buy this" on the right side of the screen.

Not all items are blocked off, usually people are buyable, but cotton/wood/cloth are some example.

I've tried changing relations in debug, didn't affect it
Last edited by Amish Hooker; 11 Aug, 2022 @ 5:04pm
Maple38 20 Aug, 2022 @ 2:50pm 
I seem to be unable to buy any slaves, in the trader's side where it lists a slave it says "trader is unwilling to buy this".
Honk⍟ 30 Oct, 2022 @ 5:56am 
After the latest deploy for 1.4 the 1.3 version seems to have an issue where the screen dosent get populated acordingly just remains black.
``Exception filling window for RimWorld.Dialog_Trade: System.MissingMethodException: bool Verse.Widgets.ButtonText``
Mod worked fine yesterday for the 1.3 version and after the deploy it stopped working.
Hob Took  [developer] 30 Oct, 2022 @ 9:34am 
Thanks for the report and error line. I'll get this fixed in a few minutes.
< >
Showing 1-15 of 28 comments
Per page: 1530 50