ALOHA!
This article is intended for both complete newcomers who haven't even gotten their copy of Starfield setup for loose files yet and have no idea what "loose files" are, as well as more experienced modders who are setup for loose files but might still stand to learn some ways to improve their habits for better results modding Starfield. Feel free to skip any section that only contains information you already know.
WHAT ARE LOOSE FILES?
So called "loose files" in the context of Starfield are defined to be any file or asset used by Starfield that is placed loosely within the Starfield installation rather than being read from BA2 archives. Your loose files will take priority over Starfield's archived files, and hence they are a great way to create overrides for the files that Starfield already natively looks for (by ensuring the loose files have the same path as the files Starfield wants to read). But loose files don't always have to be overrides. They can also be original assets that can make their way into the game by references made to them from ESM plugin records or NIF files, etc. A slight tweak is needed, though, to enable loose files in Starfield.
ENABLING LOOSE FILES
Firstly, if you haven't already done this, ensure you have a StarfieldCustom.ini with the following path (make sure to replace [YOUR-USER-NAME] with your actual Windows user name):C:\Users\[YOUR-USER-NAME]\Documents\My games\Starfield\StarfieldCustom.ini
If that file doesn't exist yet, go ahead and create it and be careful to ensure that it is not being saved as StarfieldCustom.ini.txt. But whether that file exists yet or you have to make it, ensure the following lines are in it.[Archive]
sResourceDataDirsFinal=
bInvalidateOlderFiles=1
If your StarfieldCustom.ini file already has an [Archive] section in it, but is missing the other lines shown above, then simply add those two missing lines right below [Archive] (no need to have more than one [Archive] section in the file). And if your StarfieldCustom.ini both has the [Archive] section and the two settings below it, but the settings are set to different values than shown above, then simply fix the values to be as shown above.
WHERE AND HOW TO INSTALL LOOSE FILES
Now that you are setup for loose files, where do you install stuff? Generally always follow the instructions provided by the mod author, but it's also good to keep the following in mind. Starfield can read files from a Data folder in one of two locations, your game root's Data folder ([DRIVE_LETTER]:\SteamLibrary\steamapps\common\Starfield\Data if you're on Steam) and Documents\My games\Starfield\Data (whether on Steam or GamePass). However, to help avoid unpleasant surprises, or situations where the game doesn't seem to want to read some of your loose files, pick one of those Data folders to use, and strictly use only that Data folder for any and all loose files from all mods you install. Otherwise, Starfield may read the files in one location and ignore the ones in the other location. In my case, I chose to stick with my game root's Data folder, as my game root is on my fast M.2 drive while my Documents is located on my slower C drive, and hence my decision is based on performance (Starfield will read those files faster from a faster drive). Your situation may be different, but I think in most if not all circumstances I would recommend you stick with your game root's Data folder and do the following steps if this requires a switch for you:
1. Move whatever is in your Documents\My games\Starfield\Data folder to your game root Data folder
2. Delete the Documents\My games\Starfield\Data folder
3. Disable Starfield from re-creating the Documents\My games\Starfield\Data folder when it attempts to write to it by ensuring the following is in your StarfieldCustom.ini:[General]
bEnableMessageOfTheDay=0
sPhotoModeFolder=Photos
Of course, if you already have a [General] section but not the other two lines, add the two additional lines right below it. And if those settings are present but set to different values, adjust the values accordingly.
WINDOWS BLOCKS NEXUS MODS FILES!
One other thing you might want to be aware of when downloading and installing mods from Nexus Mods, if you are doing so on a modern Windows operating system, is that Windows often flags many of the files that you get from Nexus Mods as untrustworthy, and thus blocks them. This is especially the case with the flash files that go in the Data\Interface folder, considering that a flash file can be used to deliver a malicious payload (which is of course not what anyone on Nexus Mods is up to, but Windows doesn't take chances). If one or more of your downloaded files is blocked, you may not be able to immediately tell without right-clicking on the file and opening Properties, and seeing at the bottom of the General tab a note about the file being blocked, and a means to unblock it. And if Starfield for some stupid reasons seems to just refuse to use a certain file you installed, this could potentially be the reason (it could be blocked by Windows). So every time you download files from Nexus Mods, always check for blocks and unblock those files before installing to Starfield. A blocked file has the potential to simply not be used by Starfield, even if installed correctly. So right-click on each file, open Properties, and under the General tab you'll see if it's blocked by Windows, and if it is you can unblock it using the checkbox beside that note in Properties and then clicking Apply. Of course, some mods give you lots of files, and it becomes quite tedious to unblock so many files using this method. So in cases like that, there's a trick to recursively unblock all files in a specified folder. What you do is open PowerShell (open it as Administrator, just in case there are any files or subfolders in your destination with restrictive permissions), and then in PowerShell issue the following command (be sure to replace PATH\TO\MOD_DOWNLOAD_FOLDER with the path to the actual folder you download your mods to):dir PATH\TO\MOD_DOWNLOAD_FOLDER -Recurse | Unblock-File
I download and unpack all of my mods to D:\StarfieldMods\ before I copy them over to my Starfield directory to install them, so for me, I run the following command to unblock all my freshly unpacked files before I install the files to my Starfield directory:dir D:\StarfieldMods\ -Recurse | Unblock-File
I don't even waste any time checking first if files are blocked or not, I just run that command after downloading and unpacking any new mod to D:\StarfieldMods\ prior to actually installing them. And if you have been installing mods without being aware to unblock files first, and you're now paranoid that there may be some blocked files in your Starfield installation, and maybe that's why a few things oddly don't seem to work, then no worries. Simply run the above command on your Starfield game root folder, and now there definitely aren't any blocked files in there anymore, whether or not there were before. So for me, that would look like the following:dir D:\SteamLibrary\steamapps\common\Starfield\ -Recurse | Unblock-File
This command is completely safe to run on your files and only unblocks files it finds that are blocked and nothing else. It's even harmless to run if it doesn't find any blocked files. So don't stress about running this on your Starfield installation. It will NOT bork your game. If anything, it might unbork it a little bit if there were any blocked files that it unblocked. But after making sure your Starfield installation is completely free of blocked files once, unless you tend to install or download files directly from Nexus Mods straight to your Starfield installation (is that what happens when you download via a mod manager?), then you should only have to run that command on whatever folder you are in the habit of downloading and extracting your mods to prior to copying their files over to your Starfield installation every time you download and extract another mod.
Now you are good to go for loose files and can install any loose files mod and also be confident that you're not allowing files blocked by Windows to get into your Starfield installation. Most mod authors will package their files in a zip or 7z archive with a folder structure that exactly matches what it should be in your Data folder after you install the files. So all you need to do is extract the contents of the zip or 7z, make sure all files are unblocked, and go into the downloaded folder, go into the Data folder inside of it, copy all of the contents, and then paste the contents to your Starfield Data folder, and that's it! Of course, if you get prompted in the process of copying the files to your Starfield installation whether or not you wish to overwrite files, then that's an indication that what you are trying to install conflicts with a mod you already have installed. If that happens, don't just allow the overwrite willy-nilly without knowing what's happening. Instead, figure out what previous mod your new mod is trying to overwrite, so you know what mod it conflicts with, and then either make a choice between the two mods according to which one you care more about, determine if one of those mods can still work or mostly work while missing its copy of the conflict files your new mod is trying to overwrite, or investigate the possibility of a patch. But if the new mod you are installing already IS a patch to the mod whose files it's trying to overwrite, then the mod author who made the patch might have warned you on their mod page to expect to be prompted to overwrite files and to allow it. But if you are not prompted to overwrite files while installing your mod, in the majority of cases, and with most mod types, this is a good indication of there being no conflicts with anything else. The main exception to this is with ESM plugins, where conflicts can exist between the records that two or more plugins contain despite being differently named plugins that would not overwrite each other. To detect or resolve conflicts between ESM plugins, you need xEdit. But ESM plugins are also not considered to be loose files since they are not files that would normally be read from a BA2 archive that are installed loosely instead, and hence they do not satisfy the definition.
THE TERRIBLE COST OF LOOSE FILES
Sadly, while a bit easier to manage, loose files do have a terrible and eventually noticeable impact on the game's performance as they build up, and there is a good reason the game was developed to mainly read from ba2 archives, as reading from those archives is much faster and more performance-friendly. For this reason, unless you have a specific reason to prefer loose files, such as your desire to tweak the files yourself, if a mod author provides an option to install their mod without loose files (with BA2 archives instead), you should always prefer that installation option for performance reasons. And of all the types of loose files that one might install, the ones that tend to contribute the most to Starfield's performance degradation are texture files, or DDS files. Having a few loose DDS files is fine, but if you've got a ton of loose DDS files in your Textures folder, there's a good chance Starfield is running much slower and less smoothly than it would loading those same textures from a DDS-type, LZ4 compressed BA2 archive instead (also known as a version 3 BA2 archive, or a BA3 archive).
If you find your system getting a little too bogged down, or Starfield just doesn't run as smoothly as it used to, rather than just wish that mod authors would provide you with BA2 archives exclusively instead of making you install so many loose files, you can actually package the loose files you have yourself. The best way to do this is using Archive2, which ships with the Creation Kit. You can install the Creation Kit from steam, and then run Starfield\Tools\Archive2\Archive2.exe and the Archive2 window will open. With that window open, here's how I package my loose files:
1. In Archive2, load all your UI files (i.e. flash files) in your Interface folder and then in Settings set the Type to General and the Compression to None and then save the archive to the game root Data folder as MyMods - Interface.ba2.
2. Again in Archive2, load all your PEX scripts from your Scripts folder and then in Settings once again set the Type to General and the Compression to None and then save the archive to the game root Data folder as MyMods - Misc.ba2.
3. Once again in Archive2, load all your WEM files from your Sound folder and then in Settings set the Type to General and the Compression to None and then save the archive to the game root Data folder as MyMods - WwiseSounds.ba2.
4. Also in Archive2, load all your textures from your Textures folder and then in Settings set the Type to DDS and the Compression to LZ4 and then save the archive to the game root Data folder as MyMods - Textures.ba2.
4. Finally in Archive2 again, load everything left (i.e. Geometries, Materials, Meshes, Strings, etc.) and in Settings set the Type to General and the Compression to Default and then save the archive to the game root Data folder as MyMods - Main.ba2.
Once you have made all of those archives, you then just need a way to load the archives ino the game. You can use StarfieldCustom.ini to do this:
1. Place ", MyMods - Textures.ba2" at the end of the line beginning with "sResourceIndexFileList=" (ignore quotation marks).
2. Place ", MyMods - Interface.ba2" at the end of the line beginning with "SResourceArchiveMemoryCacheList=" as well as at the end of the line beginning with "sResourceStartUpArchiveList=" (ignore quotation marks).
3. Place ", MyMods - Misc.ba2" at the end of the line beginning with "SResourceArchiveList=" as well as at the end of the line beginning with "SResourceArchiveMemoryCacheList=" (ignore quotation marks).
4. Place ", MyMods - WwiseSounds.ba2" at the end of the line beginning with "sResourceStartUpArchiveList=" (ignore quotation marks).
5. Finally, place ", MyMods - Main.ba2" at the end of the line beginning with "SResourceArchiveList=" (ignore quotation marks).
Alternatively, if you don't want to add everything to your StarfieldCustom.ini, you can also load all your archives with an empty ESM plugin. Download a copy of xEdit from the xEdit discord, copy the files over to your Starfield game root's Data folder, rename xEdit64.exe to SF1Edit64.exe and then launch it. It will take a while to fully load the first time you launch it, but will be fairly quick subsequent times. While in xEdit, after you've loaded at least Starfield.esm if not your other plugins as well (no need to load more than Starfield.esm), in the left-most pane containing your plugin list, expand Starfield.esm and then expand one of its record categories and find a record, any record (well, one without reflection data in it, anyway). Right-click the record and select Copy as Override To... and then select New File in the pop-up. Make sure you name the file MyMods (or whatever name you used in place of MyMods for all your archives) and then click OK. You will now see MyMods.esm in the left pane with one single record in it. Go ahead and delete the record you just added to it (right click on it and select Remove), and then right click on the record category it was in and remove that as well, and now MyMods.esm is just an empty, zero-record plugin. Hit Ctrl+S to save the new file and then exit xEdit. Then simply make sure MyMods.esm is added to your load order in the Creations Menu in game, and that's it. Having MyMods.esm in your load order will automatically load archives named like MyMods - Main.ba2 or MyMods - Textures.ba2 without having to make any manual references to them. And if you want to use a different name, say MyKillerMods or whatever, just make sure the ESM plugin name and the first part of the name for each archive matches. So MyKillerMods.esm will load MyKillerMods - Main.ba2, MyKillerMods - Textures.ba2, etc.
Before going ahead and deleting all your loose files, though, just move the loose files somewhere else and launch Starfield to test if all the archives you made load as expected and that you did everything correctly, whether you went with the INI loading method or the ESM loading method. Once you have verified that everything loads correctly, you can delete the loose files if you want to, but I still recommend keeping them around somewhere as the place to install new loose files to so that you can keep remaking your archives whenever you make changes.
I hope this article has been educational and helpful and enables you to keep on modding with fewer head-scratching issues that might be coming from loose file management issues.
2 comments