RimWorld

RimWorld

Repairable Gear
 Denne tråd er blevet fastgjort, så den er sikkert vigtig
SteveZero  [udvikler] 23. maj 2021 kl. 16:20
Report Here: Bugs & Balance Concerns
If there are error logs please share link if you can, otherwise paste the text here. Please add some context on what you were doing if possible. How to recreate the issue.

* Don't forget to subscribe to discussion, at least until your bug is fixed. I might need to ask some follow up questions to be able to fix. Thanks!
Sidst redigeret af SteveZero; 25. maj 2021 kl. 20:51
< >
Viser 1-15 af 65 kommentarer
Reedwhisker 24. maj 2021 kl. 2:01 
hey, cool mod! But i have a bug. Some items (both modded and vanilla) cant be repaired via right click .When i right click the item, nothing happens, so i cant even haul the item. But my ALL work priorities for ALL colonists become set to "1" after that. Idk what causes the bug, but i beg u just to make checkbox in mod's settings, disabling the ability to repair the item with right click. Thanks. Sorry for my "goodest" english. I'll try to get the error log
Sidst redigeret af Reedwhisker; 24. maj 2021 kl. 6:26
Reedwhisker 24. maj 2021 kl. 4:51 
Root level exception in OnGUI(): System.NullReferenceException: Object reference not set to an instance of an object
at RepairableGear.WorkGiver_RepairItem.GetBillGiverRootCell (Verse.Thing billGiver, Verse.Pawn forPawn) [0x00010] in <42fcf2625362430dab868a30c8138bf8>:0
at RepairableGear.WorkGiver_RepairItem.TryFindBestIngredients (Verse.Pawn pawn, Verse.Thing workbench, Verse.Thing repairableThing, System.Collections.Generic.List`1[T] ingredients, RimWorld.Bill bill, System.Collections.Generic.List`1[T] repairCost) [0x00071] in <42fcf2625362430dab868a30c8138bf8>:0
at RepairableGear.CompRepairableThing+<CompFloatMenuOptions>d__2.MoveNext () [0x00272] in <42fcf2625362430dab868a30c8138bf8>:0
at Verse.ThingWithComps+<GetFloatMenuOptions>d__40.MoveNext () [0x00102] in <c36f9493c9844ddaa7fb5c788416098f>:0
at (wrapper dynamic-method) RimWorld.FloatMenuMakerMap.RimWorld.FloatMenuMakerMap.AddHumanlikeOrders_Patch7(UnityEngine.Vector3,Verse.Pawn,System.Collections.Generic.List`1<Verse.FloatMenuOption>)
at (wrapper dynamic-method) RimWorld.FloatMenuMakerMap.RimWorld.FloatMenuMakerMap.ChoicesAtFor_Patch3(UnityEngine.Vector3,Verse.Pawn)
at RimWorld.FloatMenuMakerMap.TryMakeFloatMenu (Verse.Pawn pawn) [0x00056] in <c36f9493c9844ddaa7fb5c788416098f>:0
at (wrapper dynamic-method) RimWorld.Selector.RimWorld.Selector.HandleMapClicks_Patch1(RimWorld.Selector)
at RimWorld.Selector.SelectorOnGUI () [0x00000] in <c36f9493c9844ddaa7fb5c788416098f>:0
at RimWorld.MapInterface.HandleLowPriorityInput () [0x0000f] in <c36f9493c9844ddaa7fb5c788416098f>:0
at RimWorld.UIRoot_Play.UIRootOnGUI () [0x000d3] in <c36f9493c9844ddaa7fb5c788416098f>:0
at (wrapper dynamic-method) Verse.Root.Verse.Root.OnGUI_Patch1(Verse.Root)
Verse.Log:Error(String, Boolean)
Verse.Root:Verse.Root.OnGUI_Patch1(Root)
Koris 24. maj 2021 kl. 10:15 
Hey there! Loving the mod, but some items can't be right-clicked. I'm using "Achtung" and it tells me it caught and prevented some mod exception. It then offers me to copy it to the clipboard, the result is this:

System.NullReferenceException: Object reference not set to an instance of an object
at RepairableGear.WorkGiver_RepairItem.GetBillGiverRootCell (Verse.Thing billGiver, Verse.Pawn forPawn) [0x00010] in <42fcf2625362430dab868a30c8138bf8>:0
at RepairableGear.WorkGiver_RepairItem.TryFindBestIngredients (Verse.Pawn pawn, Verse.Thing workbench, Verse.Thing repairableThing, System.Collections.Generic.List`1[T] ingredients, RimWorld.Bill bill, System.Collections.Generic.List`1[T] repairCost) [0x00071] in <42fcf2625362430dab868a30c8138bf8>:0
at RepairableGear.CompRepairableThing+<CompFloatMenuOptions>d__2.MoveNext () [0x00272] in <42fcf2625362430dab868a30c8138bf8>:0
at Verse.ThingWithComps+<GetFloatMenuOptions>d__40.MoveNext () [0x00102] in <c36f9493c9844ddaa7fb5c788416098f>:0
at (wrapper dynamic-method) RimWorld.FloatMenuMakerMap.RimWorld.FloatMenuMakerMap.AddHumanlikeOrders_Patch6(UnityEngine.Vector3,Verse.Pawn,System.Collections.Generic.List`1<Verse.FloatMenuOption>)
at (wrapper dynamic-method) RimWorld.FloatMenuMakerMap.RimWorld.FloatMenuMakerMap.ChoicesAtFor_Patch5(UnityEngine.Vector3,Verse.Pawn)

