Jump to content

One Mod A Day: Introduction


gregaaz

850 views

Hi folks, hope you all had a good holiday season and New Year. During my time off I've been thinking about my hobby plans for 2023 and how I want to incorporate blogging into it. In the days ahead I'd like to continue with my Fallout 4 story and also do some new Skyrim writing, but in the short run I'll be doing hobby blogging. After talking with a few of my readers, I've realized that the Mod Diary series started out as a somewhat advanced series and only got more esoteric as time went on. The Case Studies series was more beginner friendly, but by its nature it tackled big projects and involved a fair amount of workload on my end. 

 

What I want to do is to find a middle road between the two - basically, as the title suggests, I want to look at just one mod in each issue, but to give it a more in-depth treatment that'll help make the article valuable to newer players. This'll mean that I'll skip and gloss over some of my integrations that don't have a lot of discussion value, but the ones that I do feature will get longer explanations and a deeper exploration of what each mod is doing and how to make sure it plays fair in a modded setup. Once the series gets rolling, I'll set up an index by topic (rather than by mod like in my earlier index attempt) so readers can find specific information in back issues.

 

I do expect there are going to be some case studies in addition to this series, though I don't have any specific mods lined up yet. Most likely, the first one I'll tackle will be for the Patrician ENB retrofit; that study will focus on safe uninstallation on mods that have already been integrated and manually patched. 

 

For today's mod, we'll start with an easy one: TRX_Trickster's Elven Huntress statue.

 

Now if you've been reading my blogs for a while you know I like statues. Monuments are already important to any game that wants to explore themes like the decay of a classical civilization or the clash of competing political-religious systems, and in the NSFW modding sphere this sort of public art helps to frame the differences in social mores between the real world and the fantasy world. TRX's Elven Huntress is relevant here because it touches on a few different ideas - it presents a female character in heroic nudity (disrobed but bearing arms), giving her the same treatment that a male warrior might receive in classical Greek statuary. This helps reinforce the gender equality that exists within the warrior classes of Skyrim. The character is an Elf, a reminder that in past eras the racial divides that currently afflict Skyrim's society weren't nearly as pronounced. Finally, the hermaphrodism of the statue serves as an acknowledgement that in this particular builds, intersex characters are not particularly unusual and are not an ostracized or stigmatized population. 

 

But I digress, our goal here is to get this mod installed and running. Let's take it step by step.

 

The Toolbox

Spoiler

First things first, you need a mod manager. For the purposes of this series, we're going to be using Mod Organizer 2. If you find that MO2 absolutely won't work for you, Vortex is an adequate alternative, but it does have a number of design quirks and deficiencies that cause me to strongly recommend MO2. There are a number of other mod managers out there, but I recommend you exercise extreme caution. Many of them either contain serious deficiencies (such as missing critical features) or don't have a virtualized file system (which means they will clutter up your actual data folder and can cause issues when file conflicts occur).

 

Once you have your mod organizer installed, take a moment to familiarize yourself with the basic interface.

 

image.png.850ce51791e1e8c7fd944f552c26ff01.png

 

You can see here that there are two panes, each displaying different information.

 

The Left Pane is the list of mods you have installed. From left to right, it shows...

  • The name of the mod
  • Whether the mod has asset conflicts and, if it does, what kind of conflicts it has
    • An asset conflict is what two different mods try to provide the same external file, such as a 3D model, a texture, or a script.
  • Any flags that the mod manager's automatic scanning sets
  • What category the mod is in. Many authors set this in the metadata, or you can set it yourself
  • The mod's version number - this is either set in the metadata or it will report the data you installed the mod
  • The mod's priority - this will determine which mod "wins" in the event of an asset conflict.

 

The Right Pane is the list of your plugin files. These are the databases that contain the 'guts' of your mods. Note that in this case you have not just a priority index, but you also have a mod index column. Priority is the order that MO2 will load the files in. Mod Index is the 2-5 byte prefix it will apply to that mod's database entries. For example, Skyrim.esm is 00, while Update.ESM is 01. If you open up Update.ESM you will find unique ID numbers for each database form that all start with 01 (for example, you might see 01105AE2). These unique ID numbers, called Form IDs are important to the game and we'll be working with them many times in the future.

 

