Jump to content

Mod conflicts and .dll


Recommended Posts

Hi guys,

 

I need your inputs again about some issues I can't figure out.

 

A few users of one of my mods (Clearsky hideout) have been recently reporting that activators which worked fine in their last year playthrough, don't work anymore in today's new playthroughs. Obviously, new playthrough means new mods list means new conflicts, except the kind of issues they describe doesn't make sense to me.

 

Basically, in Clearsky, all my activators are custom forms with unique IDs (most of them triggers, some of them custom .nifs) with unique scripts attached to them, linked to objectReferences using keywords. Some of these are very simple ones: building a fire for instance involves clicking on a trigger activator which runs a script calling enable() or disable() on linked objectReferences (thru custom keywords), all of them being custom forms too.

 

Unless another mod directly modified Clearsky (thus making Clearsky a required plugin, which would make it easy to find), or some other mod copied some Clearsky features without making it a dependency but inadvertedly adding dirty edits to my mod, I can't figure out what could possibly affect custom activators in such a way that the 'activate' prompt doesn't even show. It's not like the attached script is not running, it's more like the activator object has been modified.

 

Has any of you guys had that happen? Custom activators which stop working for unexplainable reasons in Skyrim? Maybe I've been lucky but it never happened to me...

 

 

Which made me think of something else: lately, there's been more and more new mods uploaded which claim they're not scripted but use a .dll plugin instead to modify Papyrus functions or game forms. I know nothing about coding .dll's but I discovered this while working on my Sleeping Bags mod. While testing for compatibility, I found a mod which modified activation of all bed forms: there was no blocking or unblocking it with Papyrus, the .dll was hijacking the activate function anyway. In this case, the mod author was nice enough as to help me find a workaround this, and the only way I even came to suspect the issue was that this mod also ran Papyrus scripts to call the .dll functions and sort beds from other furniture forms.

 

Like I said, my knowledge about .dll use is very limited to say the least (I know skse uses it to implement new functions but skse is VERY well documented) but I was wondering how can you detect conflicts between 'regular' mods (which use the CK and Papyrus) and mods using .dll's to override CK or Papyrus? Is there a way to detect this with TES5edit (couldn't find it)? And with .dll mods, load order doesn't make any difference, the .dll code will affect the whole game no matter what, right?

 

My line of thoughts here is this: I stumbled across a .dll which modified all furniture behavior, so it's entirely possible there are other .dlls out there which modify activators behavior, or doors, or any game form. The trouble being that while these mods can narrow down the types of activators they modify by filtering Vanilla forms, they can't (or don't) do that on custom ones - thus creating conflicts with mods which rely on Papyrus and load order. Is this wild guess on my part? And if not, is there a way to prevent such conflicts?

 

I know for a fact for instance that trying to reposition my Sleeping Bags with Jaxonz repositioner will break my mod because my custom forms can't be recognized by Jaxonz's mod - but that's an easy one because Jaxonz documents his mods - how do you deal with the other ones which don't explain what their .dll do and just claim "not scripted", thus leading users to think that it cannot conflict at all with anything?

 

Anyway, it's entirely possible that the issues I'm trying to solve here have nothing to do with .dll mods, but in any case, I'd be vey grateful if any of you guys can help me better understand how they work.

 

Thanks a bunch for reading!

 

 

 

 

 

Link to comment
Share on other sites

I think you need some information from the guy complaining to solve the problem.

 

I've had two experiences where a resource of mine is causing apparent game breaking problems. One person crashed to desktop of loading and another was dead or died on load.

 

In the first case it turns out it was because it was a new save and it couldn't handle all off the mods loading all at the same time for the first time AND any user input. Solution? No user input until all the mods loaded, then a hard save so they'd stay loaded for the next time.

 

In the second case I have no idea because he never did more than complain about it so A) problem either went away and his bug report was premature or B) if he doesn't care enough to fix it then neither do I.

Link to comment
Share on other sites

Generally, I would react like you do: when one users out of thousands reports an issue that I can't figure out knowing how my mod works, I ask for more info, if I don't get any, I just let it go. But this is different.

 

It's not just one user reporting the issue I'm describing, it's 2 or 3 very recent ones, one of them being someone I kind of trust from exchanging PMs with him before.

 

And none of them is blaming my mod, they're essentially asking if I have any idea what may cause this or how to fix it. They are aware that my mod is safe because they've used it before in other playthroughs and had no issue whatsoever.

 

The reason I created this topic is I can't even imagine what on earth could cause custom forms, activators in this case, to suddenly stop working. You can cause conflicts overriding textures, meshes, scripts, navmesh, introducing dirty edits, script latency, abusing console commands, etc... or overburdening your game like you described. But custom forms of triggerboxes (created in the CK) with custom ID's that suddenly stop showing the 'Activate' prompt?.. That I can't figure out.

