Jump to content

Starfield Mod Installation


Recommended Posts

There are currently two different ways to install mods depending on the version of the game installed. There hasn't been a consensus agreement yet about the best path forward for the community, at large. Until this becomes more solidified, we are simply providing this information for reference.
 

Xbox/Game Pass (will not supported by Step in the future)
Step does not and will not support Xbox or PC Game Pass. That said, if the game is being used via PC Game Pass, all mods must be installed into the following location ONLY:

..\Documents\My Games\Starfield\Data


Steam PC (will be supported by Step)

Since the Message of the Day and Photo Mode assets are automatically generated and stored under the Xbox/Game Pass path, the traditional location below is currently not viable for assets under the ..\Textures\ subfolder. For Steam PC users, any mod having a ..\Textures\ subfolder must have its textures installed into the Xbox/Game Pass ..\Textures\ subfolder. This will hopefully be corrected by Bethesda, Microsoft, or more likely the modding community soon.

NOTE: We have confirmation that the same is true for assets under ..\Meshes\ folder, so we think it's best to assume the same is true for ANY ..\Data\{subfolder} corresponding to those in BS2 archives of the vanilla game.

With this one exception in mind, mods should be installed into the traditional ..\Data\ directory as always.

..\Steam\steamapps\common\Starfield\Data

 

Current Starfield Asset Priority

  1. ..\Documents\My Games\Data\{subfolder}\* (bad, default)
  2. ..\Steam\steamapps\common\Starfield\Data\{subfolder}\* (good, alternate)
  3. ..\Steam\steamapps\common\Starfield\Data\*.ba2 (default fallback)

 

Mod Organizer
MO now provides beta support for Starfield in its latest build: MO2 2.5.0 + Starfield Support - Beta 2. Until we test this, we can only recommend to let MO do its thing and NOT worry about the mod install locations above. Just let MO handle things and report back any findings.

Quote

Updates This build includes preliminary Starfield support. It uses the My Games directory as the primary mod Data directory. It is able to parse the contents of the game's Data directory in order to display the core plugins and archives in the directory structure.

We currently only support Steam installs as the Windows Store builds are incompatible with the VFS. Turn on automatic archive invalidation in the profile settings or it may revert those settings. Next build will not. This support includes:

  • Parsing of save files to display save data
  • Basic plugin and archive data parsing (somewhat untested)
  • SFSE detection

Beta 2:

  • Fix for game location detection
  • Virtualizing both Data locations to deal with things like SFSE
  • Archive invalidation (automatic INI updates required for some mods)
  • Pulled in other MO2 updates missing in beta 1

IMPORTANT

MO2 copies your /my games/ INIs on instance creation to its own profiles folder.

BethINI: Don't edit the wrong INIs!


Vortex
Vortex supports Starfield at the time of this release, but only to the game's root data folder. Since the Message of the Day and Photo Mode shots are stored within My Games folders, Vortex's support is currently broken.

Link to comment
Share on other sites

Texture mods must install to:

\Documents\My Games\Starfield\Data

This is being forced currently due to Photo Mode and Message of the Day being automatically generated there at game startup, and the game reads the first top level directory, in this case Textures, from the My Games location first, disregarding all the rest.

Link to comment
Share on other sites

2 hours ago, DoubleYou said:

Texture mods must install to:

\Documents\My Games\Starfield\Data

This is being forced currently due to Photo Mode and Message of the Day being automatically generated there at game startup, and the game reads the first top level directory, in this case Textures, from the My Games location first, disregarding all the rest.

So even if you delete the file generated there, it comes back...great!

Hey, Bethesda...I need a word...:bat:

Link to comment
Share on other sites

2 hours ago, DoubleYou said:

Texture mods must install to:

\Documents\My Games\Starfield\Data

This is being forced currently due to Photo Mode and Message of the Day being automatically generated there at game startup, and the game reads the first top level directory, in this case Textures, from the My Games location first, disregarding all the rest.

@TechAngel85 If this applies to textures ONLY, then the OP still isn't clear.

Link to comment
Share on other sites

4 hours ago, TechAngel85 said:

