Difference between revisions of "Talk:Save File Notes (Papyrus)"
Jump to navigation
Jump to search
→ESP and Script deactivation tests - OnUpdate () Event, Variables and Properties (): new section
imported>Cipscis (→Removing Scripts from Objects: Unanswered questions) |
imported>Kuertee |
||
Line 12: | Line 12: | ||
** Is the only good way to "nullify" that script and attach a copy of it to the objects to which it should remain attached? | ** Is the only good way to "nullify" that script and attach a copy of it to the objects to which it should remain attached? | ||
** Would it be appropriate, if such a change is made to a mod between versions, to include such nullified scripts in the package for users upgrading from previous versions? | ** Would it be appropriate, if such a change is made to a mod between versions, to include such nullified scripts in the package for users upgrading from previous versions? | ||
== ESP and Script deactivation tests - OnUpdate () Event, Variables and Properties () == | |||
Here's a conclusive test. It is free from gameplay features nor objects in the base ESM. | |||
All it contains are: | |||
#A Quest with a RegisterForUpdate (1) in its OnInit () | |||
#An OnUpdate () with a Debug.Notification () and a Debug.Trace (). | |||
#Both Debugs trace out a custom FormList and a custom Armor. | |||
With the mod active, both Debug.Notification () and Debug.Trace () worked on screen and in the log every 1 second.<br/> | |||
I then save then quit the game.<br/> | |||
Then I deactivated and deleted the ESP and the Script.<br/> | |||
Mod managers will delete both the ESP and the Script. So I'm mirroring this behaviour.<br/> | |||
The log detected that kuFLQS was missing. I highlighted these lines in the log below.<br/> | |||
And the Debug.Notification () nor Debug.Trace () did not show on screen nor in the log.<br/> | |||
So, it looks like the OnUpdate () was terminated.<br/> | |||
[03/01/2012 - 07:13:13PM] Papyrus log opened (PC) | |||
[03/01/2012 - 07:13:13PM] Update budget: 1.200000ms (Extra tasklet budget: 1.200000ms, Load screen budget: 500.000000ms) | |||
[03/01/2012 - 07:13:13PM] Memory page: 128 (min) 512 (max) 76800 (max total) | |||
[03/01/2012 - 07:13:26PM] VM is freezing... | |||
[03/01/2012 - 07:13:26PM] VM is frozen | |||
[03/01/2012 - 07:13:26PM] Reverting game... | |||
[03/01/2012 - 07:13:30PM] Loading game... | |||
'''[03/01/2012 - 07:13:31PM] Cannot open store for class "kuFLQS", missing file? | |||
'''[03/01/2012 - 07:13:31PM] warning: Unable to get type kuFLQS referenced by the save game. Objects of this type will not be loaded. | |||
'''[03/01/2012 - 07:13:31PM] warning: Could not find type kuFLQS in the type table in save | |||
[03/01/2012 - 07:13:31PM] VM is thawing... | |||
[03/01/2012 - 07:13:38PM] VM is freezing... | |||
[03/01/2012 - 07:13:38PM] VM is frozen | |||
[03/01/2012 - 07:13:39PM] Saving game... | |||
[03/01/2012 - 07:13:39PM] VM is thawing... | |||
[03/01/2012 - 07:13:47PM] VM is freezing... | |||
[03/01/2012 - 07:13:47PM] VM is frozen | |||
[03/01/2012 - 07:13:47PM] Log closed | |||
So, I save the game again at this point - a 2nd clean save.<br/> | |||
In normal play-time, this 2nd clean save will naturally as you play the game after deactivating the mod.<br/> | |||
I quit the game.<br/> | |||
Then reloaded it with the mod STILL deactivated (i.e. no ESP nor Script in the file system).<br/> | |||
Unfortunately, the reference to kuFLQS is still in the game as shown with the highlighted errors in the log.<br/> | |||
So, the references to the ESP still exist after 2 clean saves.<br/> | |||
But again, Debugs from the registered OnUpdate (). A good sign that the event is not firing.<br/> | |||
This, I think, is acceptable.<br/> | |||
In Oblivion, some objects from deactivated mods persisted as NULL objects.<br/> | |||
[03/01/2012 - 07:13:56PM] Papyrus log opened (PC) | |||
[03/01/2012 - 07:13:56PM] Update budget: 1.200000ms (Extra tasklet budget: 1.200000ms, Load screen budget: 500.000000ms) | |||
[03/01/2012 - 07:13:56PM] Memory page: 128 (min) 512 (max) 76800 (max total) | |||
[03/01/2012 - 07:14:09PM] VM is freezing... | |||
[03/01/2012 - 07:14:09PM] VM is frozen | |||
[03/01/2012 - 07:14:09PM] Reverting game... | |||
[03/01/2012 - 07:14:13PM] Loading game... | |||
'''[03/01/2012 - 07:14:14PM] Cannot open store for class "kuFLQS", missing file? | |||
'''[03/01/2012 - 07:14:14PM] warning: Unable to get type kuFLQS referenced by the save game. Objects of this type will not be loaded. | |||
'''[03/01/2012 - 07:14:14PM] warning: Could not find type kuFLQS in the type table in save[/color] | |||
[code][03/01/2012 - 07:14:14PM] VM is thawing... | |||
[03/01/2012 - 07:14:26PM] VM is freezing... | |||
[03/01/2012 - 07:14:26PM] VM is frozen | |||
[03/01/2012 - 07:14:27PM] Log closed | |||
So, I then changed the mod: removed a Property and so removed that Property's reference from my Debugs.<br/> | |||
I returned the mod to the file system but I DID NOT activate it. I.e. the ESP and Script exist but the ESP is not active.<br/> | |||
This is to test if the OnUpdate () event was still firing from the time I deactivated the mod.<br/> | |||
I.e. removed the ESP and the Script from the file system.<br/> | |||
Remember that there were no indications of the OnUpdate () running from previous logs.<br/> | |||
This is the log after I loaded the game.<br/> | |||
[03/01/2012 - 07:22:42PM] Papyrus log opened (PC) | |||
[03/01/2012 - 07:22:42PM] Update budget: 1.200000ms (Extra tasklet budget: 1.200000ms, Load screen budget: 500.000000ms) | |||
[03/01/2012 - 07:22:42PM] Memory page: 128 (min) 512 (max) 76800 (max total) | |||
[03/01/2012 - 07:22:57PM] VM is freezing... | |||
[03/01/2012 - 07:22:57PM] VM is frozen | |||
[03/01/2012 - 07:22:58PM] Reverting game... | |||
[03/01/2012 - 07:23:01PM] Loading game... | |||
[03/01/2012 - 07:23:02PM] VM is thawing... | |||
[03/01/2012 - 07:23:03PM] OnUpdate None | |||
[03/01/2012 - 07:23:04PM] OnUpdate None | |||
[03/01/2012 - 07:23:05PM] OnUpdate None | |||
[03/01/2012 - 07:23:12PM] OnUpdate None | |||
[03/01/2012 - 07:23:13PM] OnUpdate None | |||
[03/01/2012 - 07:23:14PM] OnUpdate None | |||
[03/01/2012 - 07:23:15PM] OnUpdate None | |||
[03/01/2012 - 07:23:20PM] VM is freezing... | |||
[03/01/2012 - 07:23:20PM] VM is frozen | |||
[03/01/2012 - 07:23:20PM] Log closed | |||
"None" in the OnUpdate () Debug.Trace () tells me that the variables were truly discarded at the save AFTER first deactivation.<br/> | |||
However, the Onupdate () Event is still firing!<br/> | |||
What this tells me is that the Event manager pings the Script even if it doesn't exist in the file system.<br/> |