1 items

File information

Last updated

Original upload

Created by

TheAncientOneNM

Uploaded by

TheAncientOneNM

Virus scan

Safe to use

Tags for this mod

About this mod

Modfix creates a Junction or Symlink in Windows from Documents\My Games\Starfield\Data\ location to the Starfield_Install_Folder\Data\ location.
(Supports those with OneDrive paths as well)

Share
Permissions and credits
Changelogs
Donations
See Videos section for a tutorial and overview of how it works

  • Benefits of this Fix vs other fixes:
  • Mods, Photos, MOTD, and Photo Gallery all work as normal
  • No need to disable MOTD
  • No loaders or other "plugins" required or needed
  • Cleaner fix that allows everything to work in perfect harmony
  • Apply fix and forget, no need to update fix later
  • Updates to game should not break this fix
  • Easy download, extract command from zip, double click to apply the fix, done
  • No messing around with blocking permissions, tinkering with settings etc..
  • No need to worry about going into Documents location for anything except for ini tweaks or run commands
  • Compatibility

Known Issue:
OneDrive forces backups of Documents when Documents is enabled in it. This in turn will cause your SF\Data folder to be included. You can disable Documents in OneDrive. Unfortunately, OneDrive does not allow exclusion of subfolders within this location. One workaround posted by qwertiks is stickied in the Posts section. For ease of use, I created a command file to help with this: See Optional files download.

See DOCS tab above for Readme/Instructions

*** Works for GamePass and Windows Store versions too ***
Your path to game install will be different, but Modfix will work the same as long as you place it with Starfield.exe

About:
This fix 1 punches Starfield data issues right into Oblivion...

Wait what?!?! But, if MO2 etc.. is working fine for you - no need for this fix? Of course, it isn't going to hurt using it either.

Modfix is simple in that is creates a Junction or Symlink from Documents\My Games\Starfield\Data\ to Starfield_Install_Folder\Data\ redirecting the game to load files from the main game location rather than from Documents. This makes is easier for you to install mods, especially through mod managers that install to the game folder.

If you don't already have a StarfieldCustom.ini then this Modfix will also create it for you. Don't worry, if you already have one this will not overwrite it.

Q: Why use your fix rather than X fix?
A: It's about options and preference. Use whatever fix method you want. No one is forcing you to use this and it has no negative impact on the game.
    Just don't be that person that wants to spam my post section about how it is not needed and to use "x" instead.That does not
    help players who want to use this method.

Q: If the game gets updated, do I need to re-apply this fix?
A: No, the fix should remain valid even on a game update.

Q: Can't I just disable motd?
A: If that is your preferred method and it works for you then sure.

Q: Can I still take photos and view them in-game like normal?
A: Yes

Q: My photos are not showing in Photo Gallery or they appear blacked out but they show in the Photos folder. How do I fix?
A: Open StarfieldCustom.ini and remove "sPhotoModeFolder=Photos" under the [Display] section.
     ~ Please also note, you may need to move your existing photos to <GamePath>\Data\Textures\Photos

Q: Do I need to update when the Modfix version is updated?
A: No - Most of the changes are pathing that may have prevented some from installing the fix because of different ways the OS writes out path information (especially if you moved your profile to a different drive). If it worked for you already, You're good to go, no need to touch it again until you either reinstall your OS or if you delete the My Games\Starfield folder or if you delete the My Games\Starfield\Data link)

Q: Do I still need StarfieldCustom.ini with the recommended bInvalidateOlderFiles and sResourceDataDirsFinal settings?
A: Absolutely, Yes! this does not change that requirement. This is for a very specific issue with the game not loading mods even after that fix is applied. If applied StarfieldCustom.ini edits and mods are still not loading then chances are this fix will help you to a less stressful experience.

Q: Where do I install mods after this fix is applied?
A: To your Starfield_Install_Path\Data\ folder, the same as other Bethesda games such as Skyrim and Fallout 4 etc..

Q: I get "You do not have sufficient privilege to perform this operation." when I run Modfix.cmd
     -or- Please run Modfix as admin and try again
A: Right-Click Modfix.cmd -> Run as Administator

Q: Will this overwrite my existing StarfieldCustom.ini
A: No, it will only create one with proper data if it does not exist already

