RimWorld

RimWorld

Way Better Romance
This topic has been locked
"unable to create jobs for date" error
hi, thank you so much for all the work you do! your mod is really amazing, it's added so much life to my little guys in my game, I love being able to play more like it's the sims but survival!


Error:
I'm having an error with dates specifically, I'm not sure what's caused it, but I was able to catch it in the log this time. What happens is one of my married pawns will ask his husband on a date, he says yes, then the date isn't able to happen with the "unable to create jobs for date" log error.


Details:
  • I have: 1-2-3 Personalities M2, Vanilla Social Interactions Expanded, Rocketman and Ideology enabled, but I only see log error text for this mod.
  • Both pawns are already married to each other, best friends, and gay men, with +100 opinion of each other, and same ideology.
  • Precepts are: cheating and breakups forbidden, 1 spouse only, no lovers. Physical love is free. Both pawns also have the "faithful" trait.
  • When it happens, both pawns have recreation set at the same time, and still have at least 40% left before it's at 100%. (In this log, it was 57% for the asker and 82% for the one being asked.)
  • The only schedule types I use are anything, recreation and sleep. They both have the same schedule. (4h of recreation)
  • Romance need for both pawns was at 52%.
  • This time, it happened in the rec room. The pawn being asked was watching TV. No one else was in or around there but them.
  • The weather outside is clear, the temperature is fine, no fires, or any areas with low beauty, lots of space available to walk around etc.
  • After the date failed, the asking pawn decided to recreate alone in a different room entirely. His social tab said that he was asked out, and agreed to the date. Same for the asking pawn. The TV watching pawn finished watching TV to 100% recreation, then went back to working (under the "Anything" schedule type).
  • They're able to skygaze together just fine and do so regularly, as well as the other events like finding each other for kisses, pillowtalk etc.


Log:

