Jump to content

Unofficial Fallout 4 Patch (UFO4P) takes an arrow in the knee.


Arthmoor

Recommended Posts

2 - Will there need to be similar adjustments / recompile of the scripts in VaultTec Workshop DLC ?

 

No (for now).

 

I usually unpack all source scripts every time a CK update comes out and let Agent Ransack run a search for all sensitive functions on the Scripts folder and its sub-folders. Unless I overlooked something recently, there are no other scripts except for WorkshopScrpt and the three scripts mentioned above that call this function.

 

Can't say what needs to be done for bugs still to be worked on though.

In general, we would try to find appropriate workarounds to avoid touching DLCs that are otherwise unrelated to those bugs.

Link to comment
Share on other sites

if you just recompile the relevant game scripts, every modders will have to provide a vanilla version and  a ufo4p version for their mod, and you need to assume they are aware of this.

And the end user will need to be sure it always run the right version.

 

Not sure this is a solution.

Link to comment
Share on other sites

It's not. I think we'll have to find some other way for the vanilla scripts to deal with it without breaking the API that's already in place.

 

I still don't get these errors though, even when building a new beacon at a freshly acquired settlement. So something weird is going on but I don't know what.

Link to comment
Share on other sites

I still don't get these errors though, even when building a new beacon at a freshly acquired settlement. So something weird is going on but I don't know what.

 