The right pane also has a couple of subscreens. 

image.png.8d9d504fe93ed2375bd88ba735b9fb4d.png

 

  • Plugins is the default view that you can see in the main screen shot
  • Archives shows you which compressed archives (.bsa files) the game will load. This can be helpful for reference but you won't be using it much on a day to day basis.
  • Data is very important to tracing specific assets. It shows a folder view of the virtual file system, which you can use to trace individual files and see what mod they are coming from. This can be super helpful if, for example, you have a crash log that points to a specific 3D model or texture but you aren't sure what mod it's a part of.
  • Saves shows your saved games. You aren't going to be using this all that much.
  • Downloads shows any mods you downloaded through the mod manager. This will be things on the Nexus, basically. It lets you install or reinstall mods without having to manually navigate to them in an external folder.

 

In addition to your mod manager, we're going to need two more tools for today's session. The first is SSEEdit (aka xEdit). This is a powerful database editor that can compile a virtual database stack for Skyrim and allows the user to understand the different conflict relationships and make edits or patches. The other tool we'll want is the Skyrim Creation Kit. This is the official editing tool and its very useful because it contains a graphical user interface. While xEdit is a more powerful editing tool, there are certain things that the Creation Kit can do that it can't. Therefore, you need both tools to effectively edit your game.

 

Step One: Installation and Texture Cleanup

Spoiler

Now that we have a feel for our tools, let's download the mod. Since this mod is hosted on Loverslab, it isn't going to use the in-manager download area, so we'll install it by clicking the "install a new mod" button and then navigating to it in the downloads folder.

 

image.png.bbcf1612cede05d94d4a234d88cd616a.png

 

image.png.4ce90fd87bb270922c554255b21edb07.png

 

MO2 will bring up an installation screen, which in this case is pretty simple: it just asks us what to install the mod as. If the mod had additional installation data included, such as FOMOD files, MO2 would detect and use them.

 

image.png.ca50f2c411e80e0cad9d4c1b9fd23305.png

 

We'll change the name to match the download screen and then click "OK".

 

image.png.fde2633b5915ca55d14f784315de34ab.png

 

With that done, the mod will appear in our installation list at the very highest priority number.

 

image.png.a0cc5e669ad155b9ba67a615a43d8264.png

 

Before we even activate the mod, we need to check on something right away. The author of this mod has a history of uploading uncompressed textures that take up a lot of space. As you can see below, that seems to be true here as well.

 

image.png.631d477af04411609c6fed278c690a4c.png

 

There are several different tools for compressing textures, but we're going to use Compressonator. I've had good results using this tool on TRX's work in the past, and I anticipate it'll also work well here. We'll load up all this mod's textures and then use the 'process selected files' to resave them with BC7 compression.

 

image.png.1cf3968b769b042dc59e9f321ee0afa2.png

 

With that done, you can see that we've significantly reduced the size of the textures folder. 

 

image.png.56f43ca618f2753c79bc1915b1f0ec10.png

 

Step 2: Initial Assessment

Spoiler

The next thing we want to do is look at this mod and see if there are any immediate issues that we need to deal with. We'll start by clicking the mod's check box in MO2.

 

image.png.2045538ced9e6191e7047f4b7050087c.png

 

We can see here that the game did not put up any conflict flags. This is convenient, and it means that every file that came with this mod is unique. Next, we'll move to the right side of the screen and find the mod's plugin file. We need to drag it 'up' until it is above any conflict resolution patches we already have in place.

 

image.png.0e845c4fbbaa66ff21ecec178a0e7218.png

image.png.f14e5bb3c2f245583aa673a1b3b97fcc.png

 

