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!

Works as intended Alternate recruitment doesn't seem to be working

Excessive Paranoia

Active Member
Messages
106
I've had it turned on for a couple of weeks of in-game time and I've had available industrial and residential plots just sitting vacant for that entire time. I've got near full employment (only children from the orphans mod don't have jobs / homes) and full meters for all of the basic resources, so its not like there isn't room to expand and yet still no one new comes. Whats odd is that I've got 11 charisma, so even if the alternate recruitment wasn't turned on, I should be able to grow my settlements, but they seem stuck at around 15-17 residents.

I'm not ruling out the possibility that I'm doing something wrong, but it really seems like the alternate recruitment isn't working at all.

EDIT: To test a theory I built 7-8 more industrial plots to see if the fact that I had several unemployed children in my settlements was causing the mod to think I didn't have available work, but even after waiting another 7 days of time, all of my plots sit empty.
 
Both my recruitment and vanilla recruitment will stop if you have more then 4 unemployed settlers.

I wonder if those children are counting toward the unemployed count (especially if vanilla recruitment isn't working either as I don't touch vanilla recruitment at all). Try sending them to another settlement and let me know if that makes a difference.
 
Both my recruitment and vanilla recruitment will stop if you have more then 4 unemployed settlers.

I wonder if those children are counting toward the unemployed count (especially if vanilla recruitment isn't working either as I don't touch vanilla recruitment at all). Try sending them to another settlement and let me know if that makes a difference.

Ok, I've sent away all children to other settlements, leaving the only two "officially" unemployed people in my Sanctuary settlement as Mama Murphy and the provisioner linking it with Starlight Drive-in. I then use the couch to wait through a full month of days and not one new person showed up. I'm not sure how well this tests the issue though as I'm not 100% sure settlement changes are calculated through the wait for command. That said, on a hunch I enabled the new options to count vanilla jobs as jobs and vanilla beds as homes and within 24 hours, I had a new settler appear. Based on this result, it seems like the current setup where SS doesn't count activities as jobs unless they are part of SS leads to a situation where the alternate recruiting method can see too many unemployed people and prevent the settlement from growing even if you have several settlers working on non-SS jobs like communications for the salvage beacons, student / teacher desks, or provisioners. This is only a theory, but it seems to pan out based on what I've just seen.

If the alternate recruitment method does indeed use the Sim Settlements job system for its expansion, I wonder if there is a way to disconnect the two in a way that still only expands the settlement population if there is an available SS job, but still counts the vanilla assignments as employment?

EDIT: I've tried the above experiment a couple of different times trying to get the same result without waiting through a month of in-game time and its not proving to be repeatable. I've sent all of my children to other settlements and then set the vanilla jobs / beds options right away, but then not gotten a new settler for 1-2 weeks. I'm thinking that the random nature of the recruitment method is making testing difficult because its impossible to say if its taking time because not all of the requirements have been met or because I'm getting bad rng rolls. Is there a way to set the chance to receive a new settler to 100% as soon as all of the requirements have been met so I can eliminate that variable?
 
Last edited:
Ok, I've sent away all children to other settlements, leaving the only two "officially" unemployed people in my Sanctuary settlement as Mama Murphy and the provisioner linking it with Starlight Drive-in. I then use the couch to wait through a full month of days and not one new person showed up. I'm not sure how well this tests the issue though as I'm not 100% sure settlement changes are calculated through the wait for command. That said, on a hunch I enabled the new options to count vanilla jobs as jobs and vanilla beds as homes and within 24 hours, I had a new settler appear. Based on this result, it seems like the current setup where SS doesn't count activities as jobs unless they are part of SS leads to a situation where the alternate recruiting method can see too many unemployed people and prevent the settlement from growing even if you have several settlers working on non-SS jobs like communications for the salvage beacons, student / teacher desks, or provisioners. This is only a theory, but it seems to pan out based on what I've just seen.

If the alternate recruitment method does indeed use the Sim Settlements job system for its expansion, I wonder if there is a way to disconnect the two in a way that still only expands the settlement population if there is an available SS job, but still counts the vanilla assignments as employment?

EDIT: I've tried the above experiment a couple of different times trying to get the same result without waiting through a month of in-game time and its not proving to be repeatable. I've sent all of my children to other settlements and then set the vanilla jobs / beds options right away, but then not gotten a new settler for 1-2 weeks. I'm thinking that the random nature of the recruitment method is making testing difficult because its impossible to say if its taking time because not all of the requirements have been met or because I'm getting bad rng rolls. Is there a way to set the chance to receive a new settler to 100% as soon as all of the requirements have been met so I can eliminate that variable?

When I get home from work, let me send you a new version of the recruitment script that has debugging enabled. that will let the system log if you a) if you're getting a roll, b) how many SS jobs/houses it thinks you have available and c) if it is rolling, what it rolls so you can tell if it's appropriate that you did/didn't get a settler.

