-
-
Save wallopthecat/09b261a423cf67758e8790055e5a0f72 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
@echo off | |
COLOR 0B | |
TITLE Arma 3 Server Auto Restarter | |
SETLOCAL EnableExtensions enabledelayedexpansion | |
set EXE=arma3server_x64.exe | |
set /A restartCounter=0 | |
rem Change this to the amount of Minutes you want the server to restart each time. | |
Set minutesToRestart=240 | |
goto SelectServerType | |
:SelectServerType | |
cls | |
echo Arma 3 Server Launcher. | |
echo. | |
echo 1 - Default Server | |
echo. | |
set /P mod=Select Server Number: | |
if "%mod%"=="1" goto SetRestartTime | |
goto Server_Error | |
:Server_Error | |
cls | |
echo. | |
echo Invalid Server Code, Press Any Key To Enter Another One... | |
pause > NUL | |
goto SelectServerType | |
:SetRestartTime | |
cls | |
for /F "tokens=1-3 delims=:." %%a in ("%time%") do ( | |
set timeHour=%%a | |
set timeMinute=%%b | |
set timeSeconds=%%c | |
) | |
set cTime=%timeHour%:%timeMinute%:%timeSeconds% | |
set /A newTime=timeHour*60 + timeMinute + %minutesToRestart% | |
set /A timeHour=newTime/60, timeMinute=newTime%%60 | |
if %timeHour% gtr 23 set timeHour=0 | |
if %timeHour% lss 10 set timeHour=0%timeHour% | |
if %timeMinute% lss 10 set timeMinute=0%timeMinute% | |
set restartTime=%timeHour%:%timeMinute%:%timeSeconds% | |
echo The server was started at %cTime% and will auto restart at %restartTime%. | |
goto StartArma3Server | |
:StartArma3Server | |
echo Starting Arma 3 Server, The server has been restarted %restartCounter% times. | |
if "%mod%"=="1" start /b arma3server_x64.exe -port=2302 "-config=server\server.cfg" "-cfg=server\basic.cfg" -world=Altis -noSound -noSplash -noPause -loadMissionToMemory -autoInit -enableHT | |
timeout 10 >nul | |
goto CheckServerRunning | |
:CheckServerRunning | |
FOR /F %%x IN ('tasklist /NH /FI "IMAGENAME eq %EXE%"') DO IF %%x == %EXE% goto ServerFound | |
goto ServerNotFound | |
:ServerFound | |
for /F "tokens=1-3 delims=:." %%a in ("%time%") do ( | |
set timeHour=%%a | |
set timeMinute=%%b | |
set timeSeconds=%%c | |
) | |
set /A newTime=timeHour*60 + timeMinute | |
set /A timeHour=newTime/60, timeMinute=newTime%%60 | |
if %timeHour% gtr 23 set timeHour=0 | |
if %timeHour% lss 10 set timeHour=0%timeHour% | |
if %timeMinute% lss 10 set timeMinute=0%timeMinute% | |
set theCurrentTime=%timeHour%:%timeMinute%:%timeSeconds% | |
if %restartTime% LSS %theCurrentTime% goto KillRestartServer | |
timeout 10 >nul | |
goto CheckServerRunning | |
:ServerNotFound | |
echo server not found | |
timeout 5 >nul | |
goto SetRestartTime | |
:KillRestartServer | |
set /A restartCounter+=1 | |
echo Please wait while the server is restarted. | |
timeout 1 >nul | |
taskkill /F /IM %EXE% >nul | |
timeout 15 >nul | |
goto SetRestartTime |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment