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
It takes a little bit for the reasignment to register, so by clicking fast enough you can exceed the cap by a little.
To the OP: 4+ unassigned settlers or hitting the population cap stops new ones from showing up, otherwise it's (10+happiness/2)% chance to get 1/day if you have a powered (and turned on) radio beacon. You can increase how fast you get settlers by getting more settlements or increasing happiness.
Also if you have Automatron, you can do the Rogue Robot quest if you finished it (and didn't kill the mechanist) or build robots.
That is wrong. Someone interpreted the code wrong. THen the Wiki published it and its been abad rumor circulating since.
When I challenged it becaus eit is EASY to prove wrong. I prove it wrong constantly, especially with recruiting settlements. The person went back to the code and reread it. The code actually shows a penalty that stacks for each idle settler maxing at 4 idle settlers. The problem on why it is wrong is because with a high happiness you can still have a very low chance to recruit each day.
The way to prove it is wrong (or broken) is to take one of your 0 population settlements connect it with a supply line so the provisoner is owned by a different settlmeent so it styas 0 pop.) Then you prebuild for like 12 settlers as in enough food, water and beds for the 12. Then throw in bonus happiness (stores, vault stuff, guard dogs, cats, other stuff etc.) turn you beacon on and then assign 2 to farm, and 4 to happiness stuff like stores, etc.) After that just walk away form the settlement for a while. If your charisma is high enough it should easily recruit form the 6 you left it at to mid teens easily.
Why nobody has removed that from the wiki yet I do not know. It also could have been simply edited right back into the wiki as well. It is a pure brahminshit rumor though.
(Note: if population is >5 you get a 10% recruitment bonus for each population below that.
I did not mention this earlier.)
First Variables:
; radio/attracting NPC stuff
int iMaxSurplusNPCs = 5 const ; for now, max number of unassigned NPCs - if you have this many or more, no new NPCs will arrive.
float attractNPCDailyChance = 0.1 const ; for now, roll <= to this to attract an NPC each day, modified by happiness
int iMaxBonusAttractChancePopulation = 5 const ; for now, there's a bonus attract chance until the total population reaches this value
int iBaseMaxNPCs = 10 const ; base total NPCs that can be at a player's town - this is used in GetMaxWorkshopNPCs formula
float attractNPCHappinessMult = 0.5 const ; multiplier on happiness to attraction chance
Where the script calls the recruitment function:
; REAL UPDATE ONLY
if bRealUpdate
DailyUpdateAttractNewSettlers(ratings, updateData)
EndIf
And the recruitment function:
function DailyUpdateAttractNewSettlers(WorkshopDataScript:WorkshopRatingKeyword[] ratings, DailyUpdateData updateData)
; increment last visit counter each day
DaysSinceLastVisit += 1
; attract new NPCs
; if I have a radio station
int radioRating = GetValue(ratings[WorkshopParent.WorkshopRatingRadio].resourceValue) as int
if radioRating > 0 && HasKeyword(WorkshopParent.WorkshopType02) == false && updateData.unassignedPopulation < iMaxSurplusNPCs && updateData.totalPopulation < GetMaxWorkshopNPCs()
;WorkshopParent.wsTrace(self + " RADIO - unassigned population=" + updateData.unassignedPopulation)
float attractChance = attractNPCDailyChance + updateData.currentHappiness/100 * attractNPCHappinessMult
if updateData.totalPopulation < iMaxBonusAttractChancePopulation
attractChance += (iMaxBonusAttractChancePopulation - updateData.totalPopulation) * attractNPCDailyChance
endif
; roll to see if a new NPC arrives
float dieRoll = utility.RandomFloat()
;WorkshopParent.wsTrace(self + " dieRoll=" + dieRoll + ", attract NPC chance=" + attractChance)
if dieRoll <= attractChance
WorkshopNPCScript newWorkshopActor = WorkshopParent.CreateActor(self)
updateData.totalPopulation += 1
if newWorkshopActor.GetValue(WorkshopParent.WorkshopGuardPreference) == 0
; see if also generate a brahmin
; for now just roll if no brahmin here yet
if GetValue(ratings[WorkshopParent.WorkshopRatingBrahmin].resourceValue) == 0.0 && AllowBrahminRecruitment
int brahminRoll = utility.RandomInt()
;WorkshopParent.wsTrace(self + " brahminRoll=" + brahminRoll + ", attract brahmin chance=" + WorkshopParent.recruitmentBrahminChance)
if brahminRoll <= WorkshopParent.recruitmentBrahminChance
actor newBrahmin = WorkshopParent.CreateActor(self, true)
; NOTE: don't increment total population - brahmin aren't counted as population
endif
endif
endif
endif
endif
endFunction
I aint saying you are lying about reading the code. I know you do. I am saying that line of code probbaly does not work. I can show screenshots and such, but that aint really proof as it is easily faked especially since you vautl terminal can unassign now.
Im telling ya that code is either wrong or broken. I go over 4 unassigned settler settlers all the time and I use zero mods. Other people have backed me on this as well. Like I said it is easily proven wrong and easy to do on your next play through. I mena you could even jsut send most your settlers somewhere else and see if ya didnt want to build a new one.
I can even remember near release someone posting a bug that gave them a 64 population at Oberland Station along with like 8 brahmin. No way they were all employed. I remember saying he had to use mods or something to have 8 brahmin. Course thsi was all befor epeople figured things out.
Anyways, Note that if this IF statement is not met, the entire function is skipped:
if radioRating > 0 && HasKeyword(WorkshopParent.WorkshopType02) == false && updateData.unassignedPopulation < iMaxSurplusNPCs && updateData.totalPopulation < GetMaxWorkshopNPCs()
A closer look at the relevant part:
updateData.unassignedPopulation < iMaxSurplusNPCs
right there - unassigned settlers must be less than iMaxSurplusNPCs
iMaxSurplusNPCs is set to 5, so unassigned must be less than 5 (i.e. 0 to 4) or the recruitment is just skipped.
EDIT: bored, I posted the ENTIRE recruitment code, it works.
You can get more than 4 unassigned (by transfering or building robots or whatever), it just will not get new settlers from the radio beacon once that is the case.
Seriously, I broke it down for you.
I've played 1000 hours and never had settlers show up to any of my settlements that had 4+ unassigned. So the code matches my experience in game...
http://steamcommunity.com/app/377160/discussions/0/360671352685223831/?ctp=3
Here is the discusion from august 2016. A couple people said they had the same thing happen where they went way over as well. So it aint just me. There was another discussion like a few weeks ago people also said they were over.
It could even be linked to a data corruption issues (although never seen a 0 population one), who knows. Somethign causes the max idle people to be ignored and still recruit.
I am about ready to populate the Commonwealth for the Minuteman ending in the next few days. However liek I said there is no real way to post a screenshot showing the unemployed people becaus eI coudl easily jsut unassign them with the vault terminal. Any video would obviously have a huge time gap of 8 days in game or more to show it. So the only way to actually see it as proof is try it yourself.
I have well over 1000 settlers total too.
When it comes to a random internet claim vs what the code says and what I have seen in game...
That if statement correctly turns off recruitment if there is no radio or if it is off or if it is unpowered.
That if statement correctly turns off recruitment if the workshop isn't supposed to get settlers.
That if statement correctly turns off recruitment if the popultion cap has been reached.
But somehow that if statement is 'broken' in the unassigned < 5 part?
It aint a random claim. Others have said it is broken as well. Even jsut posted you a link of others saying it as well.
I could post screenshots to back the claim as I repopulate the settlement but that woudl require trusting me in the fact I would not fake them. If you trusted me not to fake them then that same trust should been used to believe it does break, somehow.
Who knows why some bugs exist. I sure as ♥♥♥♥ dont. To this day I can not pick a single wild razorgrain plant, yet I can scrap those plants on Spectacle Island. Pretty sure not everyone is affected by that bug.
Oh and Emogene took Brandis's gun in my playthrough completing the Lost Patrol quest before Prydwen arrived.
You say 'it breaks somehow'. I don't see how it would break if clearly the conditional statement does turn off recruiting properly and its a simple 'is this < 5' check.
As far as trust, if someone is telling the code the game runs on is wrong and they are right...
Well, I'm going to put more trust in the code (and my personal experience).
Unless you can point out how it 'breaks' or how I am mis-reading it...
The wild razorgrain thing is the same for every one.
I can build it up to a population of 6 with a happiness of 90+ then take a screenie witht he date.
Then wait until it reaches say 12 or more, take a screenshot of the pipboy data.
Go back to the settlement and open vault terminal showing 6 idle settlers.
Like I said though it could be easily faked with just unemploying 6 settlers wiht vualt terminal.
Some of the sanctuary NPCs (the named ones) may not 'count' as unassigned.
With console you can check with GetValue WorkshopRatingPopulationUnassigned
I can make a .bat that checks every workshop at the same time (like I did for synths).
I don't know if unassigned companions count either.
(The WorkshopRatings are passed to the updateData structure right before the daily update, if you are wondering why the name isn't the same as the conditional statement.
updateData.unassignedPopulation = WorkshopRatingPopulationUnassigned for the current workshop being updated)