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: Fallout 4: Automatron DLC
Category: Papyrus
Assigned To: Sclerocephalus
Platform: All
Severity: Low
Votes: 0
Watching: N/A
Opened By Sclerocephalus on Sep 28, 2018 3:08 pm
Last Edited By Sclerocephalus on Sep 30, 2018 10:47 am
Closed By Sclerocephalus on Dec 3, 2018 1:06 am
Resolution: Fixed
Comment: Fixed for UFO4P 2.0.6

Issue #25199: DLC01_TrackSystemMachine - Various 'none' errors

 
[09/28/2018 - 08:54:45PM] error: Unable to call MoveTo - no native object bound to the script object, or object is of incorrect type
stack:
[ (FF06A46F)].ObjectReference.MoveTo() - "<native>" Line ?
[ (FF06A4C6)].dlc01:dlc01_tracksystemmachine.InitMachine() - "g:\_F4\DLC01\Art\Raw\Scripts\DLC01\DLC01_TrackSystemMachine.psc" Line 50
[ (01004107)].dlc01:dlc01_tracksystemtrack.CreateMachine() - "g:\_F4\DLC01\Art\Raw\Scripts\DLC01\DLC01_TrackSystemTrack.psc" Line 407
[ (01004107)].dlc01:dlc01_tracksystemtrack.OnTimer() - "g:\_F4\DLC01\Art\Raw\Scripts\DLC01\DLC01_TrackSystemTrack.psc" Line 382
[09/28/2018 - 08:54:45PM] error: Unable to call SetScale - no native object bound to the script object, or object is of incorrect type
stack:
[ (FF06A46F)].ObjectReference.SetScale() - "<native>" Line ?
[ (FF06A4C6)].dlc01:dlc01_tracksystemmachine.InitMachine() - "g:\_F4\DLC01\Art\Raw\Scripts\DLC01\DLC01_TrackSystemMachine.psc" Line 51
[ (01004107)].dlc01:dlc01_tracksystemtrack.CreateMachine() - "g:\_F4\DLC01\Art\Raw\Scripts\DLC01\DLC01_TrackSystemTrack.psc" Line 407
[ (01004107)].dlc01:dlc01_tracksystemtrack.OnTimer() - "g:\_F4\DLC01\Art\Raw\Scripts\DLC01\DLC01_TrackSystemTrack.psc" Line 382
[09/28/2018 - 08:54:45PM] error: Unable to call WaitFor3DLoad - no native object bound to the script object, or object is of incorrect type
stack:
[ (FF06A46F)].ObjectReference.WaitFor3DLoad() - "<native>" Line ?
[ (FF06A4C6)].dlc01:dlc01_tracksystemmachine.InitMachine() - "g:\_F4\DLC01\Art\Raw\Scripts\DLC01\DLC01_TrackSystemMachine.psc" Line 52
[ (01004107)].dlc01:dlc01_tracksystemtrack.CreateMachine() - "g:\_F4\DLC01\Art\Raw\Scripts\DLC01\DLC01_TrackSystemTrack.psc" Line 407
[ (01004107)].dlc01:dlc01_tracksystemtrack.OnTimer() - "g:\_F4\DLC01\Art\Raw\Scripts\DLC01\DLC01_TrackSystemTrack.psc" Line 382
[09/28/2018 - 08:54:45PM] warning: Assigning None to a non-object variable named "::temp7"
stack:
[ (FF06A4C6)].dlc01:dlc01_tracksystemmachine.InitMachine() - "g:\_F4\DLC01\Art\Raw\Scripts\DLC01\DLC01_TrackSystemMachine.psc" Line 52
[ (01004107)].dlc01:dlc01_tracksystemtrack.CreateMachine() - "g:\_F4\DLC01\Art\Raw\Scripts\DLC01\DLC01_TrackSystemTrack.psc" Line 407
[ (01004107)].dlc01:dlc01_tracksystemtrack.OnTimer() - "g:\_F4\DLC01\Art\Raw\Scripts\DLC01\DLC01_TrackSystemTrack.psc" Line 382
[09/28/2018 - 08:54:45PM] error: Unable to call SetAnimationVariableFloat - no native object bound to the script object, or object is of incorrect type
stack:
[ (FF06A46F)].ObjectReference.SetAnimationVariableFloat() - "<native>" Line ?
[ (FF06A4C6)].dlc01:dlc01_tracksystemmachine.StartMachine() - "g:\_F4\DLC01\Art\Raw\Scripts\DLC01\DLC01_TrackSystemMachine.psc" Line 283
[ (01004107)].dlc01:dlc01_tracksystemtrack.CreateMachine() - "g:\_F4\DLC01\Art\Raw\Scripts\DLC01\DLC01_TrackSystemTrack.psc" Line 414
[ (01004107)].dlc01:dlc01_tracksystemtrack.OnTimer() - "g:\_F4\DLC01\Art\Raw\Scripts\DLC01\DLC01_TrackSystemTrack.psc" Line 382
[09/28/2018 - 08:54:45PM] error: Unable to call SetAnimationVariableFloat - no native object bound to the script object, or object is of incorrect type
stack:
[ (FF06A46F)].ObjectReference.SetAnimationVariableFloat() - "<native>" Line ?
[ (FF06A4C6)].dlc01:dlc01_tracksystemmachine.StartMachine() - "g:\_F4\DLC01\Art\Raw\Scripts\DLC01\DLC01_TrackSystemMachine.psc" Line 286
[ (01004107)].dlc01:dlc01_tracksystemtrack.CreateMachine() - "g:\_F4\DLC01\Art\Raw\Scripts\DLC01\DLC01_TrackSystemTrack.psc" Line 414
[ (01004107)].dlc01:dlc01_tracksystemtrack.OnTimer() - "g:\_F4\DLC01\Art\Raw\Scripts\DLC01\DLC01_TrackSystemTrack.psc" Line 382
[09/28/2018 - 08:54:45PM] error: Cannot register for an animation event on an None object
stack:
[ (FF06A4C6)].dlc01:dlc01_tracksystemmachine.RegisterForAnimationEvent() - "<native>" Line ?
[ (FF06A4C6)].dlc01:dlc01_tracksystemmachine.StartMachine() - "g:\_F4\DLC01\Art\Raw\Scripts\DLC01\DLC01_TrackSystemMachine.psc" Line 294
[ (01004107)].dlc01:dlc01_tracksystemtrack.CreateMachine() - "g:\_F4\DLC01\Art\Raw\Scripts\DLC01\DLC01_TrackSystemTrack.psc" Line 414
[ (01004107)].dlc01:dlc01_tracksystemtrack.OnTimer() - "g:\_F4\DLC01\Art\Raw\Scripts\DLC01\DLC01_TrackSystemTrack.psc" Line 382
[09/28/2018 - 08:54:45PM] error: Unable to call PlayAnimation - no native object bound to the script object, or object is of incorrect type
stack:
[ (FF06A46F)].ObjectReference.PlayAnimation() - "<native>" Line ?
[ (FF06A4C6)].dlc01:dlc01_tracksystemmachine.StartMachine() - "g:\_F4\DLC01\Art\Raw\Scripts\DLC01\DLC01_TrackSystemMachine.psc" Line 295
[ (01004107)].dlc01:dlc01_tracksystemtrack.CreateMachine() - "g:\_F4\DLC01\Art\Raw\Scripts\DLC01\DLC01_TrackSystemTrack.psc" Line 414
[ (01004107)].dlc01:dlc01_tracksystemtrack.OnTimer() - "g:\_F4\DLC01\Art\Raw\Scripts\DLC01\DLC01_TrackSystemTrack.psc" Line 382
[09/28/2018 - 08:54:45PM] warning: Assigning None to a non-object variable named "::temp69"
stack:
[ (FF06A4C6)].dlc01:dlc01_tracksystemmachine.StartMachine() - "g:\_F4\DLC01\Art\Raw\Scripts\DLC01\DLC01_TrackSystemMachine.psc" Line 295
[ (01004107)].dlc01:dlc01_tracksystemtrack.CreateMachine() - "g:\_F4\DLC01\Art\Raw\Scripts\DLC01\DLC01_TrackSystemTrack.psc" Line 414
[ (01004107)].dlc01:dlc01_tracksystemtrack.OnTimer() - "g:\_F4\DLC01\Art\Raw\Scripts\DLC01\DLC01_TrackSystemTrack.psc" Line 382