Now the plugin is in the right spot for us to look at it in xEdit. We can already see one potential issue: the plugin is getting assigned a 2-byte load order index (EF). This means that instead of using one of the thousands of 5-byte addresses, the mod is using one of only 255 'full size' addresses. If this mod is small enough to use a compact address, we need to change it over so it isn't taking up an excessive amount of space.

 

Now let's load up xEdit and take a closer look at this mod. We'll start with the file header, which we can do by just clicking on the plugin in xEdit.

 

image.png.dbf6afbedf93f47bfda20f5a46b47566.png

 

We can see that this mod has only 49 records, far below the 2048 record limit for receiving a 5-byte address. So that's one thing we need to take care of. Now, let's click the "+" icon by the plugin and see what it contains.

 

image.png.63048a26eef2f7ee42dd437ad2a50943.png

 

We've got a container, a static (the statue), and edits to the worldspace. There's also edits to the navmesh, which may or may not be an issue. We'll look at all these things in more detail, but first let's make sure the plugin is clean. I'm going to do this with the manual cleaning functions for illustrative purposes, but you can also get away with using the Quick Auto Clean function - see section 7.3 of this link

 

image.png.5fd6c8dedf668c8215ddbf8f29bbac2d.png

 

Once the filter applied, we want to run the three operations illustrated above. You can find them all in the right-click menu. For this mod, none of these checks turned up any problems, so we can move forward.

 

image.png.50f6143961d4da2a03c7b2f76cc766bd.png

 

Next, let's filter the mod for conflicts and see what shows up. Once more, we can see that this mod maintains a light touch. 

 

image.png.be9618548140eca15a3bd0ad43575ca9.png

 

Form ID 0000003C is one of the most conflicted forms in any build, because almost anything that touches the exterior world also has to reference a copy of this form. However, when we look at it you can see that the actual conflict is pretty limited - it's basically forwarding vanilla data that's conflicting with other mods.

 

image.png.3bb5814b6374eb8315a3f14f5929a0e5.png

 

As long as this form isn't overriding changes made by other mods, then it doesn't require any special handling. In my case, some mod or another edited the object bounds and I already had a patch in place to preserve this information. You can see it on the right. So... so far, so good. This mod seems pretty clean.

 

Step 3: Deeper Investigation

Spoiler

Now let's look at this mod from a content point of view. It has three essential elements:

 

First, it adds a form for the statue and object references to put it in the world. It also edits the navigation mesh for that location so NPCs don't try to walk through the statue and get stuck.

 

image.png.16dbd40cefc20ddf9ec2c308a56a6deb.png

 

There's not too much we need to do here yet, but let's take a closer look at the yellow highlighted forms. The first two of them are top level cell data - this is information the game uses to define the properties of a space in the game, and because of an engine limitation, any mod that alters the contents of a cell has to contain a copy of the top level cell data. You can see below that these records are harmless; they only show up as conflicts at all because they contain water data which my water mods are conflicting with. 

 

image.png.f3c5a1f028e674a58daa590754d19ea8.png

 

However, the top level cell data for 23, -1 is totally orphaned. As you can see, there's nothing changed in the actual cell. This is almost certainly just a dirty edit that the Creation Kit made without the knowledge or approval of the author. We are going to remove this form from the file along with the Sub-Block 2, -1 header.

 

image.png.c715150a2a90d3413a3ff5790f57865a.png

 

What about the navmesh? Below you can see that its only editing the vanilla navigational data. Unless we run into problems within the game, we can leave this alone.

 

image.png.b8f7a9efab6f6598799dd12126dca4f2.png

 

Of the other (white) entries, only one of them raises any concern to me: "TRX_BowChest" maps to a unique container for this mod, and it sounds suspiciously like a cheat chest.

 

image.png.fb520d36739f60efb8e73e3a17ba664c.png

image.png.8365f432b2c2e73487db44255b141052.png

 

Let's see what this chest contains - its that "container" entry we observed earlier.

 

image.png.d82667f03ded8be05c71f960e7f28fd5.png

 