At this point it refers to anything that goes in the Data folder.

Yeah, but what are the facts? As I understand it, only textures are impacted per @DoubleYou's post above. I honestly don't know and am planning on referring to the OP for the facts at some point, so trying to establish what we know for sure to avoid misunderstanding.

Link to comment
Share on other sites

Here to try to shed a little light on this, hopefully! I used two different LUT texture mods and two different item string mods to check conflict resolution for different folders/types of data. All of these tests were done on the Steam version of the game. (One of the string mods also uses a font edit in Data\Interface--I did not install it at all, because using just the string files still produces garbled prefixes. I don't need to see the actual icons to tell which mod has won the conflict between the two folders, which is the real point here.)

A) Currently, textures in the Root Data folder's .ba2s are overwritten by loose textures in the My Games Data folder. The .ba2s are not overwritten by loose textures in the Root Data folder alone. Placing loose textures in the Root Data folder and the My Games Data folder causes those in My Games Data to appear. (Presumably, because the loose textures in Root Data are ignored entirely, the My Games Data textures are still just overwriting the .ba2s in that second case, technically speaking.)

B) Testing non-texture files gives different results. Strings in the Root Data folder's .ba2s are overwritten by loose strings in the My Games Data folder, as before. However, loose strings in the Root Data folder alone do overwrite the .ba2s appropriately. Finally, when loose strings are present in both locations, the My Games Data folder's contents still win the conflict. This invited the question--if there were no conflict, would the game load strings from both folders? The answer to this question is no. Tested this by placing English strings in the Root Data folder and Spanish strings in the My Games Data folder. The strings appear when Spanish is the chosen language, but not English.

C) Finally, a mix-and-match. Can you load one type of data from one area, and another from the other? Yes. Placing LUT files in My Games Data (as they have to be, since they're textures) and strings in Root Data works fine.

TL;DR: Each My Games Data subfolder will overwrite an identically named Root Data subfolder in its entirety, even if there are no conflicts. Textures, in addition, have to be placed in My Games Data, as they do not function at all in the Root Data location. This is because, as pointed out above, Bethesda has included a Textures folder there by default for the MOTD, so any Textures folder content in Root Data is ignored. I assume all other types of data (like strings) can exist in either location, though all mods that adjust a particular subfolder should be stored in one location, not split across both locations.

Pinging @z929669, @TechAngel85, and @DoubleYou.

Edited by Sithishade
Link to comment
Share on other sites

56 minutes ago, Sithishade said:

Here to try to shed a little light on this, hopefully! I used two different LUT texture mods and two different item string mods to check conflict resolution for different folders/types of data. All of these tests were done on the Steam version of the game. (One of the string mods also uses a font edit in Data\Interface--I did not install it at all, because using just the string files still produces garbled prefixes. I don't need to see the actual icons to tell which mod has won the conflict between the two folders, which is the real point here.)

A) Currently, textures in the Root Data folder's .ba2s are overwritten by loose textures in the My Games Data folder. The .ba2s are not overwritten by loose textures in the Root Data folder alone. Placing loose textures in the Root Data folder and the My Games Data folder causes those in My Games Data to appear. (Presumably, because the loose textures in Root Data are ignored entirely, the My Games Data textures are still just overwriting the .ba2s in that second case, technically speaking.)

B) Testing non-texture files gives different results. Strings in the Root Data folder's .ba2s are overwritten by loose strings in the My Games Data folder, as before. However, loose strings in the Root Data folder alone do overwrite the .ba2s appropriately. Finally, when loose strings are present in both locations, the My Games Data folder's contents still win the conflict. This invited the question--if there were no conflict, would the game load strings from both folders? The answer to this question is no. Tested this by placing English strings in the Root Data folder and Spanish strings in the My Games Data folder. The strings appear when Spanish is the chosen language, but not English.

