Welcome to the AFK Mods bug tracker. In order to report an issue, you need to have a VALIDATED account to post one. Once you have followed the link the registration email sent you, please select a project from the drop down menu below. Select “Open New Issue” and fill out the form with as many details as possible.

Please also consider sending your bug report to Bethesda if you are reporting on an issue with Skyrim Special Edition, Fallout 4, or Starfield. Doing so will help everyone on all platforms.

Issue Data
Status: Closed
Issue Type: Bug Report
Project: Unofficial Fallout 4 Patch
Component: Unofficial Fallout 4 Patch
Category: Papyrus
Assigned To: Nobody
Platform: All
Severity: Very Low
Votes: 0
Watching: N/A
Opened By gh0stwizard on Dec 14, 2021 1:33 am
Closed By Arthmoor on Feb 13, 2023 11:30 pm
Resolution: Fixed
Comment: Fixed for UFO4P 2.1.5.

Issue #31746: Incorrect usage of Activators in UFO4PRetroactive213Script

 
Brief explanation:
It is possible that an array in a script will not be properly initialized due an error with inactive world object.

Long explanation:
3rd party scripts (everything that is not attached to an object) should not directly access objects which have the inactive or disabled state. The game does not load every object in RAM. That's why inactive/disabled objects automatically disabling their own scripts.

Log:
[12/14/2021 - 05:43:13AM] error: Element of array in property BoSTriggers on script ufo4p:ufo4pretroactive213script attached to UFO4PRetroactive213 (072B1553) cannot be bound because <nullptr form> (000FB230) is not the right type

Possible fix:
Use FormList instead of Array. There are seven BHExtBOSEnable Activators, all have one parent BHCombatTriggerEnableMarker [REFR:000FB251], which is disabled by default.
The fix assumes that a FormList contains all 7 Activators.

I have included the patch (full source with all necessary changes). Key moments are:

group Bug_26704
	FormList Property BoSTriggers Auto Const
	quest Property Inst302 auto const
endGroup

[...]
	;Bug #26704: If Inst302 is completed, let the BoS triggers at Bunker Hill run their cleanup:
	if Inst302.IsCompleted()
		i = 0
		while i < BoSTriggers.GetSize()
			BHExtBOSEnable t = BoSTriggers.GetAt(i) as BHExtBOSEnable
			t.UFO4P_CleanUp()
			i += 1
		endWhile
	endif


The problem of the fix above due the fact of redefining a type of the property BoSTriggers, which leads to the incorrect work of the script. After update it is already will be loaded and need to be restarted by hand or via external scripting (restart the UFO4PRetroactive213 quest. It would be better to rename the property to exclude a property name collision.

Also, I did not test this script well, yet. So, probably there will be need to use Is3DLoaded() function to proper cleanup.



Attached Files:

UFO4PRetroactive213Script.psc

Related Issues: 26704  

Comments

1 comment(s) [Closed]
Arthmoor said:
 
Not sure ultimately what difference it should make - script properties are just as persistent as formlist entries. If not moreso.

But we'll give it a shot and see if it makes a difference. I've not seen any actual reports of this in the wild anywhere.

Showing Comments 1 - 1 of 1