So there you go: this is really overpowered, especially since there are several quests that will send a character to this spot well before level 40+. Conceivably we could replace the contents with something more balanced or even just with generic, leveled treasure, but I'm just going to remove the chest. We'll do that by first removing the placed object, and then by removing the container.

 

image.png.0a0739c2efe8b039c4fcd87ba95f3b7e.png

 

At this point, we are almost done. We'll compact this file for ESL, which will change the form IDs to use only 3 bytes so we can give the mod a 5 byte address. Then we'll add an "ESL" flag to its file header, so the game loads it into the 5-byte addressing group.

 

image.png.1943bfaa41ba27f98d9f2ccd285780d4.pngimage.png.0caaebaf6083bcc460f5dcddbf5b4118.png

 

OK, I think we're done here. Let's save the file and go back to MO2. You can see below that the mod now has a 5-byte address (FE60F)

 

image.png.9f5d5de96aac42b6ea188dd37bf43b9b.png

 

The last thing to do before we go into the game is to set the priority for the mod itself. I've already set up a few general categories to help out, and in this case we'll assign this mod to "landscapes and locations."

 

image.png.be1771d2a29c687b94ebe919c72b9708.pngimage.png.d557e723cb623163349a902084a7ef71.png

 

Now you can see below that the mod is clustered with similar mods. If we had asset conflicts, we might further fine-tune the placement to get it exactly the right spot, but since we don't have any of those this is just for organization purposes and we can leave it at the end of the section just like you see here.

 

image.png.d3f18aa263605854ef7e9af3f0012349.png

 

Step 4: In-Game Examination

Spoiler

Now let's get into Skyrim and visit the location. We'll take this cute little kitty down to the statue (protected by turning off AI detection and giving her god mode). Once there, we'll make sure he statue looks right and also walk around the area to make sure nothing is screwed up in terms of collisions or landscaping. 

 

image.png.0651a36b7b8f00f414b4bcd48bc56ee7.png

 

As you can see, the random Futanari chances that we set up a while ago seem to be working right, as are the weight based skin normal map distributions. 

 

image.png.ef20285044f5f388fec6b8027d3207cb.png

 

OK, we made it to Riverwood, so just short of half way there.

 

image.png.c8b5c645771e4ea4019f2363699481f7.png

 

Yuriana helpfully confirming that distributed bodypaints is working right...

 

image.png.1a7b31180b7ed52e03f13c8fd0497112.png

 

Evidently our test character found that interesting!

 

image.png.ed773c82aa4d18ecee9ff766fe61d40d.png

 

Almost to the shrine!

 

image.png.08e8971297988b6663eec47f52edfb83.png

 

Hmm... it seems like I might have gone to the wrong shrine. Let's use a console command to warp to the right location.

 

image.png.5ca52fb23bbc91e4a3aa9e03160f7fbe.png

 

That looks better. I probably could have just used the console command right away, but I like to walk to locations (within reason) so I can take a look at the surrounding world and make sure everything is set up correctly. 

 

ScreenShot2145.png.629265b02abec740763a4273e9fc63c5.pngScreenShot2146.png.28ebc62fe98011aaff13296fca8f5c9a.pngScreenShot2147.png.9b213f84d143eb02b4d71b5959413129.png

 

Closing Thoughts

With the end of the successful in-game inspection, we can officially say that this mod is successfully installed and integrated. As I mentioned up top, this was a pretty easy mod to get going, but it was a good platform for talking about the basic tools and walking through a step by step installation process. when I first found this mod, I thought I was going to have to move it to a different location, but it actually works out pretty good right where the mod author placed it. This is another good, high quality mod from TRX and it had very little in the way of issues. The main change it needed was removing the cheat chest, and that's kind of a personal preference thing. Some folks would probably be OK with the game giving out an endgame bow at the location.

 

I hope you all found that interesting! I have a somewhat more involved mod on my slate for the near future, where we can talk more about some of the more complex elements of integrating a mod. 

Edited by gregaaz