C) Finally, a mix-and-match. Can you load one type of data from one area, and another from the other? Yes. Placing LUT files in My Games Data (as they have to be, since they're textures) and strings in Root Data works fine.

TL;DR: Each My Games Data subfolder will overwrite an identically named Root Data subfolder in its entirety, even if there are no conflicts. Textures, in addition, have to be placed in My Games Data, as they do not function at all in the Root Data location. This is because, as pointed out above, Bethesda has included a Textures folder there by default for the MOTD, so any Textures folder content in Root Data is ignored. I assume all other types of data (like strings) can exist in either location, though all mods that adjust a particular subfolder should be stored in one location, not split across both locations.

Pinging @z929669, @TechAngel85, and @DoubleYou.

Thanks.

First, as DY stated previously:
 

Quote

 

Texture mods must install to:

\Documents\My Games\Starfield\Data

This is being forced currently due to Photo Mode and Message of the Day being automatically generated there at game startup

 

... so it makes sense that loose textures alone are only recognized in this^ path. Your A) findings corroborate that.

However, your B) findings highlighted make little sense to me. Are you saying that if a custom strings file (or custom ANYTHING) exists in ...

..\Documents\My Games\Starfield\Data

... the game will not recognize ANY custom files in ...

..\Steam\steamapps\common\Starfield\Data

... ?

For now, we must assume that meshes or any other loose assets behave like strings and loose textures stand alone because of the unique treatment of textures for Photo Mode and Message of the Day, as evidenced by the path ...

..\Documents\My Games\Starfield\Data\Textures\

 

In other words, custom loose assets under the path:

..\Steam\steamapps\common\Starfield\Data\Textures|Strings|Meshes|etc\

... are INVALID if any custom loose assets exist under ...

..\Documents\My Games\Starfield\Data\Textures|Strings|Meshes|etc\

I'd like the OP to reflect these details rather than implying that all loose assets must be under the ..\Documents\My Games\Starfield\ path, because that's just not true it seems.

 

PS: I don't want to mention anything related to xBox/Gamepass on this site other than mentioning that we do not support it. It's just confusing to the paradigm of interest that we do support (and the Nexus seems to be doing the same). I'm only interested in what must be done to support loose assets in the historically standard path for Bethesda games, so the "My Games" path should NOT be used at all, IMO.

Link to comment
Share on other sites

20 minutes ago, z929669 said:

However, your B) findings highlighted make little sense to me. Are you saying that if a custom strings file (or custom ANYTHING) exists in ...

..\Documents\My Games\Starfield\Data

... the game will not recognize ANY custom files in ...

..\Steam\steamapps\common\Starfield\Data

... ?

 

Essentially so, yes. If...

..\Documents\My Games\Starfield\Data\Strings

...exists, for example, then...

..\Steam\steamapps\common\Starfield\Data\Strings

...will be completely ignored. However, if you then also have something in...

..\Steam\steamapps\common\Starfield\Data\Interface

...that'll function, because no Interface folder exists in My Games to overwrite it.

EDIT: This assumes an otherwise-untouched setup, of course. Basically, if ..\Data\ABC in My Games and ..\Data\ABC in Root coexist, My Games will always overwrite Root. ..\Data\ABC in My Games and ..\Data\XYZ can coexist fine--that's why you can have Textures in My Games and Interface or Strings or whatever in Root, as you are forced to do currently. If Bethesda stored the MOTD file in Root instead, we wouldn't have this problem at all. But because it's stuck in My Games\Starfield\Data\Textures\Motd_Media, all Textures must also go there to function, as that copy of the Textures folder is overwriting anything you might place in Root.

Edited by Sithishade
Link to comment
Share on other sites

1 minute ago, TechAngel85 said:

@z929669You are free to correct the OP. This is all new and I was posting as I was reading and gathering information. Then I worked for 8hrs with limited connection to Discord only. I haven't had time. :thumbsup: Please feel free.

OK, thanks ... I will do so once we have more clarification if you don't beat me to it. I just think the whole situation is unnecessarily confusing, complex, and ambiguous ... not at all conducive to "a modders paradise" as Todd assumes. All due to MS being in the mix and requiring support for their ancillary crap that is NOT conducive to modding this game. It's a broken tractor trailer stuck in the driveway.

Link to comment
Share on other sites

