the Sim Settlements forums!

Register a free account today to become a member! Once signed in, you'll be able to participate on this site by adding your own topics and posts, as well as connect with other members through your own private inbox!

Settlers randomly losing assignments

yaugie

Well-Known Member
Messages
3,656
Since the last major update (2.0.3), every time I travel back to a settlement I've built up, one settler at random will have 'lost' one of their assignments - either Home, Job, or Hobby. This is Great(tm) since it means something will now be short.

Has anyone else seen this? I have no idea what could've caused this to start happening, it was fine before. I have all auto-assign functionality turned off.

EDIT TO SAVE YOU READING THE ENTIRE THREAD:
At this point I am 99% sure it is nothing to do with the Disease system, and believe it to be an issue of Settlers temporarily losing even which settlement they belong to and losing an assignment in the process. Testing continues.
 
Last edited:
Hang on, you say it doesn't always trigger it. Does it trigger it sometimes? I don't need it to always happen, I just need it to happen often enough that I can put in some debug code. It's also interesting if it hasn't happened before you fast travel, but then has directly after ...
 
It's not removing them from ALL their assigned plots, no. My "theory" is that it actually is, based on how the vanilla HUD's "Population" number flickers up and down briefly and how I regularly see it have to recalculate Food/Water/Defense values at a time taken that roughly equals "assigned to something else, then back to the Plot again", but it's reassigning the Settler back onto their plots again so quickly it's not noticable otherwise - but that sometimes, it 'forgets' the reassign phase of that.
 
Last edited:
Does this include Codsworth always losing his assignment, or is he just a lazy sod? I have him in Graygarden, and he is supposed to be working the power plot, but at every visit, he's just toodling about doing nothing.
 
That's a base game issue
He seems to be quite content, acting as mayor. I gave him the job at Sanctuary and 2 real days of playtime in, he's still on the job.

But another question, do deseases lead to settlers leaving their work assignment? I have 24 settlers at Sanctuary, but my farm plots and a number of industrial ones have lost their workforce.
 
He seems to be quite content, acting as mayor. I gave him the job at Sanctuary and 2 real days of playtime in, he's still on the job.

But another question, do deseases lead to settlers leaving their work assignment? I have 24 settlers at Sanctuary, but my farm plots and a number of industrial ones have lost their workforce.
He will also do trade line between two settlements if manual assigned but not plot assigned. The problem is he can only do limited things.
 
But another question, do deseases lead to settlers leaving their work assignment?
There's a setting for incapacitated settlers, but I haven't looked into it properly. I assumed they would unassign when in that state, but I don't actually know how to tell if a settler is incapacitated...

As for Codsworth, I also have him as a leader (for Graygarden, with mostly robots focused on material production).
 
In my current game, which is fairly new, 1 of the 3 settlers that join sanctuary shortly after old salvager (old paul?) will periodically quit his current job and if there's another plot go get assigned to that. I put a stop to that by ensuring I have no unmanned plots. Even if it wastes my materials from the work benches or from virtual storage.

Also, at my sanctuary before I limited the plots available Codsworth would for some reason swap with a settler on a plot but then would become unassigned and then the settler would not reassign automatically. I have Workshop framework assignments off and I let SS2 manage it. I'm wondering if its just Codsworth that keeps wrecking things at whatever location he's at. Maybe if I make him the settlement leader he will stop this behavior.
 
do deseases lead to settlers leaving their work assignment? I have 24 settlers at Sanctuary, but my farm plots and a number of industrial ones have lost their workforce.
From what I have seen, no. Even when "incapacitated" the plot still shows as having a worker for me. My testing of this "forgetting assignments" issue has thus far looked like Disease is not the cause - it happens to "healthy" people too.
When "incapacitated" the settler will try curling up in their bed - or a Hospital Bed if there is one free - or just on the fkn ground if they dont have an actual bed.

And Codsworth has always been flaky about assignments other than vanilla Provisioner for me. I just let him float around in Sanctuary doing whatever and maybe send him to help Mansfield on cleaning duty in HQ - not the "optimal" choice stats wise but it IS his defining personality trait so thats his job.
 
Last edited:
Since the last major update (2.0.3), every time I travel back to a settlement I've built up, one settler at random will have 'lost' one of their assignments - either Home, Job, or Hobby. This is Great(tm) since it means something will now be short.
I experienced this for the first time with a new game on SS2 v 2.1.3. Both Marcy and Jun were unassigned from their residential plots. My settings are pretty close to "low involvement" and I have auto assignment turned off.

