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!

Question UFO4P and WorkshopParent

altasilvapuer

Well-Known Member
Messages
166
Noticed today that Workshop Framework is reverting a couple changes made by UFO4P to the WorkshopParent quest record (0002058E) and I'm trying to figure out why, since all the instructions here are to place UFO4P above WSFW.

PROPERTIES:
There's an added Property called WorkshopEnemyFaction that's used to fix a bug (#27621) where killing Synth Infiltrators would hit the settlement with a Happiness malus. Apparently the malus is normally there because in the base game, all settlers are Protected; ergo if one dies, it's because of the player, so the settlement should be "mad" at them, per the comments in the HandleActorDeath script. (as an unrelated aside, I'm now curious how the various Mortal Settlers mods handle this, if at all?)

ALIAS:
There's also three edits to aliases in WorkshopParent:
Two of them deal with Provisioners changing their name back to Settler when re-assigned (#19653), and the third flags the Vault-Tec Rep as Protected when you recruit him and send him to a settlement, so he doesn't die along the way (#24488)

Most of these seem to date pretty far back in UFO4P's history, so I'm a little surprised they aren't in WSFW. Are these issues circumvented somehow by the new scripts, or were these just missed?

-asp

EDIT: After some discussion on xEdit's Discord, it looks like BenRierimanu has already filed a GitHub bug, as well. You can find it here:
 
Noticed today that Workshop Framework is reverting a couple changes made by UFO4P to the WorkshopParent quest record (0002058E) and I'm trying to figure out why, since all the instructions here are to place UFO4P above WSFW.
Just because it is in the patch does not make it correct. Ultimately you should be sending this to the Patch team for making a change to the code incorrectly. Accepted I play on Xbox it might be different on PC, but there are many changes in the patch exactly like this one, not required, good reason not to use it.
There's an added Property called WorkshopEnemyFaction that's used to fix a bug (#27621) where killing Synth Infiltrators would hit the settlement with a Happiness malus. Apparently the malus is normally there because in the base game, all settlers are Protected; ergo if one dies, it's because of the player, so the settlement should be "mad" at them, per the comments in the HandleActorDeath script. (as an unrelated aside, I'm now curious how the various Mortal Settlers mods handle this, if at all?)
Lets just deal with this one. Originally the game had mortal settlers and then Beth updated the game and changed it, I forget what date and that specific line may just be a leftover or maybe the origin report/request was before the update (Oct 2019).
Think about it, have you ever killed a protected synth infiltrator, during a settlement attack or during the suspected synth quest? The answer is no, or at least I never have, in the first they are always dead when I get there, in the second the settlers kill them so they are no longer protected and likely not even settlers any more just simply a synth. If you are using a mod that lets you find synths in your settlement, so be it, the other settlers would be upset their buddy just died, they have no idea they were synths, just their buddy. You should have moved them to an empty settlement and killed them there.
The other thing that could have been considered during development is maybe they are just mad because they let a synth infiltrator into their settlement? The multitude of these unnecessary changes is why the game plays so much worse on Xbox with the patch installed.
Just for me if there was something in the patch that was changed my a King mod I would question the patch change first as Kinggath seems a much more responsible modder. My guess is he actually plays the game and notices how the game plays.
 
Just because it is in the patch does not make it correct. Ultimately you should be sending this to the Patch team for making a change to the code incorrectly. Accepted I play on Xbox it might be different on PC, but there are many changes in the patch exactly like this one, not required, good reason not to use it.

Lets just deal with this one. Originally the game had mortal settlers and then Beth updated the game and changed it, I forget what date and that specific line may just be a leftover or maybe the origin report/request was before the update (Oct 2019).
Think about it, have you ever killed a protected synth infiltrator, during a settlement attack or during the suspected synth quest? The answer is no, or at least I never have, in the first they are always dead when I get there, in the second the settlers kill them so they are no longer protected and likely not even settlers any more just simply a synth. If you are using a mod that lets you find synths in your settlement, so be it, the other settlers would be upset their buddy just died, they have no idea they were synths, just their buddy. You should have moved them to an empty settlement and killed them there.
The other thing that could have been considered during development is maybe they are just mad because they let a synth infiltrator into their settlement? The multitude of these unnecessary changes is why the game plays so much worse on Xbox with the patch installed.
Just for me if there was something in the patch that was changed my a King mod I would question the patch change first as Kinggath seems a much more responsible modder. My guess is he actually plays the game and notices how the game plays.
I have looked into all three of these conflicts and they are both required fixes for a vanilla setup and properly implemented (at least within the Quest record. My papyrus is too rusty to swear the same for the underlying script).

Regarding the WorkshopEnemyFaction issue:
You seem to misunderstand both the underlying issue, UFO4P's approach to fixing it, and why they made that determination.

First, the setup & underlying issue/bug:
In the vanilla game, all settlers are normally protected—only the player can kill them. Without mods, this is still true in the most recent patch, as far as I'm aware, as settlers still have the Protected flag. When reading the comments left in the HandleDeathActor script (which is run when settlers die), there's an indication that the happiness malus is intentional on settler deaths. And the tenor of the comment at least implies that that particular Bethesda coder viewed it as being the player's fault, though whether it is or not is ultimately irrelevant. The main point here is that if a settler dies, the settlement is hit with a happiness malus (of I think 20 points, though I don't have that source in front of me this second).

For most cases, this is fine; it only happens when a settler dies, after all. The bug occurs with Synth Infiltrators. Until they "activate", the game treats them as normal settlers. When they blow their cover and attack the settlement, code in the game removes the Protected flag. Now, those Synth Infiltrators can die at the hands of either the player or their settlers. This is why you mentioned always finding them already dead.

However, the game still applies the malus as if the settler that just died had been an ordinary one, rather than a Synth.

Now, how did UFO4P fix it?
They inserted a new Property into the Quest record for WorkshopEnemyFaction (FormID: 001357E7). This faction is only used by Synth Infiltrators. Then, according to the documentation on UFO4P's bugtracker, they've added checks in the underlying scripts so that when an actor dies, before applying that malus, it checks to see if it was a Synth Infiltrator Settler (which would have that faction). If so, then no malus applied.

Lastly, why did UFO4P decide to fix it this way?
Going back to what I mentioned in the setup portion, the comments left behind in the code by Bethesda's coders give the impression that the malus was only intended to hit when a settler died because of the player. There's a reasonable disagreement to be had over whether this is an appropriate assumption on the Bethesda coder's part (see above, your alternative in-universe explanations for why that malus might occur). However, UFO4P tends to err on the side of trying to fix what they feel was intended by Bethesda, in these cases. Therefore, they made the determination that the malus shouldn't be occurring in cases of Synth Infiltrators, and they implemented a fix to prevent it.

And the other issues in question are more cut-and dry with whether they should be implemented (on a vanilla game). One deals with the Vault-Tec Rep. All of the other named trader settlers that you can recruit are flagged as "Protected" as soon as you recruit them and send them to a settlement. The Vault-Tec Rep's flag was forgotten. As a result, for many players he dies along the way. Someone intentionally playing with mortal settlers might view this as fine, but for those playing with the default Protected settlers, this is a clear oversight.

The remaining two conflicts are part of a single issue involving Provisioners and their brahmin, based on the UFO4P bugtracker. The short version is that there's a vanilla bug where they aren't renamed and/or reassigned properly when you try to assign a Provisioner to something else.

Why report this to Workshop Framework instead of UFO4P?
Whether or not the fix should be there is an entirely separate discussion. What I'm trying to figure out, primarily, is whether this issue is handled some other way in kinggath's code. For example, I know he's rewritten several code hooks to bypass buggy settlement behavior, so it might be that these issues have been handled by different means. But if they haven't been, then I'd like to find out whether there's an intentional decision by kinggath not to implement this fix, or whether it was just missed.

And more importantly, within the purview of UFO4P, the above changes are all correct. UFO4P only deals with a vanilla game, and it's the responsibility of mod authors to either implement the changes or decide not to according to the needs of their own mods. All of the above changes were pretty clearly-documented (though it took me a while to track down the Synth one) and they've been in UFO4P for several versions. In contrast, the only documentation I can find in WSFW regarding this quest record is the following from v1.0.1:
  • Eliminated all vanilla edits to forms. Now the only edits are to the Workshop Scripts, this should fix incompatibilities with multiple mods that were editing the WorkshopParent quest properties.
This works perfectly fine for downstream mods, but WSFW instructs users to place UFO4P above it, which means it's creating incompatibility with at least one mod that's editing those quest properties.

-asp
 
Last edited:
Not withstanding and I need to spend more time re-reading your last post. I will get back to you with some screen shots proving that there is no hit to happiness etc.
My point is that game plays differently than you are describing. I recognize you are just trying to be responsible.
Again in all my time the vault tech rep has never died, I wish he would or at least stay in that darn room until I open the door, because I am not ready for him, but need to be where he is early. All my time is near 8000 hrs on xbox and I can't tell what is what on steam because I think that might include when I am in the CK, I am surprised at the number they say but FO4 is my only steam game.
Sorry for my objection but the last thing some of us need is the patch code being transferred into other mods when we have made a clear decision that the patch hurts the game more than it helps. Unless you have played the patch on Xbox you can't conceive the damage. I typed for 30 mins and just cut it because it is pointless without screeners to prove and the rest was opinion. My next game is back to FO4. Be patient, a month likely and I will have screeners.
 
Not withstanding and I need to spend more time re-reading your last post. I will get back to you with some screen shots proving that there is no hit to happiness etc.
My point is that game plays differently than you are describing. I recognize you are just trying to be responsible.
Again in all my time the vault tech rep has never died, I wish he would or at least stay in that darn room until I open the door, because I am not ready for him, but need to be where he is early. All my time is near 8000 hrs on xbox and I can't tell what is what on steam because I think that might include when I am in the CK, I am surprised at the number they say but FO4 is my only steam game.
Are you playing a modded game or a vanilla game, when you say there's no hit to happiness? If you're playing with any mods that affect the workshop script, then it's entirely possible that one of them has either removed that effect or introduced a bug that prevents it. The goal of UFO4P is to fix problems with the base game. It's then the job of modders to decide how their mod will interact with that. Further, just because you didn't encounter a bug doesn't mean it doesn't exist. If you actually read the bugtracker reports that I linked above, you'll see that for at least two of the three reports, people did encounter the bug in question, reported it to the UFO4P team, and a fix was included—a fix that is being overwritten by WSFW.

Sorry for my objection but the last thing some of us need is the patch code being transferred into other mods when we have made a clear decision that the patch hurts the game more than it helps. Unless you have played the patch on Xbox you can't conceive the damage. I typed for 30 mins and just cut it because it is pointless without screeners to prove and the rest was opinion. My next game is back to FO4. Be patient, a month likely and I will have screeners.
Who is "we" ? Unless you purport to speak on behalf of the Workshop Framework team, then your recommendation against the inclusion carries no more weight than my recommendation for it. Most of my (admittedly-anecdotal) experience with people decrying UFO4P come from those who have broken their setups in ways that are either unrelated to UFO4P or for which UFO4P merely made visible an issue they were already having.

Finally,
At the end of the day, my goal is not to blindly pass things forward into Workshop Framework. The purpose of this post is to ask one (or possibly two) questions:
1. Were these changes intentionally ignored, or were they just accidentally missed (as WSFW's own changelog implies to me)?
2. If they were intentionally ignored, what justification was used in making that determination?

I don't consider either of those questions unreasonable.

-asp
 
At the end of the day, my goal is not to blindly pass things forward into Workshop Framework. The purpose of this post is to ask one (or possibly two) questions:
1. Were these changes intentionally ignored, or were they just accidentally missed (as WSFW's own changelog implies to me)?
2. If they were intentionally ignored, what justification was used in making that determination?
It seems no one updated you on this issue. The issue outlined in the OP was caused by simple human error. In the update, Kinggath added a script property and set it via form instead of via script. This will be fixed in the next WSFW update. It is currently unknown when that will happen due to irl issues.

Also a friendly reminder. You guys can dispute the pros and cons of UFO4P all you want but keep it respectful.
 
It seems no one updated you on this issue. The issue outlined in the OP was caused by simple human error. In the update, Kinggath added a script property and set it via form instead of via script. This will be fixed in the next WSFW update. It is currently unknown when that will happen due to irl issues.
Totally understandable. Thanks for the update!

-asp
 
In the update, Kinggath added a script property and set it via form instead of via script. This will be fixed in the next WSFW update.
Just wanted to follow-up on this real quick, because I realized I forgot to ask about the script side of this equation. I noticed the conflict because of the Quest half of the equation (WorkshopParent). But at least one of those changes in the Quest corresponds also to a change in the PEX (workshopparentscript). I'm not confident enough in my papyrus skills to go Sturges-ing around with something like WSFW's version of the workshop script, so I'm not sure of this answer from my own skimming.

Are these issues also handled in WSFW's version of workshopparentscript.pex, or no?

-asp
 
Doh! I was going to look into this issue yesterday and forgot. smh...

Going by memory (be very afraid) all UFO4P edits should exist in the WSFW version. Looking through the UFO4P change log, there does not appear to be any recent edits to Workshop Parent. So, you should be fine to just forward the records. If I remember... I'll post my findings.
 
Who is "we" ?
"We" being users on Xbox that have taken the time to evaluate the pros and cons on Xbox and have made an educated choice. Like most mods, and I understand this and accept it, it really is not supported for Xbox. If it does not break the PC game then it is not going to be fixed. I would not want to maintain two separate versions of a mod either, especially if I never use the other platform.
As per the initial issue, we had a two year long thread on Beth.Net concerning that issue. I have spent a few days looking for it but I don't think it got transferred to the way back machine, at least I can't find it. The issue was first brought up by a Patch user who was getting a hit in the situation you describe. Because it is time consuming and sort of rare to have those circumstances it took many posts and much time to gather the data.
Yes "a bug" can cause a hit, just not sure which bug. The way that is written it should happen each and every time a synth infiltrator is killed at least during a settlement attack, and that simply does not happen. It also should not happen if someone has the patch installed, assuming no conflicts, and it does.
In my opinion that fix does not work, there for it is an unnecessary change that could be doing harm elsewhere. Likely that was poorly fixed by Beth, but with a cheat that was created on Fri at 4 so the coder could go for the weekend, and that is what needs to be found and corrected.
I am not going to say people should not use the patch, because it is a choice and if they don't see what it does to their game then those things are unimportant. The patch is not a work of perfection. It is as good as any other mod, but still has some issues. For me there are two things it does to my game that I can't live with or work around. What ever it does to either the previs or precombs in Far Harbor prevents me from building the way "I want" or using mods I prefer. This issue has been reported many a time and tested correctly and they can't reproduce it, I assume on PC so it has not been looked at. It causes problems with other mods, again that is all fine it is a free mod and people have a choice to use it or not.
Microsoft broke the game worse than anyone with their changes to how the operating system handles the cache on Xbox, they are not going to fix that either because it only affects a few games, but removes some exploits for multi player games they needed gone.
 
Unfortunately, xbox users do not have access to the debugging tools available on PC. A while ago I was doing some testing on a 100% vanilla game. It was the first time in years I did not have the Unofficial Patch installed. I had well over 2000 lines of errors in the papyrus.log file. This is cut down to 10ish with the patch installed. From a scripting standpoint, the amount of things fixed is amazing.
 
Unfortunately, xbox users do not have access to the debugging tools available on PC.
You are correct, sort of,(some Xbox users can with unlocked development machines, legal or hacked) we have to do it all by observation, and watch how the game plays and see what actually happens. There are certain advantages to that, the most important is you might look elsewhere for a cause of the problem. Or do things differently. There are a lot of inventive ways Xbox testers check things. You might build a floor under the center cell to evaluate lost items.
The end result is how does the game play. Does it play the way you want it to play and are you having fun. You should see what is on the floor in Far Harbor if you have the patch install. Very difficult floor to build and access but doable with the correct skills and mods, WS+ not mandatory but extremely helpful.
You look at a log file where I might actually go and build a floor in the center cell to see what falls down. From what I understand that stuff does not show up in your logs.
Fallout 4 2019-06-09 23-18-14.jpg
 
Doh! I was going to look into this issue yesterday and forgot. smh...

Going by memory (be very afraid) all UFO4P edits should exist in the WSFW version. Looking through the UFO4P change log, there does not appear to be any recent edits to Workshop Parent. So, you should be fine to just forward the records. If I remember... I'll post my findings.
I did a basic Ctrl+F search of the workshopparentscript back on the day I originally created this post and couldn't find the WorkshopEnemyFaction property referenced anywhere, hence why I raised the issue.

That said, I'm not confident in my papyrus enough to have concluded that that's in any way exhaustive; I assumed WSFW was probably handling the same issue in a different way or something like that.

That script even in vanilla is something that'd probably take days or weeks at least for me to even parse through logically, and the WSFW version is orders of magnitude more complex, so I'm going to blindly yield to the expertise of actual experts, here.

-asp
 
WorkshopEnemyFaction
Here it is in the WSFW source:
Code:
;------------------------------------------------------
;    Added by UFO4P 2.1.0 for Bug #27621:
;------------------------------------------------------


faction Property WorkshopEnemyFaction auto Hidden ; WSFW - Changed to hidden so we can populate it on start
It is filled via script. WSFWMain calls FillWSFWVars on WorkshopParentScript.
Code:
    if( ! WorkshopEnemyFaction)
        WorkshopEnemyFaction = Game.GetFormFromFile(iFormID_WorkshopEnemyFaction, "Fallout4.esm") as Faction
    endif
The new property Kinggath added in the latest version should have been added the same way instead of being set on the quest form.
 
Last edited:
The correct answer is to delete the WorkshopParent override from WorkshopFramework.esm.
Code:
[08/18/2022 - 06:37:51PM] warning: Property IgnoreAccuracyBonusInUI on script workshopparentscript attached to WorkshopParent (0002058E) cannot be initialized because the script no longer contains that property
WSFW.jpg
 
Top