RimWorld

RimWorld

Positive Connections
CEM  [developer] 28 Jun, 2024 @ 4:03pm
Bugs
Please report any errors or suspicious activity here.
< >
Showing 1-9 of 9 comments
Ewk95 30 Jun, 2024 @ 3:48am 
Failed to find RimWorld.GatheringDef named 'DIL_Gathering_Storytelling'. DefDatabase<RimWorld.GatheringDef> contains a total of 15 loaded defs.
UnityEngine.StackTraceUtility:ExtractStackTrace ()
(wrapper dynamic-method) Verse.Log:Verse.Log.Error_Patch6 (string)
PerformanceFish.Log/Config/<>c:<.cctor>b__12_2 (string)
PerformanceFish.Log:Error (FisheryLib.Pools.PooledStringHandler)
PerformanceFish.Defs.DefDatabasePatches/Replacement`1<RimWorld.GatheringDef>:LogMissingDef (string)
DIL_PositiveConnections.StorytellingUtility:.cctor ()
DIL_PositiveConnections.StorytellingGameComponent:GameComponentTick ()
Verse.GameComponentUtility:GameComponentTick ()
(wrapper dynamic-method) Verse.TickManager:Verse.TickManager.DoSingleTick_Patch3 (Verse.TickManager)
Verse.TickManager:TickManagerUpdate ()
(wrapper dynamic-method) Verse.Game:Verse.Game.UpdatePlay_Patch2 (Verse.Game)
Verse.Root_Play:Update ()


While I was troubleshooting I've encountered this, seems harmless for now
CEM  [developer] 30 Jun, 2024 @ 3:14pm 
Thanks for pointing that out! I am a bit stumped on how you are getting this error. This isn't 1.4 by chance?

It's possible I rebuilt 1.4 by accident with this code present although, I didn't see this error when I tested with 1.4 the day and morning before I released the update. // I could have missed it since I was looking for an entirely different error :p

I can confirm it is harmless to a game since it will just prevent the interaction ever firing and doing anything. But I'll see if I can find how this could happen.
Miramelle 5 Jul, 2024 @ 9:34am 
I'm getting an error every time storytelling (?) triggers with just this mod and harmony loaded. I think it's getting hung up on braziers, which are a royalty thing, when it looks for gathering spots. I've only got vanilla, so it trips up. Mostly harmless, but I haven't actually had a successful trigger on the event yet despite many tries. I can get hugslogs if you need more info than this to troubleshoot:

On boot:

Could not resolve cross-reference to Verse.ThingDef named Brazier (wanter=gatherSpotDefs)
UnityEngine.StackTraceUtility:ExtractStackTrace ()
Verse.Log:Error (string)
Verse.DirectXmlCrossRefLoader:TryResolveDef<Verse.ThingDef> (string,Verse.FailMode,object)
Verse.DirectXmlCrossRefLoader/WantedRefForList`1<Verse.ThingDef>:TryResolve (Verse.FailMode)
Verse.DirectXmlCrossRefLoader/<>c__DisplayClass16_1:<ResolveAllWantedCrossReferences>b__0 (Verse.DirectXmlCrossRefLoader/WantedRef)
Verse.GenThreading/<>c__DisplayClass7_1`1<Verse.DirectXmlCrossRefLoader/WantedRef>:<ParallelForEach>b__0 (object)
System.Threading.QueueUserWorkItemCallback:WaitCallback_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.QueueUserWorkItemCallback:System.Threading.IThreadPoolWorkItem.ExecuteWorkItem ()
System.Threading.ThreadPoolWorkQueue:Dispatch ()
System.Threading._ThreadPoolWaitCallback:PerformWaitCallback ()

On storytelling attempt (I assume):

Failed to find Verse.ThingDef named Brazier. There are 1334 defs of this type loaded.
UnityEngine.StackTraceUtility:ExtractStackTrace ()
Verse.Log:Error (string)
Verse.DefDatabase`1<Verse.ThingDef>:GetNamed (string,bool)
Verse.ThingDef:Named (string)
DIL_PositiveConnections.StorytellingUtility:IsSocialGatheringSpot (Verse.Thing)
System.Linq.Enumerable/WhereListIterator`1<Verse.Thing>:MoveNext ()
DIL_PositiveConnections.StorytellingUtility:CheckAndTriggerStorytelling ()
DIL_PositiveConnections.StorytellingGameComponent:GameComponentTick ()
Verse.GameComponentUtility:GameComponentTick ()
Verse.TickManager:DoSingleTick ()
Verse.TickManager:TickManagerUpdate ()
Verse.Game:UpdatePlay ()
Verse.Root_Play:Update ()
CEM  [developer] 6 Jul, 2024 @ 11:11am 
@Ewk95, @Miramelle

Thanks, the both of you!

Yes, I see it now - I completely forgot that braziers are a Royalty thing - I never think to test mods with Royalty disabled because I never use anything directly from it in my own mods.

But braziers are of course, a Royalty thing. :p

Storytelling needs to be fixed up anyway. If you'd like to try to trigger it, ideal conditions are a lot of colonists idle (you'll need 2 out of 3 to fire it if I remember correctly) and little or nothing to do, and a campfire.

// A majority of my childhood was lived camping or traveling in the age before personal computers or smart phones.

I was planning to add other triggers such as having a certain kind of room, a "Den" defined in the mod which should possess:

-any recreation source.
-more than one adult-size sleeping spot, bed, etc.
-for extra quality, one or more child-size or animal sleeping spots

You might recognize in the den a typical early colony housing phase. Storytelling is meant to be an occasional buff to this period of a colony's existence or something the player can encourage, along with other planned Gathering type interactions I am working on.

// Modder is modding aloud, in a steam comment.

I am curious as to a modlist of items which don't depend on DLC if one exists. While I don't play vanilla personally (yes, I still play after 8k hours and being a modder) at least one of my testers does.

Thanks for your bug report and for your support of this mod. Together we'll inch it towards perfection.
Miramelle 15 Jul, 2024 @ 5:08am 
Thanks for the Royalty fix! Finally, my pawn who was demanding a fancy brazier to tell stories over at least twice daily will chill out. She's using a campfire like a proper peasant now!
CEM  [developer] 19 Jul, 2024 @ 9:22am 
Originally posted by Miramelle:
Thanks for the Royalty fix! Finally, my pawn who was demanding a fancy brazier to tell stories over at least twice daily will chill out. She's using a campfire like a proper peasant now!

:) I never meant it to be anything but a regular folk activity, though of course all peoples and "groups" of people have storytelling.

The reason for the brazier was imagining 7 desperate tribals including two children, hiding from settlers who are pillaging their 10.5k colony wealth base. There's no wood in reach for a campfire, but someone notes an old ruined brazier, gathers some twigs and makes a proper "space" to tell the young ones how they came out the _last time_ they were raided.

"And, if you think that's dumb, wait until you hear the list of things they won't eat."

[quiet but sincere laughter all the way around]

The mood improves and a grim situation becomes a little more survivable.

It was entirely an accident that Storytelling got out before it was finished, but I am glad to get feedback.

I've been considering some other quick gathering interactions for idle/bored pawns:
-singing in pairs and groups
-if musical instruments are available (either DLC or mods) in > 2 number, a folk-music or musique de l'arte concert
-dancing events
-puppet theatre

If guests are present, quality of performance may have a political impact! :)
R4nD0mI3z 28 Dec, 2024 @ 2:21am 
Hi, I have started getting below error after loading save. I have Royalty Exalted precept from Vanilla Ideology Expanded, the error is thrown for multiple pawns and it looks like positive connections interactions are not triggering anymore (I have notifications enabled for those ;)). I am posting it here but I am not sure if this is some incompatibility or which mod author should fix this.
Exception while recalculating VME_Royalty_Exalted thought state for pawn Leo: System.NullReferenceException: Object reference not set to an instance of an object [Ref 807D58D0] at VanillaMemesExpanded.ThoughtWorker_Precept_Royalty.ShouldHaveThought (Verse.Pawn p, Verse.Pawn otherPawn) [0x00040] in <d7ef91878cfb422cab1cffbc8b3bc631>:0 at RimWorld.ThoughtWorker_Precept_Social.CurrentSocialStateInternal (Verse.Pawn p, Verse.Pawn otherPawn) [0x0004f] in <69945a8ed6c540cf90b578de735e0605>:0 at RimWorld.ThoughtWorker.CurrentSocialState (Verse.Pawn p, Verse.Pawn otherPawn) [0x00010] in <69945a8ed6c540cf90b578de735e0605>:0 at RimWorld.SituationalThoughtHandler.TryCreateSocialThought (RimWorld.ThoughtDef def, Verse.Pawn otherPawn) [0x0001e] in <69945a8ed6c540cf90b578de735e0605>:0 UnityEngine.StackTraceUtility:ExtractStackTrace () (wrapper dynamic-method) MonoMod.Utils.DynamicMethodDefinition:Verse.Log.Error_Patch4 (string) RimWorld.SituationalThoughtHandler:TryCreateSocialThought (RimWorld.ThoughtDef,Verse.Pawn) RimWorld.SituationalThoughtHandler:CheckRecalculateSocialThoughts (Verse.Pawn) RimWorld.SituationalThoughtHandler:AppendSocialThoughts (Verse.Pawn,System.Collections.Generic.List`1<RimWorld.ISocialThought>) RimWorld.ThoughtHandler:GetSocialThoughts (Verse.Pawn,System.Collections.Generic.List`1<RimWorld.ISocialThought>) RimWorld.ThoughtHandler:GetDistinctSocialThoughtGroups (Verse.Pawn,System.Collections.Generic.List`1<RimWorld.ISocialThought>) RimWorld.ThoughtHandler:TotalOpinionOffset (Verse.Pawn) (wrapper dynamic-method) MonoMod.Utils.DynamicMethodDefinition:RimWorld.Pawn_RelationsTracker.OpinionOf_Patch0 (RimWorld.Pawn_RelationsTracker,Verse.Pawn) PositiveConnectionsNmSpc.InteractionWorker_Mediation/<>c__DisplayClass8_0:<RandomSelectionWeight>b__0 (Verse.Pawn) System.Linq.Enumerable:Any<Verse.Pawn> (System.Collections.Generic.IEnumerable`1<Verse.Pawn>,System.Func`2<Verse.Pawn, bool>) PositiveConnectionsNmSpc.InteractionWorker_Mediation:RandomSelectionWeight (Verse.Pawn,Verse.Pawn) RimWorld.Pawn_InteractionsTracker/<>c__DisplayClass36_0:<TryInteractRandomly>b__0 (RimWorld.InteractionDef) Verse.GenCollection:TryRandomElementByWeight<RimWorld.InteractionDef> (System.Collections.Generic.IEnumerable`1<RimWorld.InteractionDef>,System.Func`2<RimWorld.InteractionDef, single>,RimWorld.InteractionDef&) (wrapper dynamic-method) MonoMod.Utils.DynamicMethodDefinition:RimWorld.Pawn_InteractionsTracker.TryInteractRandomly_Patch1 (RimWorld.Pawn_InteractionsTracker) RimWorld.Pawn_InteractionsTracker:InteractionsTrackerTick () (wrapper dynamic-method) MonoMod.Utils.DynamicMethodDefinition:Verse.Pawn.Tick_Patch2 (Verse.Pawn) Verse.TickList:Tick () (wrapper dynamic-method) MonoMod.Utils.DynamicMethodDefinition:Verse.TickManager.DoSingleTick_Patch3 (Verse.TickManager) Verse.TickManager:TickManagerUpdate () (wrapper dynamic-method) MonoMod.Utils.DynamicMethodDefinition:Verse.Game.UpdatePlay_Patch3 (Verse.Game) Verse.Root_Play:Update ()
Last edited by R4nD0mI3z; 28 Dec, 2024 @ 3:23am
R4nD0mI3z 28 Dec, 2024 @ 2:26am 
It is worh noting that error is also thrown when social tab is open for any pawn, but this time there is no mention of any of the mods in stack, though reference is the same:
Exception while recalculating VME_Royalty_Exalted thought state for pawn Leo: System.NullReferenceException: Object reference not set to an instance of an object [Ref 807D58D0] Duplicate stacktrace, see ref for original UnityEngine.StackTraceUtility:ExtractStackTrace () (wrapper dynamic-method) MonoMod.Utils.DynamicMethodDefinition:Verse.Log.Error_Patch4 (string) RimWorld.SituationalThoughtHandler:TryCreateSocialThought (RimWorld.ThoughtDef,Verse.Pawn) RimWorld.SituationalThoughtHandler:CheckRecalculateSocialThoughts (Verse.Pawn) RimWorld.SituationalThoughtHandler:AppendSocialThoughts (Verse.Pawn,System.Collections.Generic.List`1<RimWorld.ISocialThought>) RimWorld.ThoughtHandler:GetSocialThoughts (Verse.Pawn,System.Collections.Generic.List`1<RimWorld.ISocialThought>) RimWorld.ThoughtHandler:GetDistinctSocialThoughtGroups (Verse.Pawn,System.Collections.Generic.List`1<RimWorld.ISocialThought>) RimWorld.ThoughtHandler:TotalOpinionOffset (Verse.Pawn) (wrapper dynamic-method) MonoMod.Utils.DynamicMethodDefinition:RimWorld.Pawn_RelationsTracker.OpinionOf_Patch0 (RimWorld.Pawn_RelationsTracker,Verse.Pawn) RimWorld.SocialCardUtility:PawnsForSocialInfo (Verse.Pawn) RimWorld.SocialCardUtility:Recache (Verse.Pawn) RimWorld.SocialCardUtility:CheckRecache (Verse.Pawn) (wrapper dynamic-method) MonoMod.Utils.DynamicMethodDefinition:RimWorld.SocialCardUtility.DrawRelationsAndOpinions_Patch0 (UnityEngine.Rect,Verse.Pawn) RimWorld.SocialCardUtility:DrawSocialCard (UnityEngine.Rect,Verse.Pawn) RimWorld.ITab_Pawn_Social:FillTab () Verse.InspectTabBase/<>c__DisplayClass19_0:<DoTabGUI>b__0 () Verse.ImmediateWindow:DoWindowContents (UnityEngine.Rect) Verse.Window:InnerWindowOnGUI (int) UnityEngine.GUI:CallWindowDelegate (UnityEngine.GUI/WindowFunction,int,int,UnityEngine.GUISkin,int,single,single,UnityEngine.GUIStyle)
CEM  [developer] 17 Jan @ 1:21pm 
Sorry I didn't reply to this earlier - I looked at the post count and didn't spot the change.

I suspect a bad thing is happening here:

MonoMod.Utils.DynamicMethodDefinition:RimWorld.Pawn_RelationsTracker.OpinionOf_Patch0 (RimWorld.Pawn_RelationsTracker,Verse.Pawn)

Positive Connections itself doesn't patch anything except some ancient code related to marriage proposals, which code does nothing any longer.

We do have a couple cases where we create opinions on the fly so to speak. It's not impossible we've missed some oddball variable which is only ever referenced by that precept since I've not yet tested with it myself.

I do test and play with pretty much the entire VE collection loaded, but I think I've only tested once with the related meme, perhaps even early 1.4.

Thanks for taking the time to detail this. If you are github-familiar you can always report there if you wish instead. That comes to my attention a lot quicker.

No exact date for a point release beyond any day now :) but it will fix this bug, whatever the cause.
< >
Showing 1-9 of 9 comments
Per page: 1530 50