So far this is the only time I have seen this in ~26 hours of gameplay. I'll keep playing to see if this repeats. If it does, I can add some debug code to see if I can shake something loose.

Unrelated: performance seems to be a lot better by not having to do all the resource calculations. (all costs settings are off) I have noticed far less script lag.
 
So far this is the only time I have seen this in ~26 hours of gameplay. I'll keep playing to see if this repeats. If it does, I can add some debug code to see if I can shake something loose.
Let us know, I have basically given up on trying to find any kind of pattern. (in fact I havent even opened fo4 in a week - "V Rising" is more fun than expected)
 
Unrelated: performance seems to be a lot better by not having to do all the resource calculations. (all costs settings are off) I have noticed far less script lag.
I have that off by default, since I don't want to embark on constant shopping trips to keep my settlements afloat. In highly populated settlements, I still got a lot of script lag, but once everything's loaded, things go smoothly.
 
An additional note: I'm reasonably confident it's actually happening in kinggath's Youtube Lets Play Livestreams, based on the amount of his settlements where I keep on seeing Level 2 or 3 Plots with nobody assigned to them, although I can't say for certain because he has also been harvesting Generic Settlers to send to HQ.
 
I think the only way that KG will be able to track down this Random Unassignment issue is if he has a save file or files to comb through.
I've logged an issue for it, with a save file where 3 of my settlers unassigned from their residiential plots.

If you don't have a huge mod list, and can make a save file when this occurs, please post it somewhere on a google drive (or other place that he can download it from) then, provide a link to it on this thread. I'll add the links to the logged issue.

Not sure when he will be able to get to reviewing the files, with development of C3 and the big HQ release coming.
 
I've been experiencing this very annoying issue as well. I see the same lines in the logs as in yaugie's post for every plot it has happened to. Some were when I was definitely in the settlement, but I can't say they all were. Currently peeping the scripts to see if I notice anything.
 
Got it to happen again and stack traced it.
<unknown self>.utility.Wait()
How can a Self object be unknown? :todd:

Bool Function TryToAssignActor(Actor newActor = None, Bool abManualAssignment = false, Int aiTargetSlot = 0
When this is called with newActor = none the assigned plot owner (if exists) will be unassigned. This should only happen if the player unassigned the plot owner. i.e. assigned them to another object or moved them to another settlement.

So the question becomes, "Is something calling this in error?"
 
At this point I'm starting to think this is some sort of issue with the limitations of the original assignment scripting that SS2 uses. It feels like a jet engines strapped to roller skates kind of situation where whatever flaws the vanilla assignment scripts have are being amplified. Likely it won't be fixed unless the vanilla assignment scripts are rewritten specifically to support SS2's functions - which would be a tall order and would potentially create conflicts with other mods. Might be worth it in the end though if someone had the skills/time to pull it off, even though it's a gigantic project.
 
At this point I'm starting to think this is some sort of issue with the limitations of the original assignment scripting that SS2 uses. It feels like a jet engines strapped to roller skates kind of situation where whatever flaws the vanilla assignment scripts have are being amplified. Likely it won't be fixed unless the vanilla assignment scripts are rewritten specifically to support SS2's functions - which would be a tall order and would potentially create conflicts with other mods. Might be worth it in the end though if someone had the skills/time to pull it off, even though it's a gigantic project.
Skyrim has an optimized vanilla scripts mod that addresses weird stuff in vanilla scripting has to be loaded directly after unofficial patch and will be overwritten by other mods using the vanilla but it can be done guess would need to be added to wsfw and just hope no mods overwrite later in the load order.
 
Well, per the stack trace, Bool Function AssignActor(Actor newActor = None) is being called at line 3291 line in WorkshopParentScript.AssignObjectToWorkshop(...). This eventually leads to a call to Bool Function TryToAssignActor(Actor newActor = None, Bool abManualAssignment = false, Int aiTargetSlot = 0). The section can be seen here:


It is being called because actorIndex == -1 as the actor owner (it's Franklin from SS2) is not being returned from WorkshopParent.GetWorkshopActors(...) for whatever reason, so it can't be found in the array WorkshopActors. There should be 10 actors at this workshop (Abernathy) and it is only returning 9.

So the question now becomes, why are not all actors being returned? Is there some other code running in parallel that is removing them temporarily? Is it script lag? Since WorkshopParent.GetWorkshopActors(...) calls ObjectReference.GetWorkshopResourceObjects(...), is it an engine level bug?
 
Last edited:
Top