Tips/guidance for modding Starfield; mostly a reference for myself. Make sure you check footnotes for additional info, and I welcome any suggestions or corrections as issues or PRs!
See my current load order and mod list on Load Order Library here.
Important
I have only used Mod Organizer 2 for Starfield modding and cannot provide much insight into Vortex setup or support; if you have more experience with it, feel free to open a PR and id be glad to include it
- Download latest MO2 and configure a portable instance
- Copy the entire Starfield directory from Steam into the MO2 directory and rename to
Stock Game Folder
; rationale for using Stock Game Folder over Root Builder is that while it uses more storage, it will maintain the existing version of the game even if an update is released so it won't break - In the settings, change Paths to point to
Stock Game Folder
- In the MO2 directory, create a folder called
tools
and download all tools into here then add each one as an executable in MO2 - Install the latest Starfield Script Extender (SFSE) directly into
Stock Game Folder
- Download
StarfieldPrefs.ini
andStarfieldCustom.ini
and put inDocuments/My Games/Starfield
(and inmo2/profiles/<profile>
for good measure) - Download the
Ultra.ini
preset, and put inStock Game Folder
(this is tweaked to have settings more like Medium, but better meshes from Ultra) - Replace the Nvidia DLSS plugin inside
Stock Game Folder
with the latest from TechPowerup - Install all mods, organize order, etc
- Pack loose files and disable loose file loading - see below
- Delete shader cache - see below
- Create patches, identify conflicts, etc.
- Latest dev version for best Starfield support;
4.1.5k
at the time of writing - Download from xEdit discord from #xedit-builds
- Pack loose files into BA2 or unpack BA2
- Comes with xEdit
- Latest dev version for best Starfield support;
2.5.3dev2
at the time of writing - Download from MO2 discord from #dev-builds
- Can upgrade BA2 v2 textures to BA2 v3 including the use of LZ4 compression for better performance in Starfield
- Download from Nexus Mods
- Can fix meshes that were created for older versions of Starfield that no longer work on newer versions
- Download from Nexus Mods
- ini tweaking tool with useful utilities
- Download from Nexus Mods
- For editing
.swf
files usually found ininterface/
files such as icons and fonts - Download from Github
- Using SKK Fast Start can cause issues with weapon sound fixes resulting in weapons not having sound; supposedly it goes away after awhile or possible reload but starting vanilla is safest if using both of these
- EDIT: I have also noticed textures not loading in when using quick start and starting in the Lodge - they returned on a subsequent reload similar to the audio issues
- Ensure that
.asi
mods like Disk Cache Enabler sit at the root of their mod folder as the updated ASI loader expect them to be at the root ofData/
; example:Disk Cache Enabler/diskCacheEnabler.asi
- You will know it is in the right spot and loading correctly if you start the game, exit, and see a line in
Documents\My Games\Starfield\SFSE\Logs\SFSEAsiLoader.log
that says something like[10/23/24 19:59:10][info](main.cpp:114) Loading C:...\Stock Game Folder\Data\diskCacheEnabler.asi
followed byLoaded plugin successfully
- You will know it is in the right spot and loading correctly if you start the game, exit, and see a line in
- The armors
Banshee
,Exile
,HyperGuardian
,Mark M
andPathfinder
all contain outdated meshes, and require updating (or see Luxor's patches) - Luma seems to cause black crushing on my OLED displays but likely needs further tweaking; NaturalLUTs plus the default HDR (or Nvidia RTX HDR) seem to be good enough
- Console Command Runner (CCR) mods are no longer relevant as they can be easily recreated natively in the Creation Kit as an
.esm
; for example, I recreated Instant Scan this way in about 5 minutes - The Dualsense icons mod apparently needs an update as there are some missing icons in the Creations menu
- Speaking of which, files from the
interface/
folder such as.swf
files can be edited with this tool
In previous Bethesda games, there always seemed to be a unified unofficial patch mod that many would contribute to resulting in a simple end user experience - install one patch, fix all community-known issues. However, there was drama involving a developer of those patches and so to avoid that further, a community effort was formed resulting in the Starfield Community Patch (SFCP). This didn't stop the developer from continuing to create their own patch though, the Unofficial Starfield Patch (USFP).
I liked this answer from Deebz_:
I’m on the SFCP team, but I would personally advise looking at both changelogs and coming to your own conclusion about which to use.
Objectively, the Community Patch fixes a lot more right now, but both changelogs have some differences from one another. Up to you to decide which set of fixes you want, or if they are even necessary to you in the first place. Both mods are stable and safe to use, so it really just comes down to that.
That being said, I also appreciate the collaborative effort to build the community patch, so my personal preference is that one.
Many mods have BlueprintShips-Starfield.esm
listed as a master which LOOT will report as an issue. So many mods have this as early versions of xEdit set it as master as it was thought to be necessary at the time - this has since been proven unnecessary. The downside to this is that BlueprintShips-Starfield.esm
always loads last, so any mods with it listed as master will load after it even if you sort your load order otherwise.
Here is how to remove it:
Note
Future builds of xEdit will include the ability to remove it as well, but for now we will use the Creation Kit
- Put the affected
.esm
file inbase game/Data
, wherebase game/
is the primary Starfield installation where the Creation Kit is also installed - Load the Creation Kit
- Click
File
->Data
- Find your mod and select it
- In the right column, a list of masters will be shown including - select
BlueprintShips-Starfield.esm
- Press
Ctrl + Del
which will remove it - Repeat for other affected mods
- Confirm all is good by sorting with LOOT again which should now report no
BlueprintShips-Starfield.esm
ini
files are the configuration files that host the in-game settings you choose in the options menu plus more granular settings that are not exposed in-game.
To get the best performance and ensure your settings are loading properly, let's examine what each file is and how it works. This section is adapted from the fantastic STEP guide here.
Located in Documents/My Games/Starfield/
.
Holds options like resolution, camera, controls, difficulty and more; most of what you see in the options menu.
However, the most important section is [Quality]
- this outlines the render settings for each customizable quality setting. The values map to one of the Low/Medium/High/Ultra files found in Stock Game Folder
- for example, if you choose uContactShadows=1
, it will use the value configured in Low.ini
; likewise, uContactShadows=3
will load the value from Ultra.ini
.
This gets confusing fast since this file is really just pointing to each of the other files for different values, so to make this easier, it is suggested to modify one of the base profiles (usually Ultra.ini
) to exactly what you want, and then in StarfieldPrefs.ini
you can set each quality setting to 3
so that they all point to just that file. This is how my sample ini's are configured in this repo.
Located in Documents/My Games/Starfield/
.
This file holds other configurations such as [Archive]
which holds the list of all BA2 files to load.
Located in Stock Game Folder
.
These hold the granular quality settings for each type of rendering option you can set in-game. The Low.ini
holds the values for everything that would be set in the Low
profile etc.
Note
This applies to all Mod Organizer 2 mod lists, not just Starfield.
If you would like Steam functionality to while using mods, you can configure Steam to point to your modded directory. This does not inherently disable achievements unless you have mods that do so, and allows opening the Steam in-game interface, use of Steam input, and easily launching your modded list through Steam Remote Play.
- Ensure you have the script extender installed in
Stock Game Folder
- In MO2, edit the executables and click the
+
to add one - Name it
SFSE
, and for the binary, locate thesfse_loader.exe
and select it - Now in Steam, right-click on Starfield, click
Properties
- In the
General
tab underLaunch Options
, enter the following:
"path\to\ModOrganizer.exe" "moshortcut://:SFSE" %command%
where path\to\ModOrganizer.exe
is the full path to the MO2 executable. For example, here is mine:
"G:\Mods\dev-modlists\a-better-starfield\ModOrganizer.exe" "moshortcut://:SFSE" %command%
Starfield runs on DirectX 12 which compiles shaders into a cache the first time you launch the game, and also as you play the game. After a shader is compiled, it remains in the cache allowing it to be fetched quicker and thus leading to less stutter as you play through the game.
The shader cache becomes invalid when there is a driver update, which will force the game to recompile the shaders on launch and you will likely experience more stutter while playing for awhile after a driver update.
Certain issues can arise from a stale shader cache as you mod your game and make other types of changes - things like flickering or reduced performance.
This guide from Reddit explains how to clean your shader cache on each kind of system. Since I use Nvidia, the steps are as follows:
- In Windows Explorer, enter this:
shell:LocalAppDataLow\NVIDIA\PerDriverVersion\DXCache
- Delete all files from here; some may say they are in use, and you can restart your PC in safe mode and try again
- Then, navigate to
%LOCALAPPDATA%\Starfield\
- Delete
Pipeline.cache
If you can't do those, updating your driver should also wipe the cache.
I needed a way to quickly identify possible problematic mods in my load order, so I came up with the following.
- SKK Fast Start - to quickly get in-game
- CapFrameX - to track performance
- Download and start up CapFrameX
- Sort load order to test and start game
- Start a new game
- You will load in New Atlantis - leave all options as they are
- Quickly choose a background and name, and finish character creator
- Wait a few seconds for everything to load, then go in inventory and back out - SKK should say that it has initialized
- Once all notifications stop, hit
F11
which begins the recording - Run straight through, past the crowds, up the ramp; at the top, turn around to look back down the ramp at the crowd, then turn back and finish by walking to the closest sign
- Hit
F11
again to stop recording, and exit the game
This is very rough and not ideal, but it provides a reasonable way to get an idea of how your load order performs in a demanding area of the game quickly.
Steps have been adapted from this wonderful guide on Nexus, please go endorse!
- There are many tools that can pack/unpack, but the two I found most useful in terms of Starfield support, speed, and function are BSArchPro64 and BA2Upgrader; alternatives include
Archive2
(included with the Creation Kit) and Cathedral Asset Optimizer - Ensure that your load order is configured such that all conflicts are resolved how you would like
- To find all loose files, run
Explorer++
and look at the virtual game directory, then in theData
folder - all loose asset folders should be visible here - I don't know why, but the Starfield ini files in my MO2 directory were not being loaded, and it was instead loading from my Documents folder still
- Pack loose textures using
Starfield - DDS
format, then useBA2Upgrader
and upgrade to BA2 v3 using LZ4 compression for best performance
This guide was adapated from a resource that used Archive2, so feel free to use that or if you are comfortable with it, use BSArchPro64.
- 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.
- 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.
- 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.
- 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.
- 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 into the game. You can use StarfieldCustom.ini to do this:
- Place ", MyMods - Textures.ba2" at the end of the line beginning with "sResourceIndexFileList=" (ignore quotation marks).
- 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).
- 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).
- Place ", MyMods - WwiseSounds.ba2" at the end of the line beginning with "sResourceStartUpArchiveList=" (ignore quotation marks).
- Finally, place ", MyMods - Main.ba2" at the end of the line beginning with "SResourceArchiveList=" (ignore quotation marks).
Now we need to prevent the loose files from loading:
- Open StarfieldCustom.ini
- Remove these lines from the
[Archive]
section:
sResourceDataDirsFinal=
bInvalidateOlderFiles=1
By doing this, we don't need to go and manually delete/disable our loose files from each mod that was packed here; they will simply not be loaded.
- Only helpful for very large texture overhauls such as Starfield HD Overhaul to save space and possibly load faster due to fewer (large) BA2's
- Loose files shouldn't be repacked into vanilla archives as more custom files in the base archives will create complexity especially if you want to remove a mod
Repacking can be done as follows:
- Create a folder called
working
, and inside, create a folder calledvanilla unpacked
and another calledhd unpacked
- Download all BA2's for the given texture pack
- Load up BSArchPro64 and drag each BA2 from the pack on to it
- Once all BA2's are loaded, extract to
working/hd unpacked
; this may take awhile but after it is complete, you should see atextures
folder - Clear the files in BSArchPro64, then navigate to
Stock Game Folder/Data
- Select all texture files for the base game named like
Starfield - Textures01.ba2
and drag on to BSArchPro64 - Then, drag
Starfield - TexturesPatch.ba2
- this one appears to be a patch (as its name implies) so it will ask to overwrite files; say yes - Once all BA2's are loaded, extract to
working/vanilla unpacked
; once complete, you should see atextures
folder - IMPORTANT - Drag
working/hd unpacked/textures
on toworking/vanilla unpacked/textures
, NOT the other way around - This will take some time and should ask you to overwrite textures, say yes to all
We now have all of our textures in one place with any redundant vanilla ones replaced, so now we can pack it back up.
- Clear BSArchPro64, and drag
working/vanilla unpacked/textures
on to it - Click
Ctrl + A
to select all, then click Pack - In the menu, select
Starfield DDS
since these are textures, and enable Multithreaded Packing and Shared Data - Finally, set the Archive File Name to match the original -
Starfield - Textures.ba2
- Since each BA2 can only be 4095MB or ~4GB, it will create many archives with a naming scheme like the originals
- Delete the original texture archives from
Stock Game Folder/Data
likeStarfield - Textures01.ba2
, along withStarfield - TexturesPatch.ba2
- Check the
sResourceIndexFileList
inDocuments/My Games/Starfield/StarfieldCustom.ini
and ensure that all numbered texture archives are there; if not, add any to the end of the line separated by commas
That should be it.