Any idea what might be causing this?
SteveZero  [udvikler] 24. maj 2021 kl. 12:09 
@Koris, @ReedWhisker, Can you give an example of what were you trying to right-click? The error seems to be complaining about not knowing where the repair bench is. I'll fix this soon. I thought I had in the last update.

Is it breaking your game or is it just spamming your log console?
Sidst redigeret af SteveZero; 24. maj 2021 kl. 12:10
Koris 24. maj 2021 kl. 15:18 
For me it's not breaking my game, it just doesn't allow me to do this context menu action. I noticed that it reacts differently depending on how damaged the apparel is. I've did some testing. It does not break my game, just "disables" a context menu option for some apparel.

Uninstalled repair bench:

Apparel undamaged/only lightly damaged -> I get a greyed-out option showing me the item can't be repaired as there's no workbench available.

Apparel a bit damaged --> I get the error message mentioned above.

Apparel heavily damaged -> I get the error message mentioned above.

Installed and powered repair bench:

Apparel undamaged/only lightly damaged -> I get the option showing me that I can repair the item for maintenance only.

Apparel a bit damaged -> it shows me the cost and repair chance.

Apparel heavily damaged -> It shows me the greyed-out box telling me the item is irreparably damaged.

If you'd like a mod list or some other testing, feel free to ask for more specifics.


Oprindeligt skrevet af SteveZero:
@Koris, @ReedWhisker, Can you give an example of what were you trying to right-click? The error seems to be complaining about not knowing where the repair bench is. I'll fix this soon. I thought I had in the last update.