As for using wait to test: you can, but it's better to wait in 12 hour increments because the dailyupdate fires, then sets an offset to run the actual code (same as vanilla workshops). As such repeated waiting isn't as effective, but if you wait in 12 hour chunks and give it 10 to 20 seconds between waits to let all scripts process, it should provide a decent test result.

Edit:
I'll add another debug as well to output the number of unemployed settlers (I don't recall if this is in my current debug outputs), so we can see how many it thinks are unemployed. Unemployed settlers are actually a vanilla check and not my code, it has nothing to do with SS jobs or non-SS jobs, but rather just settlers who don't have a work object assigned according to the workshop system. SS job plots are work objects, just like communication stations, barber chairs, etc.
 
Last edited:
When I get home from work, let me send you a new version of the recruitment script that has debugging enabled. that will let the system log if you a) if you're getting a roll, b) how many SS jobs/houses it thinks you have available and c) if it is rolling, what it rolls so you can tell if it's appropriate that you did/didn't get a settler.

As for using wait to test: you can, but it's better to wait in 12 hour increments because the dailyupdate fires, then sets an offset to run the actual code (same as vanilla workshops). As such repeated waiting isn't as effective, but if you wait in 12 hour chunks and give it 10 to 20 seconds between waits to let all scripts process, it should provide a decent test result.

Edit:
I'll add another debug as well to output the number of unemployed settlers (I don't recall if this is in my current debug outputs), so we can see how many it thinks are unemployed. Unemployed settlers are actually a vanilla check and not my code, it has nothing to do with SS jobs or non-SS jobs, but rather just settlers who don't have a work object assigned according to the workshop system. SS job plots are work objects, just like communication stations, barber chairs, etc.

Sounds good

EDIT: This might be too big of an ask, but is it possible to for the debug output to show which settler reference ids are connected with each activity in the settlement, including unemployed? The reason for this is that I'm not 100% sure that characters like Mama Murphy are employed even though she shows up as assigned when looking at her in workshop view. A secondary reason for this is that several of my settlements have had 1-3 "missing" settlers for weeks now and I'm thinking they may be counting as unemployed and causing issues. Before you say it, its not the provisioner as I've already accounted for him, though I'm not sure if his Brahmin counts as a member of the settlement. But if I'm consistently getting 15 people show up when I ring the bell, including the provisioner, when the settlement has 17 people, the end result could be that those 2 are counting as unemployed, leaving an even smaller margin for error with assigned tasks. If I can track them down by reference id, its another variable that can be eliminated. That said, if its not something thats going to be feasible, don't bother.
 
Last edited:
Sounds good

EDIT: This might be too big of an ask, but is it possible to for the debug output to show which settler reference ids are connected with each activity in the settlement, including unemployed? The reason for this is that I'm not 100% sure that characters like Mama Murphy are employed even though she shows up as assigned when looking at her in workshop view. A secondary reason for this is that several of my settlements have had 1-3 "missing" settlers for weeks now and I'm thinking they may be counting as unemployed and causing issues. Before you say it, its not the provisioner as I've already accounted for him, though I'm not sure if his Brahmin counts as a member of the settlement. But if I'm consistently getting 15 people show up when I ring the bell, including the provisioner, when the settlement has 17 people, the end result could be that those 2 are counting as unemployed, leaving an even smaller margin for error with assigned tasks. If I can track them down by reference id, its another variable that can be eliminated. That said, if its not something thats going to be feasible, don't bother.

I can't do it with this code no, the settler employment numbers are actually part of the workshop and are returned as an integer, so I'm not determining who is working manually.

updateData.unassignedPopulation = workshopRef.GetBaseValue(ratings[WorkshopParent.WorkshopRatingPopulationUnassigned].resourceValue) as int

Here is a new version of the script, put this in Fallout 4\Data\Scripts\mytigioIndCity\AltRecruitmentBeacon.pex

https://www.dropbox.com/s/z7gj3w9ks6p92xg/AltRecruitmentBeacon.pex?dl=0

Having said all of that, I have a suspicion, but I want to see if your results from the debugging output support it!

You may need to enable papyrus debugging in your CustomFallout4.ini file, just fyi
 
I can't do it with this code no, the settler employment numbers are actually part of the workshop and are returned as an integer, so I'm not determining who is working manually.

updateData.unassignedPopulation = workshopRef.GetBaseValue(ratings[WorkshopParent.WorkshopRatingPopulationUnassigned].resourceValue) as int

Here is a new version of the script, put this in Fallout 4\Data\Scripts\mytigioIndCity\AltRecruitmentBeacon.pex

https://www.dropbox.com/s/z7gj3w9ks6p92xg/AltRecruitmentBeacon.pex?dl=0

Having said all of that, I have a suspicion, but I want to see if your results from the debugging output support it!

You may need to enable papyrus debugging in your CustomFallout4.ini file, just fyi

I actually don't have a "mytigioIndCity" folder in my scripts folder, should I create it for just this script or is that indicative of something being wrong with my install? I installed via NMM by the way.

EDIT: Also, what should I be looking for in debug output? Should it be onscreen while in game or should I be looking for an output log?
 