Q: Will I lose my existing Documents\My Games\Starfield\Data folder?
A: No, If you followed instructions you would have moved this already, however, Modfix will rename it to Data_TIMESTAMP where timestamp is the datetime of the fix applied - Follow instructions of Modfix once Modfix is complete. If you closed Modfix already, simply move the files/folders from inside the Data_Backup folder to your Game_Install_Folder\Data\ location. (Example: C:\Steam\steamapps\common\Starfield\Data\)

Q: I get "Starfield.exe not found. Please make sure you placed Modfix in the correct location and try again..." ?
A: See Docs, specifically Steps 4 and 5

Q: Can't you make Modfix move my files for me?
A: In short, Yes. I didn't because in the event you have mods there already, I will leave it 100% up to you if you overwrite existing files. This way, you cannot blame me for messing up your mods.

Q: I am getting "Access is denied. Cannot create a file when that file already exists."
A: Please rename the Data folder in Documents\My Games\Starfield to something else (ex. Data_Backup) (Thanks Veloxio!)
    The Modfix should have done that, but if it failed you can manually rename it.

Q: I am getting "The system cannot find the path specified" like 4 times?
A: This has to do with directories not existing or being in a different location (Documents\Starfield) If you would, send me a Private Message and let me know (by pasting the path) where you would find your StarfieldPrefs.ini so I can try to fix it in an update.

Q: OneDrive is backing up my \Data folder, Help!
A: See optional files

Q: Can I make the link myself?
A: Yes, you would just need to adjust the paths to match yours but simply run the command (with fixed pathing for your PC / game locations) from a command line.
mklink /J "C:\Users\Crypton\Documents\My Games\Starfield\Data" "C:\Steam\steamapps\common\Starfield\Data"

Q: Everything went good but my Run Batch file commands no longer load?
A: Move your run command files to main game folder (next to Starfield.exe)


Special Thanks: (in no particular order)
greshnik369
DeRaze
Veloxio
jrljj
AVladimir1994
smack332
Manniala
qwertiks (for the OneDrive Cloud Backup resolution)

Thank-You sincerely for helping with some oddities such as OneDrive (since I disable it on clean installs) and for taking time out to help me isolate and squash some issues on different systems. If I missed your name, just shoot me a Private Message: It was not done intentionally!

If you are hesitant in downloading Windows .cmd files but want to see if this works then here is the code as written in the Modfix.cmd file. You're welcome to copy / paste into your own cmd file and try or just view so you can see there is nothing malicious. Of course, you can download and edit the file with any text editor to see the contents as well.

(Modfix.cmd)

