Install Steam
login
|
language
简体中文 (Simplified Chinese)
繁體中文 (Traditional Chinese)
日本語 (Japanese)
한국어 (Korean)
ไทย (Thai)
Български (Bulgarian)
Čeština (Czech)
Dansk (Danish)
Deutsch (German)
Español - España (Spanish - Spain)
Español - Latinoamérica (Spanish - Latin America)
Ελληνικά (Greek)
Français (French)
Italiano (Italian)
Bahasa Indonesia (Indonesian)
Magyar (Hungarian)
Nederlands (Dutch)
Norsk (Norwegian)
Polski (Polish)
Português (Portuguese - Portugal)
Português - Brasil (Portuguese - Brazil)
Română (Romanian)
Русский (Russian)
Suomi (Finnish)
Svenska (Swedish)
Türkçe (Turkish)
Tiếng Việt (Vietnamese)
Українська (Ukrainian)
Report a translation problem






I posted a new version which should help isolate where the problem is happening without spamming everyone's logs and slowing things down.
Now, if an exception happens, it'll give red text with a step 1, 2, 3, or 4 depending where the problem happened. That should at least tell me where to look.
at OneBedToSleepWithAll.Patch.RestUtility__FindBedFor.Postfix
at RimWorld.RestUtility.FindBedFor
- POSTFIX densevoid.hui.personalworkcat: Void OneBedToSleepWithAll.Patch.RestUtility__FindBedFor:Postfix(B
at RimWorld.RestUtility.FindBedFor (Verse.Pawn p) [
at RimWorld.JobGiver_GetRest.TryGiveJob (Verse.Pawn pawn)
at Verse.AI.ThinkNode_JobGiver.TryIssueJobPackage (Verse.Pawn pawn, Verse.AI.JobIssueParams jobParams) [0x00000] in <24d25868955f4df08b02c73b55f389fe>:0
at Verse.AI.ThinkNode_PrioritySorter.TryIssueJobPackage (Verse.Pawn pawn, Verse.AI.JobIssueParams jobParams) [0x000f2] in <24d25868955f4df08b02c73b55f389fe>:0
UnityEngine.StackTraceUtility:ExtractStackTrace ()
(wrapper dynamic-method) MonoMod.Utils.DynamicMethodDefinition:Verse.Log.Error_Patch2 (string)
Verse.AI.ThinkNode_PrioritySorter:TryIssueJobPackage
"CheckIsHavePartnersPolygamyBedOccupied : No occupied partner bed found for [NAME] . "
" Postfix RestUtility .FindBedFor : No available bed found for [NAME] , returning Bed406052 . "
I've noticed that the [NAME] displayed is always a prisoner or a wild animal ; I can provide a log file if needed .
https://gist.github.com/HugsLibRecordKeeper/f80be8872f87dd1c521757165ce8182d
oy! this is throwing reds out of a sudden! my savegame seems broken, my armmy of 56 dryads doesn't sleep anymore!
pls reverse whatever you did, tonight i have (had?) plans to play lots of rimworld..................
Hopefully this will fix the issues for everyone else... if you're having bad TPS, try unsubscribing and resubscribing to force an update, and if that doesn't fix it let me know.
OneBedToSleepWithAll.Patch.RestUtility__FindBedFor.Postfix(...) is throwing a NullReferenceException because it assumes __result (the bed) is never null. But FindBedFor can legitimately return null (no valid bed), and your patch chain makes that more likely.
Method: virtual System.String RimWorld.Building_Bed::GetInspectString()
Verse.Thing:DoTick ()
Verse.TickList:Tick ()
(wrapper dynamic-method) MonoMod.Utils.DynamicMethodDefinition:Verse.TickManager.DoSingleTick_Patch1 (Verse.TickManager)
(wrapper dynamic-method) MonoMod.Utils.DynamicMethodDefinition:Verse.TickManager.TickManagerUpdate_Patch1 (Verse.TickManager)
(wrapper dynamic-method) MonoMod.Utils.DynamicMethodDefinition:Verse.Game.UpdatePlay_Patch1 (Verse.Game)
Verse.Root_Play:Update ()
[Ref 97863908] Duplicate stacktrace, see ref for original
UnityEngine.StackTraceUtility:ExtractStackTrace ()
Verse.Log:Error (string)
Verse.AI.ThinkNode_PrioritySorter:TryIssueJobPackage (Verse.Pawn,Verse.AI.JobIssueParams)
Verse.AI.ThinkNode_Priority:TryIssueJobPackage (Verse.Pawn,Verse.AI.JobIssueParams)
Verse.AI.ThinkNode_Tagger:TryIssueJobPackage (Verse.Pawn,Verse.AI.JobIssueParams)
Verse.AI.ThinkNode_Subtree:TryIssueJobPackage (Verse.Pawn,Verse.AI.JobIssueParams)
Verse.AI.ThinkNode_Priority:TryIssueJobPackage (Verse.Pawn,Verse.AI.JobIssueParams)
Verse.AI.Pawn_JobTracker:DetermineNextJob (Verse.ThinkTreeDef&,bool)
Verse.AI.Pawn_JobTracker:TryFindAndStartJob ()
Verse.AI.Pawn_JobTracker:EndCurrentJob (Verse.AI.JobCondition,bool,bool)
Verse.AI.Pawn_JobTracker:JobTrackerTickInterval (int)
I've pushed a new version which should hopefully help with that. Now, if the vanilla function says to go to a bed marked "Medical" in the code, this mod won't touch the choice.
Test setup:
- Four colonists
- All bisexual lovers of all other colonists
- 4 double beds in a 2nd floor barracks
- MultiFloors "Living" level set to 2nd floor for all pawns
- Each double bed set to polyamory mode with a single assigned pawn
- Put all colonists on the ground floor
- Set all pawn schedules to sleep all day
- Forced sleep need to almost empty to force sleeping
The information on each bed showed a single Master, "partners count: 3" and a "Current partner." The colonists all went upstairs to bed after finishing their current job, but all went to separate beds.
I added a colonist, set her Living level to the 2nd floor without a bed, and made her a lover with everyone. When she got sleepy on the 1st floor, MultiFloor threw an error about changing levels to rest, and she kept working. If I sent her to the 2nd floor manually, no error appeared, but she slept on the floor instead of with a lover.
From there, for each test case, I'd make 4 double beds, and assign each person as a master to one. It shouldn't matter if they're in individual bedrooms or in a barracks.
The things to check would be, do the beds show a guest in addition to the owner? If not, things are very broken. If so, will they join someone else in bed? Or at the very least, will they find their way to their own bed, and not just stand around until they collapse on the floor? That would be the worst level of broken.
If I make 4 pawns, force them all to be lovers of each other, and give each of them their own bedroom with a double bed assigned to only 1 pawn, what behaviour should I see when they go to bed? What moodlets should they have?
I'm not actually sure if this mod assigns them again immediately or it'll take until the next changeover happens, but either way it shouldn't be a significant problem.
DoubleBed2184376 had pawns assigned that don't have it as an assigned bed. Removing.
UnityEngine.StackTraceUtility:ExtractStackTrace ()
Verse.Log:Warning (string)
RimWorld.CompAssignableToPawn_Bed:PostPostExposeData ()
RimWorld.CompAssignableToPawn_Bed:PostExposeData ()
It's fairly safe to add and remove this mid-game, so feel free to experiment and let us know. It probably won't make everything explode, but I'd make a hard save first just in case.
In other words, would it work okay-ish if all of the bedrooms are on the same level? Or would it still fail to work if, say, all of the beds are on the 2nd floor, and the pawn is on the ground level when they decide to go to bed and check for possible bed locations?
Lucero threw exception in WorkGiver DoctorRescue: System.NullReferenceException: Object reference not set to an instance of an object
at RimWorld.SpouseRelationUtility.GetLoveRelations
at OneBedToSleepWithAll.PolygamyModeUtility.CheckIsHavePartnersPolygamyBed
at OneBedToSleepWithAll.Patch.RestUtility__FindBedFor.Postfix
at RimWorld.RestUtility.FindBedFor (
- POSTFIX densevoid.hui.personalworkcat: Void OneBedToSleepWithAll.Patch.RestUtility__FindBedFor:Postfix(
at RimWorld.WorkGiver_TakeToBed.FindBed (Verse.Pawn pawn, Verse.Pawn patient)