<color=#1116e4>[WayBetterRomance]</color> Rhys is going to ask Theo on a date UnityEngine.StackTraceUtility:ExtractStackTrace () Verse.Log:Message (string) BetterRomance.LogUtil:Message (string,bool) BetterRomance.JobDriver_ProposeDate:<MakeNewToils>b__24_0 () Verse.AI.JobDriver:TryActuallyStartNextToil () Verse.AI.JobDriver:ReadyForNextToil () (wrapper dynamic-method) Verse.AI.Pawn_JobTracker:Verse.AI.Pawn_JobTracker.StartJob_Patch2 (Verse.AI.Pawn_JobTracker,Verse.AI.Job,Verse.AI.JobCondition,Verse.AI.ThinkNode,bool,bool,Verse.ThinkTreeDef,System.Nullable`1<Verse.AI.JobTag>,bool,bool,System.Nullable`1<bool>,bool,bool) Verse.AI.Pawn_JobTracker:TryFindAndStartJob () (wrapper dynamic-method) Verse.AI.Pawn_JobTracker:Verse.AI.Pawn_JobTracker.EndCurrentJob_Patch1 (Verse.AI.Pawn_JobTracker,Verse.AI.JobCondition,bool,bool) (wrapper dynamic-method) Verse.AI.Pawn_JobTracker:Verse.AI.Pawn_JobTracker.JobTrackerTick_Patch0 (Verse.AI.Pawn_JobTracker) (wrapper dynamic-method) Verse.Pawn:Verse.Pawn.Tick_Patch1 (Verse.Pawn) Verse.TickList:Tick () (wrapper dynamic-method) Verse.TickManager:Verse.TickManager.DoSingleTick_Patch3 (Verse.TickManager) Verse.TickManager:TickManagerUpdate () (wrapper dynamic-method) Verse.Game:Verse.Game.UpdatePlay_Patch1 (Verse.Game) Verse.Root_Play:Update () <color=#1116e4>[WayBetterRomance]</color> It took 487 ticks for Rhys to walk to Theo UnityEngine.StackTraceUtility:ExtractStackTrace () Verse.Log:Message (string) BetterRomance.LogUtil:Message (string,bool) BetterRomance.JobDriver_ProposeDate:<MakeNewToils>b__24_2 () Verse.AI.JobDriver:TryActuallyStartNextToil () Verse.AI.JobDriver:ReadyForNextToil () RimWorld.Toils_Interpersonal/<>c__DisplayClass4_0:<WaitToBeAbleToInteract>b__0 () Verse.AI.JobDriver:TryActuallyStartNextToil () Verse.AI.JobDriver:ReadyForNextToil () RimWorld.Toils_Interpersonal/<>c__DisplayClass0_0:<GotoInteractablePosition>b__1 () (wrapper dynamic-method) Verse.AI.JobDriver:Verse.AI.JobDriver.DriverTick_Patch0 (Verse.AI.JobDriver) (wrapper dynamic-method) Verse.AI.Pawn_JobTracker:Verse.AI.Pawn_JobTracker.JobTrackerTick_Patch0 (Verse.AI.Pawn_JobTracker) (wrapper dynamic-method) Verse.Pawn:Verse.Pawn.Tick_Patch1 (Verse.Pawn) Verse.TickList:Tick () (wrapper dynamic-method) Verse.TickManager:Verse.TickManager.DoSingleTick_Patch3 (Verse.TickManager) Verse.TickManager:TickManagerUpdate () (wrapper dynamic-method) Verse.Game:Verse.Game.UpdatePlay_Patch1 (Verse.Game) Verse.Root_Play:Update () <color=#1116e4>[WayBetterRomance]</color> Theo agreed to a date with Rhys UnityEngine.StackTraceUtility:ExtractStackTrace () Verse.Log:Message (string) BetterRomance.LogUtil:Message (string,bool) BetterRomance.JobDriver_ProposeDate:<MakeNewToils>b__24_4 () Verse.AI.JobDriver:TryActuallyStartNextToil () Verse.AI.JobDriver:ReadyForNextToil () (wrapper dynamic-method) Verse.AI.JobDriver:Verse.AI.JobDriver.DriverTick_Patch0 (Verse.AI.JobDriver) (wrapper dynamic-method) Verse.AI.Pawn_JobTracker:Verse.AI.Pawn_JobTracker.JobTrackerTick_Patch0 (Verse.AI.Pawn_JobTracker) (wrapper dynamic-method) Verse.Pawn:Verse.Pawn.Tick_Patch1 (Verse.Pawn) Verse.TickList:Tick () (wrapper dynamic-method) Verse.TickManager:Verse.TickManager.DoSingleTick_Patch3 (Verse.TickManager) Verse.TickManager:TickManagerUpdate () (wrapper dynamic-method) Verse.Game:Verse.Game.UpdatePlay_Patch1 (Verse.Game) Verse.Root_Play:Update () <color=#1116e4>[WayBetterRomance]</color> Date walk destinations found from beauty 142.2321 to -2.802691 UnityEngine.StackTraceUtility:ExtractStackTrace () Verse.Log:Message (string) BetterRomance.LogUtil:Message (string,bool) BetterRomance.JobDriver_ProposeDate:TryFindMostBeautifulRootInDistance (int,Verse.Pawn,Verse.Pawn,Verse.IntVec3&) BetterRomance.JobDriver_ProposeDate:TryGetDateJobs (Verse.AI.Job&,Verse.AI.Job&) BetterRomance.JobDriver_ProposeDate:<MakeNewToils>b__24_6 () Verse.AI.JobDriver:TryActuallyStartNextToil () Verse.AI.JobDriver:ReadyForNextToil () Verse.AI.JobDriver:TryActuallyStartNextToil () Verse.AI.JobDriver:ReadyForNextToil () (wrapper dynamic-method) Verse.AI.JobDriver:Verse.AI.JobDriver.DriverTick_Patch0 (Verse.AI.JobDriver) (wrapper dynamic-method) Verse.AI.Pawn_JobTracker:Verse.AI.Pawn_JobTracker.JobTrackerTick_Patch0 (Verse.AI.Pawn_JobTracker) (wrapper dynamic-method) Verse.Pawn:Verse.Pawn.Tick_Patch1 (Verse.Pawn) Verse.TickList:Tick () (wrapper dynamic-method) Verse.TickManager:Verse.TickManager.DoSingleTick_Patch3 (Verse.TickManager) Verse.TickManager:TickManagerUpdate () (wrapper dynamic-method) Verse.Game:Verse.Game.UpdatePlay_Patch1 (Verse.Game) Verse.Root_Play:Update () <color=#1116e4>[WayBetterRomance]</color> Unable to create jobs for date UnityEngine.StackTraceUtility:ExtractStackTrace () Verse.Log:Message (string) BetterRomance.LogUtil:Message (string,bool) BetterRomance.JobDriver_ProposeDate:<MakeNewToils>b__24_6 () Verse.AI.JobDriver:TryActuallyStartNextToil () Verse.AI.JobDriver:ReadyForNextToil () Verse.AI.JobDriver:TryActuallyStartNextToil () Verse.AI.JobDriver:ReadyForNextToil () (wrapper dynamic-method) Verse.AI.JobDriver:Verse.AI.JobDriver.DriverTick_Patch0 (Verse.AI.JobDriver) (wrapper dynamic-method) Verse.AI.Pawn_JobTracker:Verse.AI.Pawn_JobTracker.JobTrackerTick_Patch0 (Verse.AI.Pawn_JobTracker) (wrapper dynamic-method) Verse.Pawn:Verse.Pawn.Tick_Patch1 (Verse.Pawn) Verse.TickList:Tick () (wrapper dynamic-method) Verse.TickManager:Verse.TickManager.DoSingleTick_Patch3 (Verse.TickManager) Verse.TickManager:TickManagerUpdate () (wrapper dynamic-method) Verse.Game:Verse.Game.UpdatePlay_Patch1 (Verse.Game) Verse.Root_Play:Update ()

Thank you for looking! :MHRISE_Felyne:
< >
Showing 1-2 of 2 comments
divineDerivative  [developer] Apr 4, 2024 @ 7:51am 
With no actual error message between those last two, it just means that a path couldn't be found. The code for that is basically a copy of what vanilla uses for 'go for a walk' but for two pawns instead of just one. It's not really an error if pathing fails, it's just something that happens sometimes. Normally if a joy giver doesn't produce valid results, they just try another joy giver and the player never knows about the ones that failed. But since dates are broken up into two jobs, asking and doing, and I don't try to find a path until the date has been agreed to, players notice when it doesn't happen. Pathfinding is kind of expensive, so I wanted to avoid doing it unnecessarily.

All that said, I never went over the code for finding the starting location, and it looks different than what vanilla uses for 'go for a walk'. So it's possible it's finding a starting cell in a location that doesn't meet the requirements for the pathing code. I'll take a look, and if it seems fine I might just have to do the pathfinding earlier, since players keep thinking it's a error.
divineDerivative  [developer] Apr 4, 2024 @ 9:57am 
Changed the starting position validation to be the same as the rest of the path, we'll see if that helps.
< >
Showing 1-2 of 2 comments
Per page: 1530 50