Ok, so if your suspicion was that the beacon wasn't being worked, then you'd be correct... It didn't even occur to me that the alt beacon was sitting on top of the scav dispatcher until spotting this and then doing a player.moveto the id:

[mytigioIndCity:AltRecruitmentBeacon < (FF00B154)>]Scav Radio: Cannot recruit: bRadioOn is True. Worked is False. Powered is True and global allow recruitment is set to True

Here is the rest of the log: Log

As a test, after making that log, I reloaded the save and assigned the 3 children in Sanctuary to desks. After waiting another 12hrs I checked the log and it indicated the unassigned count to be 2 instead of 5. Waiting another 12hrs showed that I had a successful recruitment roll and got a new settler. So I guess the kids are indeed counted towards unemployed population and vanilla jobs do indeed count as employment. On a separate note, my new settler didn't choose to work any of the 3 sim settlements jobs available and didn't take the available house, so I'm wondering if the assignment code isn't triggering, though that is something for SS and not IC.

With all of this said, you might want to update the detailed building information to say that the alternate recruitment beacon is a function of the Scav Team Dispatcher and the plot must be worked in order for the system to work. Alternatively you could offer a second, non-plot version of the beacon that allows people just to plop it like the vanilla one, but with the new effects.

Thanks for the help in figuring this out though.

EDIT: I'm assuming I should probably pull the script from my data folder, or is it safe to leave in in case I want to check up on how things are working later?
 
It's safe to leave, but you'll want to remove it after my next update for sure because I'll be changing the code a bit (currently if you get 2 dispatchers, you get 2 shots at a settler every day, which is an oversight on my part).

I'm fairly sure the description on the website includes the alternate recruitment, but I'll check/update the one in game. Hopefully when I update the code for the beacon I can also make the radio turn off when the worker leaves, but there is a vanilla bug that makes it so sometimes the radio station continues to play until the game is restarted, and my beacon is a victim of that bug as well.

Glad to hear about the settlers however, and I need to go back and verify if Martial/Recreation plots count as valid SS job plots for settler recruitment (I don't think they do currently)

Edit: oh, on the non-plot version, I considered it and still might do that, but I sorta liked the worker requirement (and if kinggath ends up adding his own alternate recruitment I'll be removing mine, so I don't want to pour too much time into it, it's mostly a feature I added due to several folks requesting it over the suggestions forum :P)
 
Last edited:
I actually don't have a "mytigioIndCity" folder in my scripts folder, should I create it for just this script or is that indicative of something being wrong with my install? I installed via NMM by the way.

EDIT: Also, what should I be looking for in debug output? Should it be onscreen while in game or should I be looking for an output log?

You obviously figured it out, but for others who find this post later:

You create the folder path, it's not an indicator of anything being wrong, normally these are in the BA2, so this loose file version is really just for testing purposes.
 
Glad to hear about the settlers however, and I need to go back and verify if Martial/Recreation plots count as valid SS job plots for settler recruitment (I don't think they do currently)

I went ahead and checked that for you and can confirm that they are not counted. I loaded a save with logging enabled and then waited 2x 12hr to be sure I had given the script a chance to run, then checked the log to see there were only 3 jobs available. Placed one martial and one recreational and then repeated the process. No new settlers, no new construction, still only 3 jobs available.

Here's the log if you're interested: Log

Reference ID for the test case: FF00B154

EDIT: Going back through this log, something has me confused... these two lines:

[07/22/2017 - 03:30:51AM] [mytigioIndCity:AltRecruitmentBeacon < (FF00B154)>]Scav Radio: Adjusted Attraction Chance: 0.770000
[07/22/2017 - 03:30:51AM] [mytigioIndCity:AltRecruitmentBeacon < (FF00B154)>]Scav Radio: Roll: 0.862334 <= 0.770000

Shouldn't that roll have resulted in the addition of a new settler? The block I'm looking at begins on line 636 if you open it with an enhanced editor. Whats more confusing is another one of my settlements (FF00C3AD) did get a new settler with a similar roll...
 
Last edited:
no, 0.862334 is not less then or equal to 0.77

FF00c3AD on the other hand rolled twice in the logs that I can see:
0.388712 which is less then or equal to 0.71
and 0.559328 which is also less then or equal to 0.71
 
no, 0.862334 is not less then or equal to 0.77

FF00c3AD on the other hand rolled twice in the logs that I can see:
0.388712 which is less then or equal to 0.71
and 0.559328 which is also less then or equal to 0.71

I think I get what you did... the math seems wonky to me but that doesn't really matter as long as its working since its hidden.

Thanks again for the help
 
I think I get what you did... the math seems wonky to me but that doesn't really matter as long as its working since its hidden.

Thanks again for the help

It's actually how Bethesda does it as well, so I wanted to remain consistant as some of the percentage chances are coming from them (such as brahmin recruit chance and the base settler recruitment chance of .1)
 
It makes sense to me. Why do an extra programming step to figure out the lowest hit number for a percentage range. Just use any number rolled equal to or below the percentage number already calculated.
 
Top