Link to comment
Share on other sites

It could be a mod providing a perk that's intercepting the activation. I've made a few of those. "No Furniture Activation When Sneaking" does exactly what its name says and "Enchantment Swapper" alters how the Arcane Enchanters work if you have a special book or Wabbajack equipped. The second only affects the enchanting stations and I would certainly hope anyone installing the first one would know why clicking on things isn't working when they are sneaking. But it might not hurt to ask them anyway, sometimes people overlook the obvious or forget which mods they've installed. :smile:

Link to comment
Share on other sites

@ cdcooley: right, I hadn't thought of that one and didn't think of asking, but I believe at least one of these users is experienced enough as to have thought of trying normal activation rather than sneaking one before PMing me about the issue... but doesn't hurt to ask, you're right...

 

Any thought about my .dll mods guess, have you ever worked with .dll's, cdcooley?

 

@ Sulhir: I know, the first question I usually ask is if they've used Jaxonz's mods trying to move things around - but in this case they didn't. One of them says she just deleted and reinstalled my mod and it worked again... and that's another user I know and trust. Beats me!.. How can a .bsa not be installed properly when load order doesn't matter?.. I know some mods work better with loose files than with .bsa, but simple activators, really?..

Link to comment
Share on other sites

The increase in DLL-based mods lately is disturbing. Too many new modders coming from a programming background don't seem to appreciate how complex the interactions are in the game or the effects of overriding core game systems. But I doubt it's one of them directly. More likely it's a mod using some new DLL-based feature.

 

The only people who seem to have trouble with BSAs are those who use Mod Organizer without reading its documentation, those to repack BSAs with things like BSAOpt at the highest compression, and those who merge multiple mods together (who probably also repack BSAs). I doubt it's a BSA problem either.

 

If uninstalling and reinstalling the mod fixed the problem then is would almost have to be something that modified the activators themselves. You said the activate prompt was completely missing and that makes me think that something went through an removed their names. An unnamed activator can't be used.

Link to comment
Share on other sites

Hey Cdcooley,

 

It's sort of comforting to hear you express similar worries about the increase of .dll mods when they tend to affect core game features or assets - thus potentially causing conflicts with many mods without (for many of them) bothering to warn their users about it.

 

I found it odd that one out here could possibly affect my custom activators without affecting all other mods' activators BUT I thought of Jaxonz Renamer too for instance as I knew that any kind of activator which has no name will not show prompt. That's one I asked about too and it turns out at least one user had Jaxonz Renamer in his mod list. Could be that but this user would have needed to try and rename my activators for them to be replaced by Jaxonz mod - he says he didn't. Then there are also mods which use OnCrosshairRefChange() to force or override normal activation automatically without users having to do anything, and it's possible one of these did target fire forms and modify the fireplace activators...

 

What's most disturbing to me is I've always been very attentive at always creating custom forms with custom ID's thinking that'd make my mods safe from other mods who might override Vanilla forms or contain dirty edits - and it obviously worked for a while - but having discovered that .dll based mods can override complete forms or types, including custom ones, truly bothers me because there's no workaround this. Most clean mods that don't conflict directly, you can always find a way to be compatible with, but .dll based ones leave me clueless... Perhaps, I should try and learn to code .dll's if only to better understand what they can do...

 

Anyway, thanks for replying, cdcooley - it's always great talking with you :) Cheers!

Link to comment
Share on other sites

I had all the activators on one of my mods stop working on only one of the computers I was testing it on. All the load outs were Skyrim + DLCs and my one mod. So definitely not a mod conflict. It seemed to be a Skyrim build problem and I did the usual verify files etc, before reloading Skyrim I took the lesser step of deleting all the small files in the Skyrim dir and let steam replace them and reloaded SKSE

 

It worked, the only thing I can think of is I had a file in the Skyrim dir from some past mod I was testing. Maybe but maybe not.

Link to comment
Share on other sites

So, here is my 5 cents:


There was a user in my mod "Enemy Encounter", that said the mod was not working at all. So I asked him to send me a saved game, I did debug the saved game and I discovered that an ObjectReference variable of mine was "none" in the script.


It was impossible for that reference value to be "none", unless the virtual machine destroyed that reference, so it may clean the script variables after that, I guess.


The only difference of this reference from others I used, is that it was always disabled, from the beggining. Maybe there is some kind gabarge colletor that destroys disabled elements in zones with respaw enabled. I'm not sure. I just fixed the bug with an "If x == none ; x = placeatme(..); endif".


What you can do is ask a saved game for one of your users and use "debug.trace" to see what is happening.


[]'s

Link to comment
Share on other sites

  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...