Related Issues: 24678  25660  29452  

Comments

4 comment(s) [Closed]
Sclerocephalus said:
 
This appears to be a reload bug.

The script did apparently create valid objects at some point, because the log lists refs for them: FF06A4C6 for the machine (created by DLC01_TrackSystemTrack script), and FF06A46F.for the helper object (created by DLC01_TrackSystemMachine). Nonetheless, the scripts are now running on 'none', i.e. they are not bound to any game objects although the references do still exist.

This only happens if the player reloads a save that was written in the same cell before the objects in question were created. If not leaving to the main menu (or to desktop) before reloading, the references of these objects remain in the memory but they are invalid now and this ultimately leads to these errors.

There's generally not much we can do about such issues. it's possible to add checks for bound game objects, but those checks would have to be added on a ny line that tries to manipulate an in-game created object. Thus, we would slow the script significantly, for little benefit gained. We adressed reload bug issues in only one fix so far: this was for settlers because they are created by the game on a regular basis, and invalid actors remaining in the memory after a reload could cause much trouble (i.e. log spam) and unnecessary activity on the workshop scripts. Also, unlike in this case, that fix required only a single check to be added to WorkshopNPCScript.

Now, this issue is still somewhat particular since the concept of the robot tracks with "master scripts" creating objects at run time that run "slave scripts" to subsequently create even more objects easily leads to a fairly large number of invalid refs remaining in the memory after a reload, and they would waste a significant amount of processing time. Therefore, after another thought, I decided for a compromise: according to the logs, the script is either in the InitMachine() or the StartMachine() function if the error occurs. For the reasons previously explained, I'll not add checks to any line that handles an in-game created object, but I can add a check right at the top of each function, to skip an entire function call if necessary. This doesn't work for the InitMachine() function because the scripts are processing that function already when the error is thrown. It works for the StartMachine(() function however, so we can skip that one at least if the error started to occur in the InitMachine() function. If the error started to occur in the StartMachine() function, that check won't work either, but this won't matter because at this point, the script has alredy dome most of it was supposed to do, I also added a check to the CleanupMachine() function since this would throw more errors if it is called later on.

Sclerocephalus said:
 
More 'none' errors from this script:
[09/29/2018 - 01:36:17AM] error:  (FF06C28E): the animation graph (MechTrackArm01) cannot currently process event "play01".
stack:
	[ (FF06C28E)].ObjectReference.PlayAnimation() - "<native>" Line ?
	[ (FF06C29E)].dlc01:dlc01_tracksystemmachine.DropMyObject() - "g:\_F4\DLC01\Art\Raw\Scripts\DLC01\DLC01_TrackSystemMachine.psc" Line 403
	[ (FF06C29E)].dlc01:dlc01_tracksystemmachine.::remote_Actor_OnDying() - "g:\_F4\DLC01\Art\Raw\Scripts\DLC01\DLC01_TrackSystemMachine.psc" Line 369
[09/29/2018 - 01:36:17AM] error: Cannot call Activate() on a None object, aborting function call
stack:
	[ (FF06C29E)].dlc01:dlc01_tracksystemmachine.DropMyObject() - "g:\_F4\DLC01\Art\Raw\Scripts\DLC01\DLC01_TrackSystemMachine.psc" Line 423
	[ (FF06C29E)].dlc01:dlc01_tracksystemmachine.::remote_Actor_OnDying() - "g:\_F4\DLC01\Art\Raw\Scripts\DLC01\DLC01_TrackSystemMachine.psc" Line 369
[09/29/2018 - 01:36:17AM] warning: Assigning None to a non-object variable named "::temp122"
stack:
	[ (FF06C29E)].dlc01:dlc01_tracksystemmachine.DropMyObject() - "g:\_F4\DLC01\Art\Raw\Scripts\DLC01\DLC01_TrackSystemMachine.psc" Line 423
	[ (FF06C29E)].dlc01:dlc01_tracksystemmachine.::remote_Actor_OnDying() - "g:\_F4\DLC01\Art\Raw\Scripts\DLC01\DLC01_TrackSystemMachine.psc" Line 369
[09/29/2018 - 02:13:31AM] error: Cannot call DisableNoWait() on a None object, aborting function call
stack:
	[ (FF0698A5)].dlc01:dlc01_tracksystemmachine.DropMyObject() - "g:\_F4\DLC01\Art\Raw\Scripts\DLC01\DLC01_TrackSystemMachine.psc" Line 406
	[ (FF0698A5)].dlc01:dlc01_tracksystemmachine.::remote_Actor_OnDying() - "g:\_F4\DLC01\Art\Raw\Scripts\DLC01\DLC01_TrackSystemMachine.psc" Line 369


Since DropMyObject() runs a fair bit of code, and considering that it is called from OnDying/OnDeath events and that the items in question are created at run time, the engine may have deleted them already until the script gets to the lines that throw the errors. Added sanity checks to fix this, and also a 3D check for the reference that is suposed to play the animation.

Comment #2 Sep 30, 2018 10:29 am  Edited by Sclerocephalus on Sep 30, 2018 10:39 am
Sclerocephalus said:
 
Another script error. This code is from lines 97-100:
			ElseIf (MC.Object is Activator)
				;Activators: Activators we spawn are attachref'd to myHelper if possible.
				if (MC.ArmSpawnNode == "" )
					myObject = myArm.PlaceAtMe(MC.Object)

This is repeated in lines 111-114:
			Else
				;Everything Else: Everything else is just placed at SpawnMarker.
				if (MC.ArmSpawnNode == "" )
					myArm.PlaceAtMe(MC.Object)


Though, there's an error in the last line: that line forgets to save the created ref in myObject. The subsequent code checks for myObject = none and will skip the event registrations if it is 'none', so that error will likely create some trouble down the line.

Comment #3 Sep 30, 2018 10:45 am  Edited by Sclerocephalus on Sep 30, 2018 10:46 am
Sclerocephalus said:
 
All fixed.

Showing Comments 1 - 4 of 4