Alternatively, make a small mod that adds the intercom mentioned above (it's an activator object) to one of your settlements. Make sure the script properties on the reference are set to point to that settlement. Then activate it in the game to spawn a settler. Since the script running on the intercom will call the vanilla version (there is no recompiled version of it in UFO4P), you should get an error instead of a settler.

Link to comment
Share on other sites

It's not. I think we'll have to find some other way for the vanilla scripts to deal with it without breaking the API that's already in place.

 

Solution is incredibly simple: Make a separate version of the CreateActorPUBLIC function that will only be used by the daily updates on WorkshopScript.

 

In the future, you only need to make sure that you ditsribute matching versions of both WorkshopParentScript and WorkshopScript. UFO4P is doing this anyway, and when you use the vanilla versions, both scripts are unmodified anyway.

Link to comment
Share on other sites

As I mentioned in the bug report this is in as well, Brahmins are only assigned in one specific place within the scripts. If there's to be any "special" versions of anything made it should be strictly for that one case and the main CreateActorPUBLIC function should remain intact as far as the API is concerned.

Link to comment
Share on other sites

Let me rephrase it. We would not be making any special versions of any real functions. A 'public function' (in the context of the workshop scripts) does nothing on its own. It's simply a gatekeeper that reacts to specific calls from external scripts and when it finds that the gate is safe to pass, it relays this call to the function that actually performs the task the external script wanted to be done.

 

Simply speaking, we would create a new entry point.

 

That would looks as follows:

;UFO4P 1.0.3 Bug #20581: Modified this function to conform with the (non-public) CreateActor function. The vanilla version of this function is preserved below.
;WorkshopNPCScript function CreateActorPUBLIC(WorkshopScript workshopRef, ObjectReference spawnMarker = NONE, bool bNewSettlerAlias = false, bool bBrahmin = false)
;	 lock editing
	;GetEditLock()
	;WorkshopNPCScript NewActorScript = CreateActor(workshopRef, bBrahmin, spawnMarker, bNewSettlerAlias)
;	 unlock editing
	;EditLock = false
	;Return NewActorScript
;endFunction

WorkshopNPCScript function CreateActor_DailyUpdate (WorkshopScript workshopRef, ObjectReference spawnMarker = NONE, bool bNewSettlerAlias = false, bool bBrahmin = false)
	GetEditLock()
	CreateActor(workshopRef, bBrahmin, spawnMarker, bNewSettlerAlias)
	EditLock = false
endFunction

; Create a new actor and assign it to the specified workshop
function CreateActorPUBLIC(WorkshopScript workshopRef, ObjectReference spawnMarker = NONE, bool bNewSettlerAlias = false)
	; lock editing
	GetEditLock()
	CreateActor(workshopRef, false, spawnMarker, bNewSettlerAlias)
	; unlock editing
	EditLock = false
endFunction
Link to comment
Share on other sites

  • 1 year later...

Sorry to necro this but, has there been any progres on this issue?

I started playing again with the latest patch and loaded a 13 day character on survival mode. I shortly ran into the unassignable settlers issue and later on i ran into a cycled conversation with the A Model Citizen quest, i suspect it also has to do with settlers being unassignable.

Reverting to an earlier save is not possible, i don't really want to wipe a  300+ hour character either.

Link to comment
Share on other sites

On what issue ?

The original thread was about a very particular issue where a flag on a package caused the engine to start running some code that slowed down any activities at the workshops significantly. Bethesda told us that this code should actually not even have existed in the game anymore, and they removed it later on in an official patch. We temporarily redrew that package (but did re-include it in UFO4P 2.0.1). That issue has been solved. So, to answer your question, there has been no progress (but what do you expect ?).

Eventually, someone hijacked the thread to talk about an entirely different issue. That one was solved too, and there has been no progress either since (again: what do you expect ?).

Settler assignment problems are both new to this thread and have nothing in common with any of the issues previously discussed here  (please start a new topic next time !).  Now, as it turned out recently, people may not even be talking about the same issue when they refer to 'settler assignment issues'. Which one of the following is your problem ? Also, be prepared that I'll have more questions once I know what we're talking about.

  1. You plant a crop in workshop mode, then tell a settler to work on it. No matter what you do, the message to tell you that the crop has been assigned will never show up. Occasionally, the settler may even walk to the crop and start working, but even then, the assignment message is never displayed.
  2. You assign settlers to work on some crops, the assignment message shows up and they really start working on them, but when you return later, none of them works on anything (instead, a different settler is tending the crops) and those you assigned originally are all unassigned [NB: the same may happen with guard posts, btw.]
  3. Early in the game, there are encounters where you can assist settlers in defending against wild dogs, supermutants, etc. If the settlers survive, an option may show up to recruit them for a workshop, which in turn brings up a drop down menu where you can select a workshop to assign them to. With some encounters, this option is missing though, and later on in the game, it will be missing entirely.
  4. You try to send a settler to a different workshop, but there's no selection of workshops displayed to assign him to (or, most of the workshops are grayed out).
  5. Something else ?

 

(1) is the actual 'can't assign settlers issue' (at least, this is what most people referred to when they were talking about it in the past).

(2) and (3) are working as intended.

(4) stops working for a given workshop if the population goes beyond a certain limit. The code that decides which workshops are valid options and which ones aren't apparently checks a game setting, or a value that depends thereof (this runs at engine level, so we cannot say how exactly the threshold is calculated). Eventually, there may be no drop down showing up at all. Which means that this is working as intended too.

(5) maybe your problem is none of these, and i simply don't know about it yet. If so, please give me more details.

Link to comment
Share on other sites

I apologize if the thread was unrelated, as i followed linked threads up until this one when looking up answers, this problem seems to date back at least a year.

Your first example is what explains my issue. I haven't tested crops but stores, artillery, defense posts, scrap table, beds, they won't ever get assigned, and indeed settlers will run towards it but just give up after the animations end.

Setting up supply lines will also not work.

I can provide pictures, savefile and load order if needed. I'm just trying to rescue the savefile, i even tried waiting 35 days for cells to reset to no avail.

Link to comment
Share on other sites

What is the size of your settlement ? How many settlers, crops, turrets, beds and stores  (i.e. anything that runs a WorkshopObjectScript) ?

All the information needed to understand what happens at that specific workshop is in the workshop logs. To get the logs, extract WorkshopParentScript, WorkshopScript, WorkshopObjectScript and WorkshopNPCScript from the UFO4P archive (into the Data\Scripts\User folder) and recompile them in debug mode (in the CK, open the 'preferences' window, click on the 'scripts' tab and select debug mode there). Make sure debugging is enabled in your ini file.

It's important that you start playing from a save where you are not at the workshop in question (because we need the full log entries from the function that starts running upon your arrival). If that's not possible, leave (travel far away, spend some time there) and then return. At the workshop, do what you're usually doing. If the issue starts to manifest itself, play on for a while (because the logs may be written with some delay).

Link to comment
Share on other sites

Ok, for the record... i understood almost zilch of that heh.

I've no idea if i did this correctly. I...

  • downloaded a ba2 extractor
  • pulled the relevant scripts from the ufo4p ba2.
  • saved those in Data\scripts\Source\User\Scripts
  • downloaded and installed the ck
  • made sure it was on debug mode
  • opened the papyrus manager
  • selected the scripts (i've no idea if they were the ones i extracted before)
  • compiled them
  • launched the game and walked towards the settlement and attempted to assign a couple of settlers.

the resulting log is attached.

 

 

Papyrus.0.log

Link to comment
Share on other sites

Not that log.

If all was done correctly, the workshop system should create its own set of logs. They will appear in a sub-folder of your scripts log folder (Logs\Script\User - the game does create that folder for you). If t is missing, something apparently went wrong.

I can make that easier for you. Give me a little time, and I will upload a pack with the properly recompiled scripts from UFO4P 2.0.1a. [NB: They will work in your game even if you do not have all DLCs (and are still running the old NoDLC version)].

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...