4 Comments


Recommended Comments

Talesien

Posted

Happy new year,

going to be interesting to see how this new series pans out.

Ah, MO2 ... not without its quirks either, but I would really like to try it out, even attempted to do so, but ... after wasting several hours of my life manually importing about 200 mods of my (back then, by now it's way more) 800 mod LO, due to the complete absence of a batch import I gave up, it would take way to long and it is WAY too boring and drudgy a task. Still hoping one day someone will come out with a mass import feature for MO2. Till then, I guess I'm stuck with Vortex.

So yes it's likely best to start with MO2, if one does not find it to their liking it's probably much easier to switch from MO2 to Vortex then the other way around. (Both Mod managers seem fine with you to do that, while both appear intent to prevent you going the other way.)

All in all a pretty good and easy to follow guide, though I'm not sure to many people will be that thorough, even if we all should be. One question though: Assuming space is not a concern (neither on the RAM nor drive front), is there any other reason why we would want to compress texture files?



Also, two questions unrelated to this blog entry.
1.) I upgraded my System a couple weeks back and switched from reshade to ENB (tried Patrician, absolutely great ... sadly LUX isn't my cup of tea, so switched to ELFX and Silent Horizons ... but I digress). Ever since going ENB I've a peculiar problem that whenever I open the console the first character typed seems to be a sacrifice to the ENB gods, vanishing into Oblivion. It is definitely connected to the ENB, if I remove the d3d11 dll, it's back to normal. Not a major problem, but a pretty enervating nuisance. My google fu also failed me on this. Ever heard of such a problem?

2.) Are you using the Great Cities of the North series? I recently tried them and while I really like how they change the cities, boy oh boy are those riddled with problems. Even after patching them as far as I could (with the available patches) there are still so many issues, especially with the Winterhold one (like you can't get to the Jarls new palace at all as the way is completely broken and don't get me started about the Inn, looks great, but ...). I doubt I want to even try and fix them.
 

gregaaz

Posted

23 hours ago, Talesien said:

Happy new year,

going to be interesting to see how this new series pans out.

 

Happy new year to you as well! The time schedule has been a little tight so far so this one will probably be more like "a few mods a week" than "one mod a day" at first, but I'm still looking forward to getting these published.

 

23 hours ago, Talesien said:

Ah, MO2 ... not without its quirks either,

 

Yeah, there's definitely a little bit of learning curve involved with first getting it running, but I definitely think its worth it in terms of the functionality that MO2 brings to the table.

 

23 hours ago, Talesien said:

Still hoping one day someone will come out with a mass import feature for MO2.

 

I agree, that would be a fantastic feature. Wabbajack seems to accomplish something similar to that, so maybe its not as far away as it might seem.

 

23 hours ago, Talesien said:

One question though: Assuming space is not a concern (neither on the RAM nor drive front), is there any other reason why we would want to compress texture files?

 

As I start to approach 2000 mods installed, I'm increasingly finding that my #1 performance cost is draw calls (of course, that's in part because I've identified and cleaned up and/or removed some really bad Papyrus offenders). While compressing the textures isn't a magic bullet, it does lighten the performance footprint of the mod. I'll still install 4K textures when its appropriate and I use 8K textures for character skins since NSFW mods tend to feature those skins... up close, but I generally try to avoid uncompressed textures since on my 1080p display I can't really tell the difference between uncompressed and BC7. 

 

23 hours ago, Talesien said:

Ever since going ENB I've a peculiar problem that whenever I open the console the first character typed seems to be a sacrifice to the ENB gods, vanishing into Oblivion. It is definitely connected to the ENB, if I remove the d3d11 dll, it's back to normal. Not a major problem, but a pretty enervating nuisance. My google fu also failed me on this. Ever heard of such a problem?

 

That's super weird. I haven't run into this issue, but it does indeed sound obnoxious. Have you tried installing Console++ to see if it helps? Normally I'd also suggest reaching out to Boris on his discord, but he's just ragequit because people don't agree with his virulently misogynistic, homophobic, and creepy race-fetishizing beliefs, so I don't think you'd get a lot of help there right now.

 

