Files
Commonwealth-Online-Public/launch-two-fallout4.bat
T
2026-05-31 20:41:03 +12:00

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