So I'm working on the next forthcoming release of SDR (Sneaking Detection Recalibrated), and am trying to decide how to handle various elements. It's been almost a year since I've modded/played the game, so I'm really rusty and I am second guessing some of my decisions.
I don't want to go back and do things later, so I wanted to explain what I was thinking of doing and try and get a sense of the pros and cons.
Switching to a BSA format:
I don't have a lot of support files, per se. Certainly not at the same level as things like quests or other mods that add a lot of content. However, I have a total of around 162 files. 130 of which are shaders, 13 are textues, and the rest are .esps, .esms, OBSE .dlls and documentation. Although my recommendation is that people use Wrye Bash, or at the very least OBMM, I know there are folks that use the Nexus mod manager or manually install it. Uninstalling SDR can be a real pain. This is especially true when it comes to documenting how to do it because there are so many files. My thought was that this time around I should just put all the textures and shaders in a single BSA file. All of the files are unique to SDR, so unless someone specifically intends to overwrite one of the files, there shouldn't be any conflicts. From what I've read, it seems like Wrye Bash and OBMM should be able to handle the BSA fine, and anyone who is manually installing it needs to use Archive invalidation. Creating the archive might be a bit tricky, not sure.
I'm somewhat concerned about some of the things I've read though. For example, one thing I read was that BSAs can only be read by .esps. That implies that .esms can't, and my core file is an esm. It also talks about how BSA is recognized using certain naming conventions. If that is true I may have to rename my files accordingly, which is fine. But I want to make sure it's necessary.
Speaking of files:
Another thing I'm struggling with is building my .esm around certain OBSE .dlls. There are a number of features that are optional. Some of the needed .dlls are included with SDR's installation package. Others need to be download from elsewhere. Up until this last round of programming, anything that was used by a .dll was put in a sub-script that would get called if the OBSE plugin was installed. This meant I had to have all the OBSE plugins installed all the time (except for OBME) which would get really annoying if I forgot to install one and tried to recompile or if I had to swap things in/out for testing various installation combos.
So this time around I decided to extract those sub-scripts into separate .esps that just modify those scripts to use the plugin. The patches can be merged with Wrye Bash's bashed patch. However, they take up space for OBMM and manual installs. Although it's been very helpful for programming, I am debating how useful this set up is for actual modders. Would you prefer/recommend just having as much as possible in the main .esm and as little as possible in the patches, or is it okay to have all these one-off patches that can be merged into the bashed patch.
Looking forward to feedback.