fishburger67 Posted September 21, 2014 Posted September 21, 2014 I have written a mod and on one of my test machines (only one), I am getting a CTD on loading a save game. This CTD happens one out of 4 save game loads. In the following discursion, I do not have my mod loaded for these tests because I have determined that it is either taking place in slaMainScr or in whatever mod writes the papyrus log entry "InitWidgetLoader()" (Anyone know where this InitWidgetLoader comes from?) This is on a skookum machine with 16 gigs of memory, enboost installed as well as MemoryBlocks logger installed (which shows no memory issues), tesv5Edit run on all the mods (which aren't many) Skyrim.esm=1Update.esm=1Unofficial Skyrim Patch.esp=1ApachiiHair.esm=1ZaZAnimationPack.esm=1SexLab.esm=1SexLabAroused.esm=1HighResTexturePack01.esp=1HighResTexturePack02.esp=1HighResTexturePack03.esp=1NewmillerPiercings2.esp=1AmazingFollowerTweaks.esp=1SexLabMatchMaker.esp=1AliciaPainSlut.esp=1dD - Realistic Ragdoll Force - Reduced.esp=1voidLetsGetNaked.esp=0NewmillerPiercings3.esp=1Convenient Horses.esp=1SBF All In One Vanilla.esp=1MiasLair.esp=0My Home Is Your Home.esp=0TheEyesOfBeauty.esp=1Kamille.esp=1SkyUI.esp=1LoversComfort.esp=0MileySkyrus.esp=1Remodeled Armor.esp=1SexLabSquirt.esp=1Alternate Start - Live Another Life.esp=1Bashed Patch, 0.esp=1 Here are the first few lines of a good save load: [09/21/2014 - 03:13:39PM] VM is thawing...[09/21/2014 - 03:13:39PM] ==== LAL: DLC and Mod support check - Ignore errors about missing files. ====[09/21/2014 - 03:13:39PM] zbf Register: Registered mod Zaz Animation Pack in slot 0.[09/21/2014 - 03:13:39PM] [slamainscr <sla_Main (06042D62)>]: starting maintenance...[09/21/2014 - 03:13:39PM] InitWidgetLoader()[09/21/2014 - 03:13:39PM] ========== Convenient Horses: Scanning for supported plugins...[09/21/2014 - 03:13:39PM] ========== ERRORS RELATED TO MISSING FILES SHOULD BE IGNORED![09/21/2014 - 03:13:39PM] Error: File "dawnguard.esm" does not exist or is not currently loaded. ...Bunch more convient Horses stuff Here is the log of a crash: [09/21/2014 - 03:11:39PM] VM is thawing...[09/21/2014 - 03:11:39PM] ==== LAL: DLC and Mod support check - Ignore errors about missing files. ====[09/21/2014 - 03:11:39PM] zbf Register: Registered mod Zaz Animation Pack in slot 0.[09/21/2014 - 03:11:39PM] [slamainscr <sla_Main (06042D62)>]: starting maintenance... So, I modified slamainscr to look like this: ;UpdateSoftLinks() i.e. commented this out (it does nothing here except go through all the mods looking for devious devices). After doing this, my ctd rate dropped to 1 in 6 Further investigation led to modifying the next function call after UpdateSoftLinks like this: Function UpdateDesireSpell() Debug.Trace(Self + "UpdateDesireSpell()") If (slaConfig.IsDesireSpell) Debug.Trace(Self + "Removing Desire spell") PlayerRef.RemoveSpell(slaDesireSpell) Debug.Trace(Self + "Adding Desire spell") PlayerRef.AddSpell(slaDesireSpell, false) Debug.Trace(self + ": Enabled Desire spell") Else PlayerRef.RemoveSpell(slaDesireSpell) Debug.Trace(self + ": Disabled Desire spell") EndIfEndFunction All I did here was add a lot of tracing stuff. I did 20 restarts and had 5 crashes. All produced the same log which looks like this: [09/21/2014 - 04:09:40PM] VM is thawing...[09/21/2014 - 04:09:40PM] ==== LAL: DLC and Mod support check - Ignore errors about missing files. ====[09/21/2014 - 04:09:40PM] zbf Register: Registered mod Zaz Animation Pack in slot 0.[09/21/2014 - 04:09:40PM] [slamainscr <sla_Main (06042D62)>]: starting maintenance...[09/21/2014 - 04:09:40PM] [slamainscr <sla_Main (06042D62)>]: starting maintenance... 2[09/21/2014 - 04:09:40PM] [slamainscr <sla_Main (06042D62)>]: starting maintenance... 3[09/21/2014 - 04:09:40PM] [slamainscr <sla_Main (06042D62)>]UpdateDesireSpell()[09/21/2014 - 04:09:40PM] [slamainscr <sla_Main (06042D62)>]Removing Desire spell[09/21/2014 - 04:09:40PM] [slamainscr <sla_Main (06042D62)>]Adding Desire spell It looks like PlayerRef.AddSpell(slaDesireSpell, false)causes a crash. I have lots of experience in a multi-threaded environment and it is way more than possible that the crash turned out to be in some unrelated area. However, this is a bird in the hand and so I wanted to bounce it off of other developers to see if they had some input. I was expecting that the player already has the desire spell and this call is redundant. To test this, I modified Debug.Trace(Self + "Adding Desire spell") to look like this: Debug.Trace(Self + "Adding Desire spell, player has spell = " + PlayerRef.HasSpell(slaDesireSpell)) Now, it is crashing on that line. I am trying to find a fix for this for everyone, not just myself. If anyone has an Idea, I would love to here it.
fishburger67 Posted September 22, 2014 Author Posted September 22, 2014 Update: Did some more experimentation and adding : PlayerRef.AddSpell(slaDesireSpell, false)At the top of the Maintenence function causes a CTD right at that point, so this doesnt look like it is happening anywhere else. I did a PlayerRef.HasSpell(slaDesireSpell) right before and it returns true. So, I modified the real function like this: Function UpdateDesireSpell() Debug.Trace(Self + "UpdateDesireSpell()") If (slaConfig.IsDesireSpell) Debug.Trace(Self + "Enable Desire spell") ;PlayerRef.RemoveSpell(slaDesireSpell) if(! PlayerRef.HasSpell(slaDesireSpell)) PlayerRef.AddSpell(slaDesireSpell, false) Debug.Trace(self + ": Enabled Desire spell") endif Else PlayerRef.RemoveSpell(slaDesireSpell) Debug.Trace(self + ": Disabled Desire spell") EndIfEndFunction It is now failing on the if(! PlayerRef.HasSpell(slaDesireSpell)) line. Anyone have a clue? PlayerRef btw if a Actor Property Auto.
fishburger67 Posted September 23, 2014 Author Posted September 23, 2014 Anyone have any input on this?
Recommended Posts
Archived
This topic is now archived and is closed to further replies.