Jump to content

Meditations Upon a Corrupt Plugin


lmstearn

Recommended Posts

Been working with the CK tutorial recently and found some very weird issues.

 

The first appears to be keeping the CK loaded for a long time (in between crashes of course)

It appears to function properly, but if left in focus when either bringing the machine out of standby or running a memory intensive prog (like Skyrim) the render window freezes- and unfortunately crashes the rest of the CK.

Not only that, but over time the papyrus logs from game runs would blow up to a scary 4 mb with every possible error in the book.

 

Quit the CK and load the corrupt plugin we find a more "respectable" log of about 70k-340k.

These would contain curious errors of the "truncated stack" kind:

"USKPRetroactive121Script.psc" Line ?
	[USKPRetroactive12 (020339CE)].uskponload05script.Process() - "USKPOnLoad05Script.psc" Line ?
	[USKPRetroactive11 (0202EE20)].uskponload04ascript.Process() - "USKPOnLoad04aScript.psc" Line ?
	[USKPRetroactive103 (0202C823)].uskponload02script.Process() - "USKPOnload02Script.psc" Line ?
	[USKPVersionTracking (0200D8B9)].USKP_VersionTrackingScript.ProcessRetroScripts() - "USKP_VersionTrackingScript.psc" Line ?
	
	<truncated stack>
[12/20/2014 - 01:54:18PM] Error: Cannot call IsDead() on a None object, aborting function call
stack:

Which bring to mind Arthmoor's post on the civil war bugs.

 

The plugin I have used is corrupt because the linked ref from the draugr to the defaultActivateSelfTRIG in the ambush exercise got broken. A symptom of this is the draugr spawn outside the coffin instead of lying within the coffin marker. In my case it got worse as the defaultActivateSelfTRIG failed to activate at all.

But this corruption follows through all similar setups in the game as the culprit plugin is loaded last. Suppose we load (the unedited) WarehouseAmbushes (via COC) with the corrupt plugin activated. The draugr in the ambush setup at the south wall spawns outside the coffin. De-activate the plugin and he/she spawns inside correctly.

Of course, Xedit doesn't pick up any of this problem.

But why is the CK so tetchy about catching this spawn-outside-coffin bug? Might there exist a bug latency in editing some other unrelated object in the cell? Must have been a pain for the game designers. A solution is to employ the use of an overriding script confining the recalcitrant undead to their tombs. Would be slow as it has to detect thousands of sets of properties that match ambush.

Oh well.

 

As an aside, a performance booster (minus increased loading times) was the use of 

fPostLoadUpdateTimeMS=1000

Probably a good idea to boost this while the civil war scripts run.

Also increasing fExtraTaskletBudgetMS a little from 1.2 might be beneficial in the CWl but haven't tried that yet.

 

Getting in the habit of PCB before COCing anywhere thinking it might make a difference. Doubt it though.

And clearing the memory before each run of the game (and CK?) with this.

Link to comment
Share on other sites

I'm having a hard time seeing how a linked ref could cause a cascade into other setups of the same type and break them all when linked references are applied to individual references and not to the base actor/object records.

 

As far as having the CK open when running the game, I've done this plenty of times and never noticed it generating any sort of strange log output. Always the usual stuff regardless of how the game is launched or what's running behind it. About all it does is make the game sluggish because it's competing with the CK for RAM.

 

fPostLoadUpdateTimeMS=1000 only applies to loading screens. I'm not sure whether or not it even helps because I've noticed no changes in game behavior while running it. Could just be my normal load order isn't large enough for that to matter.

 

PCB doesn't do anything anymore. Used to be how you'd clear the cell buffer memory but I've checked game memory usage with it before and found it does nothing compared to how you'll see the game's memory usage drop in Oblivion or the Fallout games.

 

That last bit with clearing out the memory is just the Windows Superfetch feature. I've gone and taken a look in Windows\Prefetch to see what's in there and the CK does have an entry. The game does not, and I notice none of the other games on my system have entries in there either. Only the non-gaming stuff has them. Clearing this folder out has no real effect on anything though, as I used to do it religiously but then stopped to see if I was wasting my time. Which I was :P

Link to comment
Share on other sites

Thanks for the insight, Art,

I'm having a hard time seeing how a linked ref could cause a cascade into other setups of the same type and break them all when linked references are applied to individual references and not to the base actor/object records.

 

I have deleted the copies from the working cell plugin but extraneous info is still there. Copied all objects to a different cell didn't change anything, and the original (now empty) cell couldn't be nuked until CK restart.

Edit: Well, believe it or not, I never touched anything in warehouseambushes other than copy the objects. But the culprits were found in Xedit. Nuked them and all is well.

 

