Monoman1 Posted September 1, 2018 Posted September 1, 2018 Hi all, 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 mods 2. 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. Line 814: [09/01/2018 - 11:10:07AM] _TM_: Soft Link B: Mod B running ok Line 815: [09/01/2018 - 11:10:07AM] _TM_: Soft Link A: Mod A running ok Line 1258: [09/01/2018 - 11:10:08AM] _TM_: Soft Link B: Mod B running ok Line 1259: [09/01/2018 - 11:10:08AM] _TM_: Soft Link A: Mod A running ok Line 1321: [09/01/2018 - 11:10:10AM] _TM_: Soft Link B: Mod B running ok Line 1322: [09/01/2018 - 11:10:10AM] _TM_: Soft Link A: Mod A running ok Line 1383: [09/01/2018 - 11:10:11AM] _TM_: Soft Link B: Mod B running ok Line 1384: [09/01/2018 - 11:10:11AM] _TM_: Soft Link A: Mod A running ok Line 1524: [09/01/2018 - 11:10:12AM] _TM_: Soft Link A: Mod A running ok Line 1525: [09/01/2018 - 11:10:12AM] _TM_: Soft Link B: Mod B running ok Line 1580: [09/01/2018 - 11:10:13AM] _TM_: Soft Link B: Mod B running ok Line 1581: [09/01/2018 - 11:10:13AM] _TM_: Soft Link A: Mod A running ok Line 1897: [09/01/2018 - 11:10:16AM] _TM_: Soft Link B - Master String Line 1898: [09/01/2018 - 11:10:16AM] _TM_: Soft Link A - Master String Line 2597: [09/01/2018 - 11:10:18AM] _TM_: Soft Link B: Mod B running ok Line 2637: [09/01/2018 - 11:10:19AM] _TM_: Soft Link A: Mod A running ok Line 2639: [09/01/2018 - 11:10:19AM] _TM_: Soft Link B: Mod B running ok Line 2700: [09/01/2018 - 11:10:20AM] _TM_: Soft Link A: Mod A running ok Line 2714: [09/01/2018 - 11:10:20AM] _TM_: Soft Link B: Mod B running ok Line 2844: [09/01/2018 - 11:10:21AM] _TM_: Soft Link A: Mod A running ok Line 2863: [09/01/2018 - 11:10:21AM] _TM_: Soft Link B: Mod B running ok Here's a papyrus log when the master is not installed but both soft link mods are installed: Line 30: [09/01/2018 - 11:12:46AM] Cannot open store for class "_tm_masterscript", missing file? Line 31: [09/01/2018 - 11:12:46AM] Error: Unable to link types associated with function "OnPlayerLoadGame" in state "" on object "_TM_SoftLinkB_Script". Line 1614: [09/01/2018 - 11:13:08AM] _TM_: Soft Link A: Mod A running ok Line 1687: [09/01/2018 - 11:13:09AM] _TM_: Soft Link A: Mod A running ok Line 1735: [09/01/2018 - 11:13:11AM] _TM_: Soft Link A: Mod A running ok Line 1788: [09/01/2018 - 11:13:12AM] _TM_: Soft Link A: Mod A running ok Line 1857: [09/01/2018 - 11:13:13AM] _TM_: Soft Link A: Mod A running ok Line 1911: [09/01/2018 - 11:13:14AM] _TM_: Soft Link A: Mod A running ok Line 2046: [09/01/2018 - 11:13:17AM] warning: Unable to get type _TM_SoftLinkB_Script referenced by the save game. Objects of this type will not be loaded. Line 2048: [09/01/2018 - 11:13:17AM] warning: Could not find type _TM_SoftLinkB_Script in the type table in save Line 2070: [09/01/2018 - 11:13:17AM] ERROR: File "_TM_Master.esp" does not exist or is not currently loaded. Line 2073: [alias PlayerAlias on quest _TM_SoftLinkA_Quest (41000D62)]._TM_SoftLinkA_Script.OnPlayerLoadGame() - "_TM_SoftLinkA_Script.psc" Line 8 Line 2073: [alias PlayerAlias on quest _TM_SoftLinkA_Quest (41000D62)]._TM_SoftLinkA_Script.OnPlayerLoadGame() - "_TM_SoftLinkA_Script.psc" Line 8 Line 2073: [alias PlayerAlias on quest _TM_SoftLinkA_Quest (41000D62)]._TM_SoftLinkA_Script.OnPlayerLoadGame() - "_TM_SoftLinkA_Script.psc" Line 8 Line 2109: [09/01/2018 - 11:13:17AM] _TM_: Soft Link A - Master esp not found Line 2513: [09/01/2018 - 11:13:19AM] _TM_: Soft Link A: Mod A running ok Line 2774: [09/01/2018 - 11:13:20AM] _TM_: Soft Link A: Mod A running ok Line 2819: [09/01/2018 - 11:13:21AM] _TM_: Soft Link A: Mod A running ok Line 2901: [09/01/2018 - 11:13:22AM] _TM_: Soft Link A: Mod A running ok 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? Test Mod - Master.7z Test Mod - SoftLink A.7z Test Mod - SoftLink B.7z
Verstort Posted September 1, 2018 Posted September 1, 2018 Good to know this is replicatable. Can I assume this is only for quest functions? If you grab a quest (fromfrom file or GetQuest(strid)) only to get the stage/running state there is no issues?
Monoman1 Posted September 2, 2018 Author Posted September 2, 2018 14 hours ago, Verstort said: Good to know this is replicatable. Can I assume this is only for quest functions? If you grab a quest (fromfrom file or GetQuest(strid)) only to get the stage/running state there is no issues? GetStage seems to work fine at least. Changed SoftLink mods to: Scriptname _TM_SoftLinkA_Script extends ReferenceAlias 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 - " + Master.GetStage()) Debug.Trace("_TM_: Soft Link A - " + Master.GetStage()) 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 Papyrus log: Line 904: [09/02/2018 - 08:53:41AM] _TM_: Soft Link A: Mod A running ok Line 905: [09/02/2018 - 08:53:41AM] _TM_: Soft Link B: Mod B running ok Line 1058: [09/02/2018 - 08:53:42AM] _TM_: Soft Link A: Mod A running ok Line 1059: [09/02/2018 - 08:53:42AM] _TM_: Soft Link B: Mod B running ok Line 1174: [09/02/2018 - 08:53:43AM] _TM_: Soft Link A: Mod A running ok Line 1175: [09/02/2018 - 08:53:43AM] _TM_: Soft Link B: Mod B running ok Line 1213: [09/02/2018 - 08:53:44AM] _TM_: Soft Link A: Mod A running ok Line 1214: [09/02/2018 - 08:53:44AM] _TM_: Soft Link B: Mod B running ok Line 1359: [09/02/2018 - 08:53:45AM] _TM_: Soft Link B: Mod B running ok Line 1360: [09/02/2018 - 08:53:45AM] _TM_: Soft Link A: Mod A running ok Line 1670: [09/02/2018 - 08:53:50AM] ERROR: File "_TM_Master.esp" does not exist or is not currently loaded. Line 1673: [alias PlayerAlias on quest _TM_SoftLinkA_Quest (41000D62)]._TM_SoftLinkA_Script.OnPlayerLoadGame() - "_TM_SoftLinkA_Script.psc" Line 8 Line 1673: [alias PlayerAlias on quest _TM_SoftLinkA_Quest (41000D62)]._TM_SoftLinkA_Script.OnPlayerLoadGame() - "_TM_SoftLinkA_Script.psc" Line 8 Line 1673: [alias PlayerAlias on quest _TM_SoftLinkA_Quest (41000D62)]._TM_SoftLinkA_Script.OnPlayerLoadGame() - "_TM_SoftLinkA_Script.psc" Line 8 Line 1674: [09/02/2018 - 08:53:50AM] ERROR: File "_TM_Master.esp" does not exist or is not currently loaded. Line 1677: [alias PlayerAlias on quest _TM_SoftLinkB_Quest (42000D62)]._TM_SoftLinkB_Script.OnPlayerLoadGame() - "_TM_SoftLinkB_Script.psc" Line 8 Line 1677: [alias PlayerAlias on quest _TM_SoftLinkB_Quest (42000D62)]._TM_SoftLinkB_Script.OnPlayerLoadGame() - "_TM_SoftLinkB_Script.psc" Line 8 Line 1677: [alias PlayerAlias on quest _TM_SoftLinkB_Quest (42000D62)]._TM_SoftLinkB_Script.OnPlayerLoadGame() - "_TM_SoftLinkB_Script.psc" Line 8 Line 1705: [09/02/2018 - 08:53:50AM] _TM_: Soft Link A - Master esp not found Line 1706: [09/02/2018 - 08:53:50AM] _TM_: Soft Link B - Master esp not found Line 2476: [09/02/2018 - 08:53:53AM] _TM_: Soft Link A: Mod A running ok Line 2477: [09/02/2018 - 08:53:53AM] _TM_: Soft Link B: Mod B running ok Line 2772: [09/02/2018 - 08:53:54AM] _TM_: Soft Link A: Mod A running ok Line 2774: [09/02/2018 - 08:53:54AM] _TM_: Soft Link B: Mod B running ok Line 2853: [09/02/2018 - 08:53:55AM] _TM_: Soft Link A: Mod A running ok Line 2854: [09/02/2018 - 08:53:55AM] _TM_: Soft Link B: Mod B running ok Line 3041: [09/02/2018 - 08:53:56AM] _TM_: Soft Link A: Mod A running ok Line 3042: [09/02/2018 - 08:53:56AM] _TM_: Soft Link B: Mod B running ok Line 3214: [09/02/2018 - 08:53:57AM] _TM_: Soft Link A: Mod A running ok Line 3215: [09/02/2018 - 08:53:57AM] _TM_: Soft Link B: Mod B running ok Line 3392: [09/02/2018 - 08:53:58AM] _TM_: Soft Link A: Mod A running ok Line 3467: [09/02/2018 - 08:53:59AM] _TM_: Soft Link B: Mod B running ok Master mod not installed but both mods continue running as expected. Posted this over on the nexus too: https://forums.nexusmods.com/index.php?/topic/6957326-multiple-mods-with-soft-dependency-to-the-same-resource/
yatol Posted September 4, 2018 Posted September 4, 2018 On 9/1/2018 at 12:41 PM, Monoman1 said: Test yourself with mod organizer. no need for that Line 2046: [09/01/2018 - 11:13:17AM] warning: Unable to get type _TM_SoftLinkB_Script referenced by the save game. Objects of this type will not be loaded. referenced by the save game? your previous _TM_SoftLinkB_Script was no good, and the game load the one from your save over the new one in script folder so it's still no good Line 2048: [09/01/2018 - 11:13:17AM] warning: Could not find type _TM_SoftLinkB_Script in the type table in save game. Objects of this type will not be loaded. same error as above Line 2070: [09/01/2018 - 11:13:17AM] ERROR: File "_TM_Master.esp" does not exist or is not currently loaded. you check if the esp is in the load order before trying to load something from it if you don't want those useless lines in the log the only problem it's loading a save for that test instead of coc somewhere from main menu and it's not because 2 mods load the same thing, you have to load it twice when i initialise sexlab animation, a script put animations in mf[], ff[], mff[], mmf[].... (male female) that's to delete the checks for animations for (actor1, actor2) in defeat and whatever, it just check if there's something in mf[] instead the master load it once, and the plugins just reload it, it's faster that way
Monoman1 Posted September 4, 2018 Author Posted September 4, 2018 My testing method was to start a new game, then save and reload to trigger OnPlayerLoadGame() I'm not really worried about those errors. This error is the main problem: Error: Unable to link types associated with function "OnPlayerLoadGame" in state "" on object "_TM_SoftLinkB_Script". With the master mod installed both of these mods will run fine. Without the 'master' mod installed, either one of these mods will run perfectly. But running both mods at the same time will cause one to fail. Solution is in the nexus thread.
Yinkle Posted March 17, 2020 Posted March 17, 2020 @Monoman1 Did you ever find a way to do this without making 2 versions of your scripts? From what I've read it seems there is a way in FO4 using the scriptobject script but not in skyrim sadly.
Monoman1 Posted March 17, 2020 Author Posted March 17, 2020 9 hours ago, Yinkle said: @Monoman1 Did you ever find a way to do this without making 2 versions of your scripts? From what I've read it seems there is a way in FO4 using the scriptobject script but not in skyrim sadly. Yes. There is a much better way using globals. Reference interface scripts in sexlab survival for examples.
Yinkle Posted March 18, 2020 Posted March 18, 2020 14 hours ago, Monoman1 said: Yes. There is a much better way using globals. Reference interface scripts in sexlab survival for examples. Great! Thanks for the info and I'll check that out. I had my mod infacing with SLEN's relationship system with what I "thought" was a soft dependency but it was breaking the mod if SLEN wasn't installed. So I made 2 versions of the interfacing script which worked but with drawbacks as you mentioned in your previous post. This will be much better.
Monoman1 Posted March 18, 2020 Author Posted March 18, 2020 So I've been meaning to correct this thread for a while. This method appears to be the best way of creating soft dependencies that I'm aware of. I haven't had a single complaint about 'Unable to link type' errors since adopting this method. I got most of this knowledge from Lupine00, so credit goes to her. External function calls or getting external script variables begin their journey in the 'gating' script. The purpose of this script is really just: 1. Do/return different results based on whether the soft dependency is installed or not to suit whatever purpose you have in mind. 2. STOP function calls to scripts that are not installed. 3. Hopefully avoid making calls to external script functions before said scripts have fully initialized. Here is probably one of the simpler ones I've done for SL Survival. It's the link to PaySexCrime to find out if your character has a hidden bounty for that hold. This is used in the eviction feature so that you're not un-evicted when you use PSC to temporarily suppress your bounty. _SLS_InterfacePaySexCrime is attached to a quest. This is the 'gating' script. Every other script in SL Survival that wants to know the players hidden PSC bounty goes through this script. _SLS_IntPsc is attached to nothing. DO NOT attach it to anything. You can attach it to compile it or whatever just make sure it's removed when you save the mod. You should also only use one interface script per soft dependency link. Don't try to link to more than one external mod per interface script. Eg: Survival uses 2 separate interface scripts for RND and iNeed. Scriptname _SLS_InterfacePaySexCrime extends Quest Quest PscQuest ; Store PSC quest so we are not getting it every time. Get it when the script state changes to 'Installed' and pass it as needed to the global script Event OnInit() RegisterForModEvent("_SLS_Int_PlayerLoadsGame", "On_SLS_Int_PlayerLoadsGame") ; Custom event to run on game load because quest scripts don't receive the vanilla event. EndEvent Event On_SLS_Int_PlayerLoadsGame(string eventName, string strArg, float numArg, Form sender) PlayerLoadsGame() EndEvent Function PlayerLoadsGame() ; Is the soft dependency installed and is our script in the right state? If not change state. If Game.GetModByName("Sexlab_PaySexCrime.esp") != 255 If GetState() != "Installed" GoToState("Installed") EndIf Else If GetState() != "" GoToState("") EndIf EndIf EndFunction Event OnEndState() Utility.Wait(5.0) ; Wait before entering active state to help avoid making function calls to scripts that may not have initialized yet. PscQuest = Game.GetFormFromFile(0x002862,"Sexlab_PaySexCrime.esp") as Quest ; Get PSC quest now EndEvent Bool Function GetIsInterfaceActive() ; Only really used to display interface state in SL Survivals Mcm. If GetState() == "Installed" Return true EndIf Return false EndFunction ; PSC is not installed so there wont be any hidden bounties. Return 0 to the calling script and dont try to access any external resources. Int Function GetPscBountyWhiterun() Return 0 EndFunction Int Function GetPscBountySolitude() Return 0 EndFunction Int Function GetPscBountyMarkarth() Return 0 EndFunction Int Function GetPscBountyWindhelm() Return 0 EndFunction Int Function GetPscBountyRiften() Return 0 EndFunction State Installed ; PSC IS installed. Now call the global script and get PSCs hidden bounty. Pass in PscQuest just to save some time Int Function GetPscBountyWhiterun() Return _SLS_IntPsc.GetPscBountyWhiterun(PscQuest) EndFunction Int Function GetPscBountySolitude() Return _SLS_IntPsc.GetPscBountySolitude(PscQuest) EndFunction Int Function GetPscBountyMarkarth() Return _SLS_IntPsc.GetPscBountyMarkarth(PscQuest) EndFunction Int Function GetPscBountyWindhelm() Return _SLS_IntPsc.GetPscBountyWindhelm(PscQuest) EndFunction Int Function GetPscBountyRiften() Return _SLS_IntPsc.GetPscBountyRiften(PscQuest) EndFunction EndState Here is the global script Scriptname _SLS_IntPsc Hidden Int Function GetPscBountyWhiterun(Quest PscQuest) Global PaySexCrimeMCM Psc = PscQuest as PaySexCrimeMCM ; Here it should be safe to cast to an external type and access external script variables and functions Return (Psc.BountyViolent[8] + Psc.BountyNonViolent[8]) EndFunction Int Function GetPscBountySolitude(Quest PscQuest) Global PaySexCrimeMCM Psc = PscQuest as PaySexCrimeMCM Return (Psc.BountyViolent[3] + Psc.BountyNonViolent[3]) EndFunction Int Function GetPscBountyMarkarth(Quest PscQuest) Global PaySexCrimeMCM Psc = PscQuest as PaySexCrimeMCM Return (Psc.BountyViolent[6] + Psc.BountyNonViolent[6]) EndFunction Int Function GetPscBountyWindhelm(Quest PscQuest) Global PaySexCrimeMCM Psc = PscQuest as PaySexCrimeMCM Return (Psc.BountyViolent[1] + Psc.BountyNonViolent[1]) EndFunction Int Function GetPscBountyRiften(Quest PscQuest) Global PaySexCrimeMCM Psc = PscQuest as PaySexCrimeMCM Return (Psc.BountyViolent[7] + Psc.BountyNonViolent[7]) EndFunction
Yinkle Posted March 18, 2020 Posted March 18, 2020 I can confirm that this works perfectly! I'll be updating a few mods on here shortly with props to Monoman1 and Lupine00
Monoman1 Posted March 19, 2020 Author Posted March 19, 2020 15 hours ago, Yinkle said: I can confirm that this works perfectly! I'll be updating a few mods on here shortly with props to Monoman1 and Lupine00 I forgot to mention: You should also only use one interface script per soft dependency link. Don't try to link to more than one external mod per interface script. Eg: Survival uses 2 separate interface scripts for RND and iNeed. 1 interface per mod.
worik Posted March 20, 2020 Posted March 20, 2020 On 3/19/2020 at 9:42 AM, Monoman1 said: You should also only use one interface script per soft dependency link. ? OK, I keep that as a rule of thumb and will stick to that. Many things for me to learn here. It's not really my profession, but I would like to avoid mistakes and bad habits. "script" as in "single script file", right? One per interface to another mod, e.g. your example with Scriptname _SLS_InterfacePaySexCrime extends Quest But I didn't understand the reason for this? ? Is it because of your "installed" state wouldn't be unique if you mix more than one dependency together? On 3/18/2020 at 11:43 AM, Monoman1 said: _SLS_IntPsc is attached to nothing. DO NOT attach it to anything. You can attach it to compile it or whatever just make sure it's removed when you save the mod. Again here, I didn't understand why attaching it to a quest would be bad? Or is just because it's "pointless"?
Monoman1 Posted March 20, 2020 Author Posted March 20, 2020 58 minutes ago, worik said: "script" as in "single script file", right? One per interface to another mod, e.g. your example with I suppose you could use multiple gating scripts to access one mod but why? It would make things more confusing. Just put everything to do with mod X into one file. That way when you need to check something to do with mod X you're not looking at several different scripts. The main thing is that you're not trying to link into more than one external mod from the same script. This applies to the globals script more so than the gating script. Any time you're casting to an external type, which is done in the globals script. In the example above that's this line: PaySexCrimeMCM Psc = PscQuest as PaySexCrimeMCM PaySexCrimeMcm being the foreign, potentially missing (not installed) type. 58 minutes ago, worik said: Is it because of your "installed" state wouldn't be unique if you mix more than one dependency together? Again you COULD use the same gating script but why? It would make the states more complex. If say I had one combined gating script for PSC and RND say. Then I'd need states: None installed. Only RND installed. Only PSC installed. Both installed. Then you're duplicating code most likely in states Only X and Both installed which will lead to mistakes between states that are essentially meant to be the same (typos, forgetting to change things in more than one state, etc) and inconsistencies which will lead to people reporting problems that are inconsistent as a result - Works for Bob, doesn't work for John. Keep it in one script for simplicity IMO. Nothing is gained by trying to cram as much as possible into a single script. When I started modding I tried to create one long script (or as few scripts as possible) but this isn't really the way to do things. Keeping the number of lines of code as short as possible within the scope of what needs to be done is a better rule of thumb. Ie if you can get the same results from 3 lines of code instead of 4 then this is usually better. I suppose in the case or iNeed and RND it could be done in one gating script but people CAN install both. God only knows why you would. That said I have had both installed while building SLS. 58 minutes ago, worik said: Again here, I didn't understand why attaching it to a quest would be bad? Or is just because it's "pointless"? Honestly I don't understand it fully myself. BUT my guess is that because this is the globals script and this is where you are casting to the external type then having it attached will have Skyrim try to load this unknown, foreign, potentially not installed type (or even just potentially not yet initialized type) when the game is loaded resulting in Skyrim shitting it's pants and dumping scripts as seen in the OP. Having it in an unattached, global function seems to only try to actually access it when it is actually called. Which is what we want. I'm pretty sure I remember creating a test mod like in the OP but instead it had NO accessing at all of external resources at all - No events or updates. Just a never called function that referenced an external type. And Skyrim still dumped the script so it obviously is loading these types on game load unless they're in a global function and unattached.
GenioMaestro Posted March 23, 2020 Posted March 23, 2020 @Monoman1 @Yinkle Can i know how many users has reported this problem in each mod? Please, provide approximate data as 10 users in ABBA, near 50 in Survival and 33 in MWA.
Yinkle Posted March 23, 2020 Posted March 23, 2020 4 hours ago, GenioMaestro said: Can i know how many users has reported this problem in each mod? Please, provide approximate data as 10 users in ABBA, near 50 in Survival and 33 in MWA. Hiya, ABBA doesn't have any soft depencendies. ABMM does interface with SLEN functions though (relationship updates) and a couple folk reported a problem which turned out to be due to SLEN not being installed and what I thought was a soft depencency was actually broken. This issue has now been fixed by using this method and it now works fine with or without SLEN. I've not had any complaints since I released the latest version of ABMM 1.7.0 which includes this method.
Recommended Posts
Archived
This topic is now archived and is closed to further replies.