Skyrim Modding Diary - 16 February 2022
Welcome back, folks! Yesterday we had a pretty productive run where we installed two different texture-versions of the same creature mod, made some custom outfits (including a bit of a brawl with WACCF's scripted distribution process), and added a lot of detail to the outside world. Today, we'll start by doing some surgery on Skyrim At War in another attempt to fix Grass Caching. Then we'll add some shrines to secret (and not so secret) places and overhaul a few NPCs' appearances.
We're starting the day with 1,313 mods installed and 1,323 plugins active. Our final index is EC.
Doing Battle With Skyrim At War
Skyrim At War was a pretty remarkable mod that is sadly now out of print. It added various faction armies throughout the world, and the final version released just before the author retired the project allowed for dynamic tailoring of the content - critical since if you recall Kirstia's first adventure, SAW at its default settings made the Reach much too dangerous for a low level character!
There's one small problem with SAW: for reasons that are still unclear but may be linked to some large spawn areas nearby, certain cells crash No Grass In Objects' grass caching service when it goes to process them. This in turn means that DYNDOLOD's grass LOD function won't work.
Today we're going to try a pretty basic workaround step: we'll split all the worldspace persistent ACHR records out of SAW into a separate file; then we'll disable that file and see if it lets us generate the grass cache successfully. If so, we'll further slice up the mod until we can put ESL flags on all its components, reclaiming all its load order footprint. We'll also need to forward the quest records since they refer to those ACHRs.
To do this, we need to first create a placeholder ESP file and put it in the proper load order. Why, you might ask? Don't I always say that with proper patching load order doesn't matter? This is one of the exceptions, because I need the new ACHR form ID numbers to flow down to the SAW patches. Consequently, I need SAW to be like this in my load order:
- SAW main file
- <------ New SAW ACHR holding file goes here
- SAW external patches (Legion Signifer, etc)
- SAW tailoring patches
Here you can see the load order after we've teed it up for this process:
Now we'll start copying over records. First the whole quest category, then the persistent ACHRs. We'll probably also need to copy over some markers and other references that have linkages to the ACHRs in them. Our goal is to get to the point where we can move all those records fully into the new file and delete them out of the master. One thing we also see early on is that we need to also move the dialogue forward. We'll probably re-split this again and have the dialogue and quests in their own file, but for now we'll keep it simple. At almost 40,000 records, SAW will take some time to fully dissect.
With this done, we're going to save our new file and then make a backup of the original. Since SAW is out of print, we definitely want a backup before we start screwing around with making permanent edits to its structure! I already have a separate backup of the tailoring files, so those are safe.
Now we're ready to start cutting into the guts of the file. We'll start with the quests and dialogue, since those were copied whole-hog into the new files. First we'll delete those categories entirely from the master file. Then, we'll go into the new patch and change the form IDs to be native forms instead of overrides. If you are following this guide for your own setup, and you don't plan on changing SAW to a full ESL setup in the future, you can skip the "change form ID" step - more on this below when I talk about the ACHR overflows.
One point of interest is that after copying over all the quest and dialogue references, but before starting on ACHR, we were still in a three byte form ID regime, so I'm actually going to split out the ACHR records again so I can ESL flag the dialogue/quest stuff. No need to repeat the work in the future. Also, as we do this work we'll be putting the overflow files in a separate folder so we can easily turn them off when we need to do grass caching in the future.
Since we aren't going to fully break up the ACHR records, we won't renumber them yet - we'll just let them exist as injection records that push into the original file when the overflow file is active. That'll let us put an ESL flag on the overflow file and preserve our load order indexing for now. It'll also let us keep our hands off the tailoring patches until we're ready to start fully cutting up SAW. With those changes committed, let's turn off the overflow and tailoring folders and rerun the grass cache. This will take a while - at least an hour or two - but thanks to the magic of the internet you won't notice a thing ?
Fun fact, by the way, Animated Clutter also seems to be incompatible with grass caching. I started getting recurring crashes while the game was processing the Northpoint worldspace, each one generating an identical crash log. Checking on the form ID it cited - xx003999 - revealed that the static it was choking on was a snow-covered version of the generic large ship object. A quick search for the nif revealed that AC was providing it, and after I disabled AC the grass generation was able to process Northpoint successfully. Maybe file that one under "even if the crash log is full of references to one mod, that mod might not be the actual problem"!
You might be wondering, by the way, why I took the extra step of filtering down to just the ACHR records and the various markers and stuff that reference them. The reason I did this was to minimize the number of statics that I have to shunt to the overflow file. I don't want things like the walls and tents of military camps to be missing from LOD (or to have grass intrusion), so preserving them as much as possible is worth the extra effort in my opinion.
OK, this is an important milestone. -11, 24 was one of the "killer grids" where SAW would crash Skyrim. This is a strong indicator that we will be able to successfully complete the grass caching now.
Success!!
Daedric Shrines
With Skyrim At War finally harmonized with the grass cacher, our next project is integrating some Daedric Shrines. We'll cover several mods here requiring varying levels of effort.
Mephala
First up is Mephala. She's set to play a leading role in Kirstia's next adventure, so we want to get her into our world promptly. This mod has no asset conflicts and is already ESL flagged, so that simplifies the first stage of installation. Both files are also clean and free from conflicts, completing a super easy and breezy setup. I did find one wild edit which I removed, but had I left it in place it would have been harmless.
The mod places a shrine in the world and makes a few edits in the area, so we'll visit it quickly to confirm there aren't any issues with other mods in the same area. After that, we'll need to go into the CK to do a little bit of unannounced work for Kirstia's story.
The native shrine looks good. Now let's add the other ones. For these we'll go into the CK and load up a working file. We'll put one statue in a long-forgotten cave and a second, toppled and desecrated by foolish treasure hunters.
With our additional statues added, we'll now move them into our conflict resolution patch and remove the working file.
Hircine and Peryite
Hircine is next. This one should go smoothly as long as we don't run into any issues on installation, since the 'vanilla' shrine locations meet my needs out of the box.
As with the previous mod, this one and both of its patches were clean and didn't introduce any asset conflicts. There were some record conflicts, in part because both of the patches touch on the same areas. Only three records required patching.
Looks good!
Likewise, Peryite is another easy one. It has all the characteristics I expect: clean plugin, no asset conflicts, good world placement. This one does have some conflicts with The Only Cure Expanded, so we'll need to check it out in the world to make sure everything looks right. I'll put together a preliminary patch based on what I'm seeing in xEdit, but I expect I'll need to do a little fine tuning.
Well... that's an unexpected but interesting synergy. The tree that's wrapped around the statue barely clips with it and makes for an interesting and unique look. I think I'll keep it as-is!
Boethia, Raven Rock, and Naughty Azura
I previously downloaded this author's Boethia mod as well, but I ultimately didn't use it, choosing a different version for the main shrine. However, I think I'm going to bring it back to use in the context of this mod. So first, let's install Boethia and make sure it's a fully standalone mod. Below you can see that it has one conflict I need to resolve.
We'll go in and change the name of the shrine so it doesn't conflict.
Since there's no plugin, we're done with that mod. Now let's install the Raven Rock Statues mod. It also depends on Quaint Raven Rock, which we'll grab. QRR is an uncompacted ESP with 3300 records, so we'll split it up right away for compacting. We'll try the lazy approach of just blasting all the temporary worldspace refs into a secondary file, and if that works we'll be good to proceed.
And that'll do the trick! With the file split and ESL flagged, now let's check for problems and resolve conflicts. We'll also update the static entry for the Boethia statue with the alternate model.
We do have two errors, both of which I believe are linked to the file split, so we'll repair those quickly by rerouting the XNDP entry and deleting the NAVI (we'll regenerate it for both files after we finish cleaning). I also found a bunch of corrupted navmesh edge links which I fixed using the script.
The cleaning report came in fine; as expected, there are a lot of conflicts between these three files, which I patched where neccessary to resolve the conflicts. The main issue appears to be possible conflicts with Ambient Slaves, which adds a building and some statics near the edge of town. There's also a navmesh conflict with Prison Overhaul that we need to look at; since it involved door links it is a non-optional repair. We definitely need to take a thorough walk through town before we call this one finished. However, we're not quite done yet. If you were following the blog last month you know that I've been occasionally peeling assets out of Devious Statues to add more diversity to the game. We'll be grabbing the DS Azura assets and using them - though first we'll remove the weird clipping chastity belt from the statue.
Now before we attack the navmesh, let's tour this location and look for any issues, especially with AS. On further review, the AS stuff is a major conflict that'll require a lot of focused attention. We'll probably have to move the entire building and its dock further down the coast. That'll require some focused attention
The Boethia statue is also kind of a mess. I'll need to resize it and shift it to get it to fit properly.
None of these things are insurmountable, but it'll take some time to fix. We'll leave this at its status quo for the moment and revisit that AS building in the future.
More NPC Fine Tuning
A few weeks ago, I saw a recommendation to check out Courageous Women as a 'hidden gem' type mod. In a lot of ways this mod duplicates function that I am already getting from other sources, but there are a few specific faces I liked that I want to push forward. First, we'll install the basic mod and see if it fills any gaps in my existing mod load. We'll also be picking out some specific records and forwarding them to a second file which we'll load at a later asset posture. I can see already that there's a lot of facegen winning conflicts with vanilla, so we will be getting some first-time NPC updates.
Working through the conflict resolution in the plugin, I was delighted to find that this mod covered a lot of NPCs who had previously only been getting assets from the High Poly NPC Project. I actually considered shelving my initial plan to forward some records that I especially liked, but ultimately I decided to still do it. So what we did was made a list of the actors who I wanted to have 'win' their conflicts, then removed the actors who were already winning based on CW's basic load order. I copied those remaining actors as overrides into a new file, copied over their facegen, and then put it in proper load order so its facegen would win conflicts with Northbourne, Vahdin, etc.
With those edits in place, let's go visit some of these NPCs!
Looking good! While I was integrating this mod, I came across another WACCF related script injection problem that I'll need to go back and address later, but for now all the new faces seem to be functioning correctly.
That's it for today. Tomorrow we'll return to Raven Rock to fix the oversized Boethia statue and start looking at the best way to move the Frostbite Clan's office. We'll also look at some monster mods, if time permits.
We ended the day with 1,323 mods installed, 1,340 plugins active, and a final load order index of EC.
Edited by gregaaz
4 Comments
Recommended Comments