As far as having the CK open when running the game, I've done this plenty of times and never noticed it generating any sort of strange log output. Always the usual stuff regardless of how the game is launched or what's running behind it. About all it does is make the game sluggish because it's competing with the CK for RAM.

 

No idea what the problem is here. Bad tweaks (checked again) or memory issue which hopefully is cured by the memory flush. Here's the papyrus log on the current but very ancient save.

 

fPostLoadUpdateTimeMS=1000 only applies to loading screens. I'm not sure whether or not it even helps because I've noticed no changes in game behavior while running it. Could just be my normal load order isn't large enough for that to matter.

 

With mine it eases the early stutters when a cell is just loaded. Nice and smooth now.

 

: Clearing this folder out has no real effect on anything though, 

 

There's TESV.EXE-802A62EE.pf, GAMEOVERLAYUI.EXE-07A19104.pf, DLLHOST.EXE-5E46FA0D.pf (might be SKSE) on mine. Also one for Steam, CK etc.When the standbylist is cleared the HDD thrashes like a mudcrab on steroids on both game and save load. 

Link to comment
Share on other sites

I have deleted the copies from the working cell plugin but extraneous info is still there. Copied all objects to a different cell didn't change anything, and the original (now empty) cell couldn't be nuked until CK restart.

Ah, ok. When you copy stuff in the CK, it will make an effort to setup duplicates of all the settings you've got. If there's a bogus one of some sort, those get copied too. So it might seem like they all just keep frying themselves but it's because the source was bad until you fixed it.

No idea what the problem is here. Bad tweaks (checked again) or memory issue which hopefully is cured by the memory flush. Here's the papyrus log on the current but very ancient save.

This log looks like you have some loose scripts lying about that need to get cleaned up. Are you sure you didn't unpack a vanilla BSA that was full of compiled scripts?
 
There's TESV.EXE-802A62EE.pf, GAMEOVERLAYUI.EXE-07A19104.pf, DLLHOST.EXE-5E46FA0D.pf (might be SKSE) on mine. Also one for Steam, CK etc.When the standbylist is cleared the HDD thrashes like a mudcrab on steroids on both game and save load.

TESV.EXE would be the only Skyrim specific one I'd expect to see there besides the CK. I don't think SKSE is large enough for Windows to think it needs this. GAMEOVERLAYUI.EXE and DLLHOST.EXE are both generic files that could be getting in there from just about anything.
Link to comment
Share on other sites

Here are the papyrus settings:

bEnableLogging=1
bEnableTrace=1
bLoadDebugInformation=0
bEnableProfiling=0
uTraceStatusOfQuest=0

Hmm, the tempting "compile" button in the QM did have a downside after all. :cry:

Canned some of the scripts, but methinks the remaining ones are required by mods. Here's a list of the remaining ones:

 

The log is down to about 60k now- worth fretting over?

 

Another bunch of stuff in the prefetch:

PAPYRUSASSEMBLER.EXE-230D2CDD
PAPYRUSCOMPILER.EXE-BDAD8F5E
SKSE_LOADER.EXE-20CD0458
SKYRIMLAUNCHER.EXE-97D2B341.pf
STEAMSERVICE.EXE-61749D82.pf
STEAMSERVICETMP.EXE-05436FDF.pf
STEAMTOOL.EXE-9DEF6E0E.pf
STEAMWEBHELPER.EXE-0D5D74DB.pf
WRYE BASH.EXE-3EDB0052.pf
LOOT.EXE-58ECD0AB.pf

But what really impressed was the 1.2Mb "Layout.ini" in there.  Yours comparable?

Link to comment
Share on other sites

Heh, yep, that tempting compile button can cause all kinds of problems :P

 

You basically have one actual problem left that I can see:

 

[12/21/2014 - 11:04:28PM] Error: Property ExclusiveCellList on script avquestscript attached to AVQuestScript_qust (43000D6D) cannot be initialized because the value is the incorrect type

 

The author of that script needs to fix whatever is wrong there because it won't be working properly until they do.

 

You should try and identify where all the loose TIF scripts are from too because they ought to be neatly packed in a bsa instead of sitting out like that. The rest seems legit though.

Link to comment
Share on other sites

Bit of a jolt after removing the TIF scripts. Game started okay. No problems apparent...

Well at least for a short while.

Um, all my armour and weaponry seems to have reverted to iron.

Erm... wait- all the quests are gone.

Wait- there's more- I'm back to level one.

And the character name is now "Prisoner" :cry:

 

Heck, I'll just leave them in for the time being- they appear fairly harmless- most of them seem to be related to Hearthfire (which isn't installed)