23 hours ago, Talesien said:

2.) Are you using the Great Cities of the North series?

 

I use the Great City of Dragon Bridge along with its integration patch for Arthmoor's Dragon Bridge mod and I like it a lot. Great Town of Ivarstead is on my "to install" list, but its currently blocked by the need for me to first update Become Jarl of Ivarstead; likewise, I'm interested in, at a minimum, porting the tavern from Winterhold, but that one may require a little fine tuning for compatibility with Toy Story.

 

23 hours ago, Talesien said:

boy oh boy are those riddled with problems.

 

Yeah, a few builds back (years ago now) I tried to install the Great Cities 'all in one' version that was circulating and I had a lot of small issues with it. That was kind of a learning experience that caused me to decided to generally not install AIO city overhauls and instead approach the territories one by one for better integration.

 

23 hours ago, Talesien said:

I doubt I want to even try and fix them.

 

That's always the dilemma. Some of these overhauls are really remarkable, but the time burden is frustrating... and they have a higher rate of "go-back" work than other mod types since the probability of interactions with stuff that assumes you are running the vanilla version is much higher.

Talesien

Posted

6 hours ago, gregaaz said:

As I start to approach 2000 mods installed, I'm increasingly finding that my #1 performance cost is draw calls (of course, that's in part because I've identified and cleaned up and/or removed some really bad Papyrus offenders). While compressing the textures isn't a magic bullet, it does lighten the performance footprint of the mod. I'll still install 4K textures when its appropriate and I use 8K textures for character skins since NSFW mods tend to feature those skins... up close, but I generally try to avoid uncompressed textures since on my 1080p display I can't really tell the difference between uncompressed and BC7. 

Ok, you got me there. How does the size of the texture matter in that context? To my knowledge the number of draw calls is solely connected to the number of objects, not the size of the textures (well unless you are running out of vram).

 

I already installed Console++ (for other reasons), no difference with it enabled or disabled.

 

As for the great cities, nice as the new in looks, for the time being I removed COTN Winterhold from my LO. It is just to broken. Also it seems it is not just Toy Story it collides with, it also appears to break the vanilla black star quest (though I might have installed an extended version of that, not 100% sure, I darkly remember installing something like that, but if it does not have black star or something like that in the name).
I will keep testing the others a bit more as they seem less problematic. So far the main problem seems to be that the inn keepers don't know where to go if they try to show you the room and no bed gets automatically 'un-owned'. The first thing is more of a feature I guess. ;) Second might be fixable, or it's just a fast console command (though that probably risks the bed getting taken over by NPC's in the long term).

gregaaz

Posted

20 hours ago, Talesien said:

Ok, you got me there. How does the size of the texture matter in that context? To my knowledge the number of draw calls is solely connected to the number of objects, not the size of the textures (well unless you are running out of vram).

 

The reason that draw calls can cause stuttering or frame drops is because the CPU and GPU have to process the assets to display them on the screen. One element of that is loading the textures to "wrap" the mesh with. While compressing a single texture probably won't make a big difference, the reason compression gets used on textures is to help avoid bottlenecking in the data stream. Honestly, I don't normally scrutinize texture compression status too closely, but this author often uploads mods with uncompressed textures so I take the extra step of checking them.

 

20 hours ago, Talesien said:

 

I already installed Console++ (for other reasons), no difference with it enabled or disabled.

 

That's annoying :( 

 

20 hours ago, Talesien said:

As for the great cities, nice as the new in looks, for the time being I removed COTN Winterhold from my LO. It is just to broken. Also it seems it is not just Toy Story it collides with, it also appears to break the vanilla black star quest (though I might have installed an extended version of that, not 100% sure, I darkly remember installing something like that, but if it does not have black star or something like that in the name).

 

Hmm, that's certainly not good. Thanks for the warning!

 

 


×
×
  • Create New...