@echo off
TITLE=Starfield Modfix by Crypton
cd /D "%~dp0"
set modfixver=1.8
set "modfixtemp=%TEMP%\modfix.tmp"
cls
echo Please wait ...
echo.
set mfhh=%time:~0,2%
set mfmm=%time:~3,2%
set mfss=%time:~6,2%
if %mfhh% lss 10 (set mfhh=0%time:~1,1%)
for /F %%A IN ('WMIC OS GET LocalDateTime ^| FINDSTR \.') DO @SET B=%%A
set timestamp=%B:~0,4%-%B:~4,2%-%B:~6,2%-%mfhh%%mfmm%%mfss%
set linktype=/J
rem set if we run Modfix as admin
net session >nul 2>&1
if %errorLevel% EQU 0 (
set linktype=/D
)
rem Just setting a value temporarily to ensure we have a variable declared
set mfhomepath=%HOMEDRIVE%%HOMEPATH%
for /F "tokens=2* skip=2" %%a in ('reg query "HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\User Shell Folders" /v "Personal"') do set mfhomepath=%%b
echo %mfhomepath%>"%modfixtemp%"
findstr /i "USERPROFILE" "%modfixtemp%"
if %ERRORLEVEL% EQU 0 (
if exist "%USERPROFILE%\OneDrive\Documents\My Games\Starfield" (
set "modfixdocs=%USERPROFILE%\OneDrive\Documents\My Games\Starfield"
) else (
set "modfixdocs=%USERPROFILE%\Documents\My Games\Starfield"
)
) else (
set "modfixdocs=%mfhomepath%\My Games\Starfield"
)
set madebackup=0
if NOT exist "%cd%\Starfield.exe" goto exitmodfix
if NOT exist "%modfixdocs%" goto exitmodfix2
if exist "%modfixdocs%\Data" (
fsutil reparsepoint query "%modfixdocs%\Data">"%modfixtemp%"
find /i "Mount Point" "%modfixtemp%" && goto alreadyfixed
find /i "Symbolic Link" "%modfixtemp%" && goto alreadyfixed
goto backup
)
rem We could end up with an unknown error if documents path does not exist...
goto makelink
:alreadyfixed
del /Q "%TEMP%\modfix.tmp"
cls
echo Modfix v%modfixver%
echo.
echo It appears your mods are already fixed, no need to run this again...
echo.
goto exit
:backup
del /Q "%TEMP%\modfix.tmp"
cls
ren "%modfixdocs%\Data" "Data_%timestamp%"
set madebackup=1
goto makelink
:makelink
mklink %linktype% "%modfixdocs%\Data" "%cd%\Data"
echo.
goto complete
:complete
echo Modfix v%modfixver%
echo.
if NOT exist "%modfixdocs%\StarfieldCustom.ini" (
echo [Archive]>"%modfixdocs%\StarfieldCustom.ini"
echo bInvalidateOlderFiles=^1>>"%modfixdocs%\StarfieldCustom.ini"
echo sResourceDataDirsFinal=>>"%modfixdocs%\StarfieldCustom.ini"
echo Created: %modfixdocs%\StarfieldCustom.ini
echo.
)
echo Game Path: %cd%
echo Docs Path: %modfixdocs%
echo.
if %madebackup% EQU 1 (
echo Data folder in Documents renamed to:
echo  Data_%timestamp%
echo.
echo Please move the files found inside Data_%timestamp% to:
echo  %cd%\Data\
echo.
)
if not %ERRORLEVEL% EQU 0 (
echo There was an unknown error. Error Level: %ERRORLEVEL%
)
goto exit
:exitmodfix
echo Starfield.exe not found. Please make sure you placed Modfix in the correct location and try again...
echo.
set madebackup=
goto exit
:exitmodfix2
echo Have you run the game at least once to create the document folders?
echo If you haven't please do so that way paths and StarfieldPrefs.ini is created.
echo.
echo If you have, then please Private Message me the path where your StarfieldPrefs.ini
echo is found so I can fix it (ex. C:\Users\Crypton\Documents\My Games\Starfield)
echo.
goto exit
:alreadyfixed
echo It appears your mods are already fixed, no need to run this again...
goto exit
:exit
set madebackup=
set mfhh=
set mfmm=
set mfss=
set timestamp=
set mfhomepath=
set modfixdocs=
set linktype=
set modfixver=
set modfixtemp=
echo.
echo Press any key to exit Modfix
pause>nul
exit

Optional OneDrive File Extension Blocker (BlockFileSyncs.cmd)

@echo off
setlocal ENABLEDELAYEDEXPANSION
@title=OneDrive File Extension Blocker v1.0
cd /D "%~dp0"
set "blocklist=%~dp0\blocklist.txt"
cls
net file 1>nul 2>nul
if %errorLevel% == 0 (
  goto mainmenu
) else (
  goto noadm
)
:noadm
cls
echo This program requires admin: ^(Right Click -^> Run as Administrator^)
echo.
echo Type 1 to re-run this program as Admin
echo Type 2 to exit this program
echo.
set /p mainopt=Type option:
if "%mainopt%" == "1" goto rereunadm
if "%mainopt%" == "2" goto exitapp
goto :noadm
:rereunadm
cacls "%systemroot%\system32\config\system" 1>nul 2>&1 || (powershell start -verb runas "%0" & exit /b)
exit /b 0
:mainmenu
echo.
echo Main Menu
echo.
echo Type: 1 to add files to blocklist
echo Type: 2 to exit this program
echo.
set /p mainopt=Type option:
if "%mainopt%" == "1" call :add
if "%mainopt%" == "2" goto exitapp
goto :mainmenu
:add
(
  set /a linenum=1
  for /f "tokens=*" %%a in (!blocklist!) do (
    reg add "HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\OneDrive\EnableODIgnoreListFromGPO" /v !linenum! /t REG_SZ /d %%a /f
    set /a linenum=!linenum!+1
  )
  cls
  echo Added !linenum! file extensions to block from OneDrive Syncing.
  set linenum=
  goto mainmenu
)
:exitapp
set blocklist=
@exit

(blocklist.txt)

*.ba2
*.esm
*.bin
*.bk2
*.dds
*.dll
*.swf
*.gfx