No idea how they got there (all dated 28 MAR 2013 15:48)

Happy Christmas all!  :xmastroll:

 

Edit: Turns out these are all MS11 related from my own doings.

TIF__0002166E MS11JorleifButcherPermissionTopic "I've heard about these murders." [DIAL:0002166A]
TIF__000D55EC MS11GuardTerribleHowsItGoing "Are the murders being investigated?" [DIAL:000D55E6]
TIF__00025E49 MS11GuardInsinuations "Sounds like the guards aren't doing their job." [DIAL:00025E43]
TIF__0002420F MS11SecondCrimeScenePointerToWuunferth "The killer must still be out there." [DIAL:0002420A]
TIF__00025E4E MS11InvestigatingCluesGuardsAmuletTopic "Do you know what this amulet is?" [DIAL:00025E37]
TIF__00025E57 MS11GuardWantHelp "Could you use some help?" [DIAL:00025E42]
TIF__00025E62 MS11InvestigatingCluesViolaOutsideHjerimTopic "Ready to check out the house?" [DIAL:00025E34]
TIF__0002157C MS11CrimeSceneWitness1BranchTopic "Did you see what happened here?" [DIAL:00021575]
TIF__0002166D MS11InvestigatingCluesGuardsFlyerTopic "Can you tell me anything about the "Butcher"?" [DIAL:00021665]
TIF__00025E48 MS11GuardPlayerWantsToHelp "There might be more to this, if you'll let me help." [DIAL:00025E41]
TIF__000D55EF MS11HelgirdBrushOff [DIAL:000D55DF] [INFO:000D55EF] ('Now, I really got to get back to the body. Lot of work to prepare her for the grave.' in GRUP Topic Children of MS11HelgirdBrushOff [DIAL:000D55DF])
TIF__00025E58 MS11WuunferthCSIMoment "So what can we do now?" [DIAL:00025E27]
TIF__00021581 MS11CrimeSceneWitness2BranchTopic "Did you see what happened here?" [DIAL:00021576]
TIF__00025E65 MS11InvestigatingCluesCalixtoAmuletTopic "Do you know anything about this amulet?" [DIAL:00025E36]
TIF__00025E60 MS11CalixtoBuyingAmulet "You have yourself a deal, sir." [DIAL:00025E33]
TIF__00025E55 MS11CalixtoAmuletBelongsToWuunferth "Shouldn't the court mage have it?" [DIAL:00025E32]
TIF__00025E50 MS11CalixtoPlayerKeepsAmulet "I think I'll hold on to it for the time being." [DIAL:00025E31]
TIF__0002157A MS11CrimeSceneWitness3BranchTopic "Did you see what happened here?" [DIAL:00021577]
TIF__00025E67 MS11TovaNeedKey "I'd like to investigate her house, but I'll need the key." [DIAL:00025E3B]
TIF__000E4A3A MS11HjerimTovaContinuation [DIAL:000E4A1E] [INFO:000E4A3A] ('I think her mother, Tova, has the key.' in GRUP Topic Children of MS11HjerimTovaContinuation [DIAL:000E4A1E])
TIF__000E4A3B MS11HjerimTovaContinuation [DIAL:000E4A1E]
TIF__00021671 MS11GuardsGettingIntoHjerimTopic "How do I get into Hjerim?" [DIAL:00021667]
TIF__0002166B MS11CrimeSceneGuardHintTopic "Jorleif has granted me permission to aid in the investigation." [DIAL:00021668]
TIF__00025E54 MS11ViolaThinksItsWuunferth "It sounds like the court mage has been experimenting." [DIAL:00025E30]
TIF__000216A1 MS11InvestigatingCluesViolaPostFoundBasementTopic [DIAL:0002169E]
TIF__00025E4A MS11JorleifPresentEvidence "We have evidence of necromancy, and found his amulet." [DIAL:00025E2F]
TIF__0010F185 MS11ViolaPosterExplanation "I found this poster in Hjerim." [DIAL:00025E38]
TIF__00025E5D MS11ViolaToHjerimExclamationPoint "MS11ViolaToHjerimExclamationPoint" [DIAL:00025E35]
TIF__00025E5C MS11ViolaToHjerimExclamationPoint "MS11ViolaToHjerimExclamationPoint" [DIAL:00025E35]
TIF__0002166F MS11InvestigatingCluesViolaFlyerTopic "What can you tell me about the "Butcher"?" [DIAL:00021664]
TIF__000D55EB MS11JorleifQuestOverTheEnd [DIAL:000D55E5]

As Blood on the Ice has completed, all related running scripts were deleted from the save, and all the above now removed.

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...