Change Save Game Folder: Difference between revisions

No edit summary
Line 23: Line 23:
You can close and open different No Man's Sky installations and leave SmartSaveFolder running in the background the entire time.
You can close and open different No Man's Sky installations and leave SmartSaveFolder running in the background the entire time.


* [https://nomansskyretro.com/tools/SmartSaveFolder.zip Download SmartSaveFolder v1.02]
{{ExternalDownload
|title=Smart Save Folder
|version=v1.02
|file=https://nomansskyretro.com/archive/tools/SmartSaveFolder.zip
|filename=SmartSaveFolder.zip}}
 
* [https://github.com/qjimbo/smartsavefolder Source Code on GitHub (VS2010 C# Project) (MIT License)]
* [https://github.com/qjimbo/smartsavefolder Source Code on GitHub (VS2010 C# Project) (MIT License)]



Revision as of 14:25, 21 March 2023

Overview

By default, No Man's Sky stores Save Game data in C:\Users\<User>\AppData\Roaming\HelloGames\NMS (%appdata%\HelloGames\NMS) shared by all versions, which can cause conflicts and loss of data when switching between different versions of No Man's Sky.

SmartSaveFolder

SmartSaveFolder was created by Qjimbo and is an application that runs in the background and changes the Save Game Location of No Man's Sky to be a local SAVEGAMES subfolder next to each NMS.exe Executable.

This allows multiple versions of No Man's Sky to be installed with their own seperate Save Game data without using scripts or launchers, but does require admin permissions.

How to Use

Start the SmartSaveFolder.exe before you launch No Man's Sky.

You may receive an alert from Windows when launching as SmartSaveFolder requires administrator permissions to redirect the Save Data folder.

Start No Man's Sky. SaveSaveFolder will create a new SAVEGAMES subfolder in the same folder as the NMS.exe you are running for storing Save Game data.

So for example if you run C:\No Man's Sky_v1.381\Binaries\NMS.exe The save game folder will be C:\No Man's Sky_v1.381\Binaries\SAVEGAMES

If you want to copy some existing savegames to this folder you can click the Open Original Save Games Folder to view your original save games and Open Current Save Games Folder while No Man's Sky is running to view the new save games folder.

You can close and open different No Man's Sky installations and leave SmartSaveFolder running in the background the entire time.

Drive-download.png Download Smart Save Folder
File: SmartSaveFolder.zip
Version: v1.02

Launcher Bat Script

This method was created by EthanRDoesMC, and works by overriding the USERPROFILE environment variable which points to the C:\Users\<User> folder. This solution was based on an answer from SuperUser.com.

To use this method create a new .bat file in your No Man's Sky installation folder, for example C:\No Man's Sky_v1.381\Launcher.bat (NOTE: Make sure file extensions are visible).

Copy and paste the following into the bat file:

@ECHO OFF
REM -- source: https://superuser.com/questions/1226025/
REM -- modified by ethanrdoesmc, who knows nothing about the windows shell, for NMS
REM -- also see https://nomansskyretro.com for steam api issues if you're running older versions unpacked

REM -- Path to the directory of this script (make sure to remove ending slash)
set CURRENT_DIR=%~dp0
REM -- Great example from Strawberry Perl's portable shell launcher:
if not "" == "%CURRENT_DIR%" if #%CURRENT_DIR:~-1%# == #\# set CURRENT_DIR=%CURRENT_DIR:~0,-1%

REM -- OVERRIDE the user environment variable to point to a portable directory
set USERPROFILE=%CURRENT_DIR%\Data

REM -- Set NMS app ID, if unpacked
set SteamAppId=275850

REM -- Start the application
start "" /D"%CURRENT_DIR%\Binaries" "NMS.exe"

Simply double click your new .bat file to run No Man's Sky with the redirected save game folder. You can also modify your No Man's Sky shortcut to point to this bat file instead of NMS.exe for convenience.

Save games will be stored in a Data subfolder in the same folder structure in the C:\Users\<User> folder (%userprofile%), for example C:\No Man's Sky_v1.381\Data\AppData\Roaming\HelloGames\NMS\DefaultUser.