Game has sResourceDataDirsFinal=STRINGS\ as default. Basically how this worked for Fallout 4 was that any files placed in the directory, data\strings\, would automatically overwrite the game ba2 files. In the early days, we would fill the sResourceDataDirsFinal with all the folder types we wanted to override in the game data directory, so, we basically copied across the sResourcePrefixList, which includes the names for all the different file folders (e.g., Textures\, Meshes\, etc.) that we would want to overwrite the ba2 file archives.

It was later discovered that this wasn't ideal, as it caused long loading times IIRC. So we fixed that by enabling bInvalidateOlderFiles archive invalidation and setting the sResourceDataDirsFinal to blank. This was much faster. This is the method we have deployed to everyone for Fallout 4, and now Starfield.

So what is happening now is that the game can only support loading file folders from a single location, be it My Games\Starfield\Data\Textures, or steamapps\common\Starfield\Data\Textures. Each individual directory as is valid via the sResourcePrefixList can only be in one or the other, and the My Games location overrides the game install location.

Hopefully that helps a bit. For now, I'd recommend waiting to see what the people developing the respective mod managers decide, as they ultimately will have to provide a method to work around the issue.

Link to comment
Share on other sites

12 hours ago, Sithishade said:

EDIT: This assumes an otherwise-untouched setup, of course. Basically, if ..\Data\ABC in My Games and ..\Data\ABC in Root coexist, My Games will always overwrite Root. ..\Data\ABC in My Games and ..\Data\XYZ can coexist fine--that's why you can have Textures in My Games and Interface or Strings or whatever in Root, as you are forced to do currently. If Bethesda stored the MOTD file in Root instead, we wouldn't have this problem at all. But because it's stuck in My Games\Starfield\Data\Textures\Motd_Media, all Textures must also go there to function, as that copy of the Textures folder is overwriting anything you might place in Root.

This is Microsoft's mandated implementation, I assume. Thanks MS.

11 hours ago, DoubleYou said:

Game has sResourceDataDirsFinal=STRINGS\ as default. Basically how this worked for Fallout 4 was that any files placed in the directory, data\strings\, would automatically overwrite the game ba2 files. In the early days, we would fill the sResourceDataDirsFinal with all the folder types we wanted to override in the game data directory, so, we basically copied across the sResourcePrefixList, which includes the names for all the different file folders (e.g., Textures\, Meshes\, etc.) that we would want to overwrite the ba2 file archives.

It was later discovered that this wasn't ideal, as it caused long loading times IIRC. So we fixed that by enabling bInvalidateOlderFiles archive invalidation and setting the sResourceDataDirsFinal to blank. This was much faster. This is the method we have deployed to everyone for Fallout 4, and now Starfield.

So what is happening now is that the game can only support loading file folders from a single location, be it My Games\Starfield\Data\Textures, or steamapps\common\Starfield\Data\Textures. Each individual directory as is valid via the sResourcePrefixList can only be in one or the other, and the My Games location overrides the game install location.

Hopefully that helps a bit. For now, I'd recommend waiting to see what the people developing the respective mod managers decide, as they ultimately will have to provide a method to work around the issue.

Thanks.

So put simply, forgetting the path variants "..\Documents\My Games" (bad) versus "..\Steam\steamapps\common\Starfield" (good), the subfolders trigger the conflicts between the two 'root' paths:

  • ..\Textures\
  • ..\Meshes\
  • ..\Strings\
  • etc.

If the bad location has one of these subfolders, the same subfolder in the good location is ignored (as are its contents), so each subfolder represents an independent conflict with respect to underlying loose assets, and both locations will override BA2 archived assets.

Priority

  1. ..\Documents\My Games\Data\{folder}\* (bad, default)
  2. ..\Steam\steamapps\common\Starfield\Data\{folder}\* (good, alternate)
  3. ..\Steam\steamapps\common\Starfield\Data\*.ba2 (default fallback)

Does this reflect what we know ATM?

 

Side note: I just checked the BA2 archives, and divided the largest by 1024. This gives a decimal just shy of 4096, so I'm guessing max size of a BA2 archive is 4096 * 1024 = 4,194,304 Kb.

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...

Important Information

By using this site, you agree to our Guidelines, Privacy Policy, and Terms of Use.