Is it breaking your game or is it just spamming your log console?
Sidst redigeret af Koris; 24. maj 2021 kl. 15:18
Wolski 25. maj 2021 kl. 0:49 
This log appears when someone is trying to reapair flak apparel. Causing massive lag spikes and seems to repeat it self until a pawn gives up repairing that piece of apparel. (I'm using "Flak fabrick" mod)

Cannot get AdjustedCostList for Apparel_FlakPants with null Stuff.
Verse.Log:Verse.Log.Error_Patch2(String, Boolean)
RimWorld.CostListCalculator:CostListAdjusted(BuildableDef, ThingDef, Boolean)
RimWorld.CostListCalculator:CostListAdjusted(Thing)
RepairableGear.ThingExtensions:GetRepairCostList(Thing)
RepairableGear.ThingExtensions:IsRepairable(Thing)
RepairableGear.ThingExtensions:IsRepairable(Thing, Pawn, Thing, Bill, Boolean)
RepairableGear.<>c__DisplayClass16_0:<FindRepairableThings>b__2(Thing)
System.Linq.WhereListIterator`1:MoveNext()
System.Collections.Generic.List`1:InsertRange(Int32, IEnumerable`1)
System.Collections.Generic.List`1:AddRange(IEnumerable`1)
RepairableGear.<>c__DisplayClass16_0:<FindRepairableThings>b__1(Region)
Verse.BFSWorker:BreadthFirstTraverseWork(Region, RegionEntryPredicate, RegionProcessor, Int32, RegionType)
Verse.RegionTraverser:BreadthFirstTraverse(Region, RegionEntryPredicate, RegionProcessor, Int32, RegionType)
RepairableGear.WorkGiver_RepairItem:FindRepairableThings(Pawn, Thing, Bill)
RepairableGear.WorkGiver_RepairItem:JobOnThing(Pawn, Thing, Boolean)
RimWorld.WorkGiver_Scanner:HasJobOnThing(Pawn, Thing, Boolean)
RimWorld.<>c__DisplayClass3_1:<TryIssueJobPackage>b__0(Thing)
Verse.<>c__DisplayClass2_0:<ClosestThingReachable>b__0(Thing)
Verse.GenClosest:<ClosestThing_Global>g__Process|5_0(Thing, <>c__DisplayClass5_0&)
Verse.GenClosest:ClosestThing_Global(IntVec3, IEnumerable, Single, Predicate`1, Func`2)
Verse.GenClosest:ClosestThingReachable(IntVec3, Map, ThingRequest, PathEndMode, TraverseParms, Single, Predicate`1, IEnumerable`1, Int32, Int32, Boolean, RegionType, Boolean)
RimWorld.JobGiver_Work:RimWorld.JobGiver_Work.TryIssueJobPackage_Patch0(JobGiver_Work, Pawn, JobIssueParams)
Verse.AI.ThinkNode_PrioritySorter:TryIssueJobPackage(Pawn, JobIssueParams)
Verse.AI.ThinkNode_Priority:TryIssueJobPackage(Pawn, JobIssueParams)
Verse.AI.ThinkNode_Tagger:TryIssueJobPackage(Pawn, JobIssueParams)
Verse.AI.ThinkNode_Subtree:TryIssueJobPackage(Pawn, JobIssueParams)
Verse.AI.ThinkNode_Priority:TryIssueJobPackage(Pawn, JobIssueParams)
Verse.AI.ThinkNode_Conditional:TryIssueJobPackage(Pawn, JobIssueParams)
Verse.AI.ThinkNode_Priority:TryIssueJobPackage(Pawn, JobIssueParams)
Verse.AI.Pawn_JobTracker:Verse.AI.Pawn_JobTracker.DetermineNextJob_Patch4(Pawn_JobTracker, ThinkTreeDef&)
Verse.AI.Pawn_JobTracker:CheckForJobOverride()
Verse.AI.<>c__DisplayClass2_0:<DoRecipeWork>b__1()
CarpenterTable.<>c__DisplayClass0_0:<Postfix>b__0()
Verse.AI.JobDriver:Verse.AI.JobDriver.DriverTick_Patch0(JobDriver)
Verse.AI.Pawn_JobTracker:Verse.AI.Pawn_JobTracker.JobTrackerTick_Patch0(Pawn_JobTracker)
Verse.Pawn:Verse.Pawn.Tick_Patch3(Pawn)
Verse.TickList:Tick()
Verse.TickManager:Verse.TickManager.DoSingleTick_Patch3(TickManager)
Verse.TickManager:Verse.TickManager.TickManagerUpdate_Patch1(TickManager)
Verse.Game:Verse.Game.UpdatePlay_Patch1(Game)
Verse.Root_Play:Verse.Root_Play.Update_Patch0(Root_Play)

followed by this log:

Could not reserve Thing_Apparel_FlakJacket87279419 (layer: null) for Ben for job RG_RepairItem (Job_8197806) A=Thing_RG_ElectricRepairTable72223535 B=Thing_Apparel_FlakJacket87279419 (now doing job RG_RepairItem (Job_8197806) A=Thing_RG_ElectricRepairTable72223535 B=Thing_Apparel_FlakJacket87279419(curToil=2)) for maxPawns 1 and stackCount -1. Existing reserver: Mahoney doing job HaulToInventory (Job_8197654) A=Thing_Apparel_FlakJacket87279419 B=(128, 0, 148) (toilIndex=1)
Verse.Log:Verse.Log.Warning_Patch1(String, Boolean)
Verse.AI.ReservationManager:Verse.AI.ReservationManager.LogCouldNotReserveError_Patch1(ReservationManager, Pawn, Job, LocalTargetInfo, Int32, Int32, ReservationLayerDef)
Verse.AI.ReservationManager:Verse.AI.ReservationManager.Reserve_Patch2(ReservationManager, Pawn, Job, LocalTargetInfo, Int32, Int32, ReservationLayerDef, Boolean)
Verse.AI.ReservationUtility:Reserve(Pawn, LocalTargetInfo, Job, Int32, Int32, ReservationLayerDef, Boolean)
Verse.AI.<>c__DisplayClass0_0:<Reserve>b__0()
Verse.AI.JobDriver:TryActuallyStartNextToil()
Verse.AI.JobDriver:ReadyForNextToil()
Verse.AI.JobDriver:TryActuallyStartNextToil()
Verse.AI.JobDriver:ReadyForNextToil()
Verse.AI.JobDriver:TryActuallyStartNextToil()
Verse.AI.JobDriver:ReadyForNextToil()
Verse.AI.Pawn_JobTracker:Verse.AI.Pawn_JobTracker.StartJob_Patch2(Pawn_JobTracker, Job, JobCondition, ThinkNode, Boolean, Boolean, ThinkTreeDef, Nullable`1, Boolean, Boolean)
Verse.AI.Pawn_JobTracker:CheckForJobOverride()
Verse.AI.<>c__DisplayClass2_0:<DoRecipeWork>b__1()
CarpenterTable.<>c__DisplayClass0_0:<Postfix>b__0()
Verse.AI.JobDriver:Verse.AI.JobDriver.DriverTick_Patch0(JobDriver)
Verse.AI.Pawn_JobTracker:Verse.AI.Pawn_JobTracker.JobTrackerTick_Patch0(Pawn_JobTracker)
Verse.Pawn:Verse.Pawn.Tick_Patch3(Pawn)
Verse.TickList:Tick()
Verse.TickManager:Verse.TickManager.DoSingleTick_Patch3(TickManager)
Verse.TickManager:Verse.TickManager.TickManagerUpdate_Patch1(TickManager)
Verse.Game:Verse.Game.UpdatePlay_Patch1(Game)
Verse.Root_Play:Verse.Root_Play.Update_Patch0(Root_Play)
Wolski 25. maj 2021 kl. 1:08 
It seems to happen only for flak pants for some reason.
GKore 25. maj 2021 kl. 2:05 
Happy to read the right-click bug is already getting attention!
I also have this on vanilla and modded weapons (thought is was an issue with VE first). I did not find any logic yet to why some weapons are and others aren't right clickable...
SteveZero  [udvikler] 25. maj 2021 kl. 7:46 
@Gkore, not all weapons are repairable. E.g. anything without quality or one time use weapons. I'll add a message for these situations so its more clear when something is intentionally not repairable vs. something is wrong.

@Wolski, I'll try to see if I can replicate.
GVLT 25. maj 2021 kl. 9:37 
I double that issue. Before installing repair bench any apparel item wasn't interactable via rightclick
GKore 25. maj 2021 kl. 14:24 
Oprindeligt skrevet af SteveZero:
@Gkore, not all weapons are repairable. E.g. anything without quality or one time use weapons. I'll add a message for these situations so its more clear when something is intentionally not repairable vs. something is wrong.

But i have the exact same issue as Reedwhisker. Extract from right clicking the vanilla revolver:

Root level exception in OnGUI(): System.NullReferenceException: Object reference not set to an instance of an object
at RepairableGear.WorkGiver_RepairItem.GetBillGiverRootCell (Verse.Thing billGiver, Verse.Pawn forPawn) [0x00010] in <42fcf2625362430dab868a30c8138bf8>:0
at RepairableGear.WorkGiver_RepairItem.TryFindBestIngredients (Verse.Pawn pawn, Verse.Thing workbench, Verse.Thing repairableThing, System.Collections.Generic.List`1[T] ingredients, RimWorld.Bill bill, System.Collections.Generic.List`1[T] repairCost) [0x00071] in <42fcf2625362430dab868a30c8138bf8>:0
at RepairableGear.CompRepairableThing+<CompFloatMenuOptions>d__2.MoveNext () [0x00272] in <42fcf2625362430dab868a30c8138bf8>:0
at Verse.ThingWithComps+<GetFloatMenuOptions>d__40.MoveNext () [0x00102] in <7927e938de4c4089b4add4215e58d5b1>:0
at (wrapper dynamic-method) RimWorld.FloatMenuMakerMap.RimWorld.FloatMenuMakerMap.AddHumanlikeOrders_Patch23(UnityEngine.Vector3,Verse.Pawn,System.Collections.Generic.List`1<Verse.FloatMenuOption>)
at (wrapper dynamic-method) RimWorld.FloatMenuMakerMap.RimWorld.FloatMenuMakerMap.ChoicesAtFor_Patch3(UnityEngine.Vector3,Verse.Pawn)
at RimWorld.FloatMenuMakerMap.TryMakeFloatMenu (Verse.Pawn pawn) [0x00056] in <7927e938de4c4089b4add4215e58d5b1>:0
at (wrapper dynamic-method) RimWorld.Selector.RimWorld.Selector.HandleMapClicks_Patch1(RimWorld.Selector)
at RimWorld.Selector.SelectorOnGUI () [0x00000] in <7927e938de4c4089b4add4215e58d5b1>:0
at RimWorld.MapInterface.HandleLowPriorityInput () [0x0000f] in <7927e938de4c4089b4add4215e58d5b1>:0
at (wrapper dynamic-method) RimWorld.UIRoot_Play.RimWorld.UIRoot_Play.UIRootOnGUI_Patch1(RimWorld.UIRoot_Play)
at (wrapper dynamic-method) Verse.Root.Verse.Root.OnGUI_Patch1(Verse.Root)
Verse.Log:Verse.Log.Error_Patch2(String, Boolean)
Verse.Root:Verse.Root.OnGUI_Patch1(Root)
Reedwhisker 26. maj 2021 kl. 0:46 
hey. Idk if it helps you, but i forgot to mention that i use Combat Extended. Can it cause this bug?
Sidst redigeret af Reedwhisker; 26. maj 2021 kl. 0:46
SteveZero  [udvikler] 26. maj 2021 kl. 7:53 
Oprindeligt skrevet af Reedwhisker:
hey. Idk if it helps you, but i forgot to mention that i use Combat Extended. Can it cause this bug?

No, CE isn't the problem. I've replicated and fixed the bug already. I'm bundling the fix with an update I'm releasing sometime this week.
Inquisition 26. maj 2021 kl. 20:58 
Achtung is also giving me an error when right clicking any damaged clothing with a pawn I want to put on clothes. I do not have a repair thing built.

Screenshot: https://ibb.co/0BYxsBC

System.NullReferenceException: Object reference not set to an instance of an object
at RepairableGear.WorkGiver_RepairItem.GetBillGiverRootCell (Verse.Thing billGiver, Verse.Pawn forPawn) [0x00010] in <42fcf2625362430dab868a30c8138bf8>:0
at RepairableGear.WorkGiver_RepairItem.TryFindBestIngredients (Verse.Pawn pawn, Verse.Thing workbench, Verse.Thing repairableThing, System.Collections.Generic.List`1[T] ingredients, RimWorld.Bill bill, System.Collections.Generic.List`1[T] repairCost) [0x00071] in <42fcf2625362430dab868a30c8138bf8>:0
at RepairableGear.CompRepairableThing+<CompFloatMenuOptions>d__2.MoveNext () [0x00272] in <42fcf2625362430dab868a30c8138bf8>:0
at Verse.ThingWithComps+<GetFloatMenuOptions>d__40.MoveNext () [0x00102] in <7927e938de4c4089b4add4215e58d5b1>:0
at (wrapper dynamic-method) RimWorld.FloatMenuMakerMap.RimWorld.FloatMenuMakerMap.AddHumanlikeOrders_Patch18(UnityEngine.Vector3,Verse.Pawn,System.Collections.Generic.List`1<Verse.FloatMenuOption>)
at (wrapper dynamic-method) RimWorld.FloatMenuMakerMap.RimWorld.FloatMenuMakerMap.ChoicesAtFor_Patch6(UnityEngine.Vector3,Verse.Pawn)

GM9 29. maj 2021 kl. 9:53 
Floor breaks under the reparing table then colonist start reparing
< >
Viser 1-15 af 65 kommentarer
Per side: 1530 50