75 lines
1.9 KiB
Batchfile
75 lines
1.9 KiB
Batchfile
@echo off
|
|
setlocal EnableExtensions
|
|
|
|
set "F4SE_DIR=D:\SteamLibrary\steamapps\common\Fallout 4 377160"
|
|
set "F4SE_EXE=%F4SE_DIR%\f4se_loader.exe"
|
|
set "SANDBOXIE_DIR=C:\Program Files\Sandboxie-Plus"
|
|
set "SANDBOXIE_START=%SANDBOXIE_DIR%\Start.exe"
|
|
set "SANDBOXIE_INI=%SANDBOXIE_DIR%\SbieIni.exe"
|
|
set "SANDBOX_NAME=Fallout4Client2"
|
|
set "START_DELAY_SECONDS=8"
|
|
|
|
if not exist "%F4SE_EXE%" (
|
|
echo Could not find f4se_loader.exe at:
|
|
echo "%F4SE_EXE%"
|
|
echo.
|
|
echo Update F4SE_DIR in this script if Fallout 4 was moved.
|
|
pause
|
|
exit /b 1
|
|
)
|
|
|
|
if not exist "%SANDBOXIE_START%" (
|
|
echo Fallout 4 allows only one normal instance at a time.
|
|
echo Install Sandboxie-Plus, then run this script again.
|
|
echo.
|
|
echo Expected Sandboxie launcher:
|
|
echo "%SANDBOXIE_START%"
|
|
pause
|
|
exit /b 1
|
|
)
|
|
|
|
call :EnsureSandbox
|
|
if errorlevel 1 (
|
|
echo Failed to create or configure sandbox "%SANDBOX_NAME%".
|
|
pause
|
|
exit /b 1
|
|
)
|
|
|
|
echo Starting Fallout 4 instance 1...
|
|
start "Fallout 4 Instance 1" /D "%F4SE_DIR%" "%F4SE_EXE%"
|
|
|
|
echo Waiting %START_DELAY_SECONDS% seconds before starting instance 2...
|
|
timeout /t %START_DELAY_SECONDS% /nobreak >nul
|
|
|
|
echo Starting Fallout 4 instance 2 in Sandboxie box "%SANDBOX_NAME%"...
|
|
pushd "%F4SE_DIR%"
|
|
"%SANDBOXIE_START%" /box:%SANDBOX_NAME% "%F4SE_EXE%"
|
|
set "LAUNCH_ERROR=%ERRORLEVEL%"
|
|
popd
|
|
|
|
if not "%LAUNCH_ERROR%"=="0" (
|
|
echo Sandboxie returned error code %LAUNCH_ERROR%.
|
|
pause
|
|
exit /b %LAUNCH_ERROR%
|
|
)
|
|
|
|
echo Done.
|
|
endlocal
|
|
exit /b 0
|
|
|
|
:EnsureSandbox
|
|
"%SANDBOXIE_INI%" query %SANDBOX_NAME% Enabled 2>nul | findstr /i "y" >nul
|
|
if not errorlevel 1 goto :ReloadSandboxConfig
|
|
|
|
echo Creating Sandboxie box "%SANDBOX_NAME%"...
|
|
"%SANDBOXIE_INI%" set %SANBOX_NAME% Enabled y
|
|
if errorlevel 1 exit /b 1
|
|
"%SANDBOXIE_INI%" set %SANBOX_NAME% ConfigLevel 7
|
|
if errorlevel 1 exit /b 1
|
|
"%SANDBOXIE_INI%" append %SANBOX_NAME% OpenFilePath "%F4SE_DIR%\*"
|
|
if errorlevel 1 exit /b 1
|
|
|
|
:ReloadSandboxConfig
|
|
"%SANDBOXIE_START%" /reload >nul
|
|
exit /b 0
|