Jump to content

bcsp

Supporter
  • Posts

    77
  • Joined

  • Last visited

Everything posted by bcsp

  1. Thank you for taking the time to reply. Ok, the fact that it was working for one mod but not both mods was really throwing me off. I'm trying to get my head around what you've said. So based on my new-found understanding: I can run preliminary checks if mods exist with Game.GetFormFromFile(x) as any built in type - Quest, Actor, etc- from the main 'bulk' of a script without causing it to stop. But if I want to access a script attached to the object then the attempt to access the external script should be isolated into a script of it's own. Each soft dependency that tries to access an external script would each need their own separated script. If there was say 2 external functions I wanted to use from the same mod they could both be put into the same isolated script. IE. One isolated script per external mod. Here's a modified version I came up with: Master (Not changed): Scriptname _TM_MasterScript extends Quest String Function _TM_MasterFunction() Return "Master String" EndFunctionSoftLink Mod A: Scriptname _TM_SoftLinkA_Script extends ReferenceAlias _TM_SoftLinkMaster Property SoftLinkMaster Auto Event OnInit() RegisterForSingleUpdate(1.0) EndEvent Event OnPlayerLoadGame() Quest Master = Game.GetFormFromFile(0x00000d62, "_TM_Master.esp") as Quest If Master Debug.MessageBox("_TM_: Soft Link A - " + SoftLinkMaster.GetString(Master)) Debug.Trace("_TM_: Soft Link A - " + SoftLinkMaster.GetString(Master)) Else Debug.MessageBox("_TM_: Soft Link A - Master esp not found") Debug.Trace("_TM_: Soft Link A - Master esp not found") EndIf EndEvent Event OnUpdate() Debug.Trace("_TM_: Soft Link A: Mod A running ok") RegisterForSingleUpdate(1.0) EndEvent SoftLink Mod B: Scriptname _TM_SoftLinkB_Script extends ReferenceAlias _TM_SoftLinkMaster Property SoftLinkMaster Auto Event OnInit() RegisterForSingleUpdate(1.0) EndEvent Event OnPlayerLoadGame() Quest Master = Game.GetFormFromFile(0x00000d62, "_TM_Master.esp") as Quest If Master Debug.MessageBox("_TM_: Soft Link B - " + SoftLinkMaster.GetString(Master)) Debug.Trace("_TM_: Soft Link B - " + SoftLinkMaster.GetString(Master)) Else Debug.MessageBox("_TM_: Soft Link B - Master esp not found") Debug.Trace("_TM_: Soft Link B - Master esp not found") EndIf EndEvent Event OnUpdate() Debug.Trace("_TM_: Soft Link B: Mod B running ok") RegisterForSingleUpdate(1.0) EndEvent Interface Script. Both mod A & B use this: ScriptName _TM_SoftLinkMaster extends Quest String Function GetString(Quest Master) _TM_MasterScript MasterScript = Master as _TM_MasterScript Return MasterScript._TM_MasterFunction() EndFunction Seems to work fine. The updates from both mods continue ok with and without the master mod installed. Logs: With Master mod installed: Without master mod installed: It also appears to work if the master mod was not initially installed but then is installed mid-game which is great. Does this look ok to you? Thanks again for the help. I really appreciate it.
  2. Hi all, I posted this over on LL but I feel the need to post it here as well to 'cover more ground'.There appears to be an issue with Bethesdas/SKSEs code when 2 mods make a soft dependency check to the same resource but that resource is not installed. To demonstrate I've created 3 tiny mods. One 'master' mod that contains the resource we want to access and two 'soft link' mods that try to access a function in the master mod. Test yourself with mod organizer. 1. Install and enable all mods2. Start a new game, save and reload it. Quit and check your logs. Both mods should be running ok. 3. Disable the master mod in the left hand side of MO (IE. remove the scripts). Start a new game and save a reload. Quit and check your log. Only one mod will be running even though they are essentially identical. Here's the code: Master: Scriptname _TM_MasterScript extends Quest String Function _TM_MasterFunction() Return "Master String" EndFunction SoftLink Mod A Scriptname _TM_SoftLinkA_Script extends ReferenceAlias Event OnInit() RegisterForSingleUpdate(1.0) EndEvent Event OnPlayerLoadGame() _TM_MasterScript Master = Game.GetFormFromFile(0x00000d62, "_TM_Master.esp") as _TM_MasterScript If Master Debug.MessageBox("_TM_: Soft Link A - " + Master._TM_MasterFunction()) Debug.Trace("_TM_: Soft Link A - " + Master._TM_MasterFunction()) Else Debug.MessageBox("_TM_: Soft Link A - Master esp not found") Debug.Trace("_TM_: Soft Link A - Master esp not found") EndIf EndEvent Event OnUpdate() Debug.Trace("_TM_: Soft Link A: Mod A running ok") RegisterForSingleUpdate(1.0) EndEvent SoftLink Mod B Scriptname _TM_SoftLinkB_Script extends ReferenceAlias Event OnInit() RegisterForSingleUpdate(1.0) EndEvent Event OnPlayerLoadGame() _TM_MasterScript Master = Game.GetFormFromFile(0x00000d62, "_TM_Master.esp") as _TM_MasterScript If Master Debug.MessageBox("_TM_: Soft Link B - " + Master._TM_MasterFunction()) Debug.Trace("_TM_: Soft Link B - " + Master._TM_MasterFunction()) Else Debug.MessageBox("_TM_: Soft Link B - Master esp not found") Debug.Trace("_TM_: Soft Link B - Master esp not found") EndIf EndEvent Event OnUpdate() Debug.Trace("_TM_: Soft Link B: Mod B running ok") RegisterForSingleUpdate(1.0) EndEvent Here's a papyrus log with all mods active and installed:The same is true if the masters scripts are installed but the esp is not active. Here's a papyrus log when the master is not installed but both soft link mods are installed: The first mod in the load order 'wins' and continues running as expected. The mod lower in the load order has it's scripts dumped and stops working entirely. I'm a guy that likes to bring mods together where I can and have mods as more than 'a collection of islands' but with this issue I not only need to account for my own mod but every other mod and load order out there and it's just too much hassle. So questions:1. First. Is my implementation ok? Maybe I've got something wrong. 2. Why the heck does this happen and what exactly is causing it? http://www.filedropper.com/testmod-masterhttp://www.filedropper.com/testmod-softlinkahttp://www.filedropper.com/testmod-softlinkb Not being able to upload 7z files is a bit of a PITA. Here's the thread on LL if people are allergic to filedropper: https://www.loverslab.com/topic/106848-multiple-mods-with-soft-dependency-to-the-same-resource/
  3. You couldn't have 30 million :D There are already a couple of solutions. Sorry, I've been meaning to update the OP. 1. Download Crash fixes by meh321 - http://www.nexusmods.com/skyrim/mods/72725/? - It has a workaround for the string table issue and allows > 64k strings. It should also make your game a helluva lot more stable. The only downside to it is that once your save goes over the 64k string count the save format changes slightly which causes the normal save script cleaners to not work anymore. Happily, markdf has made a new script cleaner - Resaver - http://www.nexusmods.com/skyrim/mods/76776/ OR 2. Markdf also created a Restringing tool which should allow you to keep your string count under the 64k limit. You need to know what you are doing though, it's not for noobs. You can find the Restringer at the same link for the Resaver above. As for the 255 plugin limit, it's pretty much a non problem these days thanks to Merge Plugins by Mator - http://www.nexusmods.com/skyrim/mods/69905/? EDIT: Updated the solutions section of the OP for clarity.
  4. Must go back over my enb settings and make sure they're ok but Skyrim is still a 32bit app - it's going to crap out at 3.1GBs anyway. As for mods working with Skyrim remastered I think someone at Beth said they "should basically work". Whatever that means. Still, you could not expect them to come out and say "All mods will 100% definitely work". It's asking for trouble. And as for how to contact Beth, I have no idea.... Their forum maybe? Or maybe twitter might be better...?
  5. V10 of crash fixes has been working flawlessly for me. My game has not been this stable in a long time. The only problem I'm running into now is hitting the 3 gig memory limit. Hitting it while the game is running is pretty obvious - Heavy stuttering and missing textures and some time later a pop up message - "Skyrim has failed to allocate memory". Hitting the limit on a loading screen is a little more annoying - The same message pops up in the background but the load screen continues so I don't notice (ILS). Only check I have is pressing the console key results in a system beep when it's over limit. 64bit Skyrim should solve this problem happily. Can't wait. Feels like a golden age for Skyrim. Hopefully someone at Bethesda is aware of the string table issue and will bump the count field to 32 bits. Should we be concerned by the fact that they have said that saves would be transferable from Skyrim 2011? A 16 bit number will 'fit' into a 32 bit field after all.....
  6. Newest version of the crash fixes mod by meh321has implemented a fix: http://www.nexusmods.com/skyrim/mods/72725/? Edit: Be aware that once a save goes over the normal string limit, the ususal save tools won't work. Hopefully we'll see an update for the new save format or a new save tool altogether.
  7. Link to the Restringer app by Mark: http://www.loverslab.com/topic/61279-restringer/ There's also been another very interesting development: http://www.loverslab.com/topic/61293-help-test-fix-for-save-game-string-table-overflow/
  8. Not normal. Not sure you should install mod organizer in the skyrim folder as it's the folder that's getting virtualized. I could see it resulting in all sorts of weirdness. Looks like you've two instances of mod organizer installed... As for skse, have you tried manually adding SKSE as an application?
  9. I'm not sure about fragments. Has it been confirmed that the strings they add are temporary? The reason I ask is that many of the mods with a high string count seem to have a lot of tifs. In other news, markdf over on LL has produced patched vanilla Skyrim scripts that reduce string count by a staggering 20,000. It should be considered an alpha stage mod. Only use on a new game and if you know what you are doing. The scripts have not been functionally tested yet. Edit: Scratch that guys :( Looks like there are fundamental issues with the patched skyrim scripts. The restringer still sounds promising however.
  10. Looks fine. I've had saves with close to 200,000 script instances. Only reason for delay while riding a horse that I can think of is cell loading. While riding a horse your moving faster (duh) but you're moving through cells faster. Each cell needs to be loaded into memory which creates a small amount of lag when entering a new cell. It's probably the main reason vanilla horses are as slow as hell. Mods can add a bunch of stuff to cells which would increase load time. Or if you're using a mod that increases horse speed would also make the lag more noticeable.
  11. You're thinking of the string table problem. A string is a component of a script not a script itself. There's usually only around 2 - 40ish actively running scripts at any one time in a healthy save file.
  12. Whoops forgot to carry the one ;) Yea that version of the save breaker won't get made.
  13. :confused: Maybe see if you can manage to save before it crashes and run that save through the cleaner. "Fix script instances" and "Delete all #". You may have to consider just starting a new game. 42,000 active scripts is REALLY extreme. I've seen malfunctioning saves with around 1,000 or 2,000. The save may be unrecoverable.
  14. Not sure I understand. Are you cleaning the save before loading it? Make sure to actually 'check' the mod in the mod editor window. I sometimes mistakenly only highlight it myself. It should read 'x scripts removed' at the bottom. And can you explain what you mean by corrupted? Does it CTD while loading the cleaned save or seconds after the game loads.
  15. Hmm. Ok different approach. First make a good backup of your saves. Open the save cleaner again and open your last working save. Click "Mod editor". Find Konahrik Accoutrements esp in the mod list and select it. Then click "Delete selected mods forms" and "Delete selected mod scripts". Close the window and save it. Deactivate the esp. Also if you are using Mod organizer uncheck the mod in the left hand list. Try loading the new save.
  16. That script appears to be from Konahrik Accoutrements. Try deactivating it's esp. Load your game. Wait a few seconds and make a manual save. Exit the game, and run the save through the save game script cleaner. Fix script instances should do it and then save it. Load your new save and test again. Note that deactivating a scripted mod like that is not a 'pretty' solution. But if it is malfunctioning like that there is likely no other course.
  17. that will do it. Is there one script in particular that most are instances of?
  18. I'd check the save game cleaner under 'active scripts'. My guess is there are a lot of them...?
  19. What size are your saves? Some mods can 'bloat' your save if they malfunction.
  20. Tbh you'd be better off running your desktop at 1440p resolution and set games to 4k. That's what I do. TesEdit isn't the only program that suffers at 4k. You can scale the text but it doesn't affect every program (including TesEdit) and looks kind of fuzzy at high values. For windows 7: Right click desktop -> screen resolution -> Make text and other items larger or smaller. Personally though I'd go with lowering the desktop resolution.
  21. G strings hehe. I see what you mean though. See will the game break over the 32 bit limit. 99,000 took some time to make, 4.3 million.... I think I'd need a month off work ;)
  22. No problem. Looks like Sheson has integrated the string fixes into DynDoLod version 1.48 and higher. Will update the OP.
  23. Thanks for the stats. Have you tried the beta DynDoLod scripts in the OP. Should give you a substantial reduction in string count if you are not already using it.
  24. Sorry didn't realize it replaced existing scripts. Yes, that is possible.
  25. Unlikely. It's more likely that the mod consumes very few strings and the negative number is due to the natural fluctuation of string count during play. Need EoS to clarify on that though.
×
×
  • Create New...