Jump to content
Sign in to follow this  
lenymo

Arma 3 auto restarter bat file

Recommended Posts

So I am trying to get my auto restart bat file working properly and it is working...in a sense. It is able to reload BEC if it crashes, however the server does not seem to be running the config file correctly. I am using a bat file provided by Ahoy Worlds since it already has the BEC restarter embedded as well. Any help that can be provided would be appreciated.

When the server starts up, it is called mokey, the name of one of our admins. I did notice that the original file provided had a -name and -profile option that I removed from the startup parameters.

@echo off
setlocal

REM -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
REM File:			A3_Restarter.bat
REM Version:		V1.5
REM Author:			Unknown
REM Contributers:	Kamaradski
REM
REM Arma3 Server Starter & Restarter script edited by Ahoyworld.co.uk
REM
REM -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-



REM =-=-=-=-=-=-=-=-=-=-=-=-=-=- RESTARTER CONFIGURATION -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-

REM servername = Name of your server (display purposes & logfile naming)
REM arma3exe = Name of your arma server executable
REM serverpath = Path to your server
REM serverstart = Startup parameters for your server
REM Serverport = Port of your server (display purposes only)
REM Logpath = Path of the logfiles

SET "servername=Fractured_Stratis"
SET "arma3exe=arma3server.exe"
SET "serverpath=C:\Program Files (x86)\Steam\steamapps\common\Arma 3"
SET "serverstart= -noPause -noSound -nosplash -config=C:\Program Files (x86)\Steam\steamapps\common\Arma 3\TADST\default\TADST_config.cfg -cfg=C:\Program Files (x86)\Steam\steamapps\common\Arma 3\TADST\default\TADST_basic.cfg -world=stratis -port=2314 -profile=C:\Program Files (x86)\Steam\steamapps\common\Arma 3\TADST\default\Users\default\default.arma3profile "
SET "serverport=2314"
SET "logpath=C:\Games\Tools\A3_Scripts\log


REM =-=-=-=-=-=-=-=-=-=-=-=-=-=- BEC CONFIGURATION -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
REM becpath = Path to BEC installation
REM serverbec = Bec executable for this server (make different copies for each server you run)
REM serverbeccfg = Name of your BEC configuration for this server

SET "becpath=C:\Program Files (x86)\Steam\steamapps\common\Arma 3\TADST\default\BEC"
SET "serverbec=Bec.exe"
SET "serverbeccfg=Config.cfg"


REM =-=-=-=-=-=-=-=-=-=-=-=-=-=- UNLOCKER CONFIGURATION -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
REM USEUNLOCK = YES to enable the use of the UNlocker, NO to disable us of the UNlocker
REM UNLCKP = Path to unlock.bat

SET "USEUNLOCK=NO"
SET "UNLCKP=C:\Games\Tools\MPMissions"

REM =-=-=-=-=-=-=-=-=-=-=-=-=- DO NOT EDIT BELOW HERE -=-=-=-=-=-=-=-=-=-=-=-=-=-

:runonce
IF NOT EXIST %logpath%\Restarter_%servername%.log ( 
echo. 2>%logpath%\Restarter_%servername%.log 
echo %date% - %time%  -  Created Logfile "Restarter_%servername%.log"
echo %date% - %time%  -  Created Logfile >> %logpath%\Restarter_%servername%.log 2>&1
echo.
echo. >> %logpath%\Restarter_%servername%.log
)


:check
tasklist | findstr /i %serverbec% >NUL 2>>%logpath%\Restarter_%servername%.log
if %errorlevel%==1 goto startserver
ping 127.0.0.1 -n 5 -w 1000 >NUL 2>>%logpath%\Restarter_%servername%.log
goto check



:startserver
ping %useless% -n 5 -w 1000 >NUL 2>>%logpath%\Restarter_%servername%.log
if defined PIDserver echo %date% - %time%  -  Kill %servername% Server... >> %logpath%\Restarter_%servername%.log 2>&1
if defined PIDserver taskkill /f /pid %PIDserver% >> %logpath%\Restarter_%servername%.log 2>&1
if defined PIDserver set "PIDserver=" 
ping 127.0.0.1 -n 1 -w 1000 >NUL 2>>%logpath%\Restarter_%servername%.log
for /f "delims=" %%l in ('for /f "skip=3 tokens=2" %%p in ^('tasklist /fi "imagename eq %arma3exe%"'^) do @^<NUL set /p "=%%p "') do (
 set "PIDs=%%l" 
)

echo %date% - %time%  -  Starting: %servername% on Port: %serverport% ...
echo %date% - %time%  -  Starting: %servername% on Port: %serverport% ... >> %logpath%\Restarter_%servername%.log 2>&1
cd /d %serverpath%
start /min .\%arma3exe% %serverstart%
ping 127.0.0.1 -n 1 -w 1000 >NUL 2>>%logpath%\Restarter_%servername%.log

for /f "skip=3 tokens=2" %%p in ('tasklist /fi "imagename eq %arma3exe%"') do (
 echo %PIDs% | find "%%p" > NUL || if not defined PIDserver set "PIDserver=%%p"
)

if defined PIDserver echo %date% - %time%  -  %servername% started with PID: %PIDserver% >> %logpath%\Restarter_%servername%.log 2>&1
ping 127.0.0.1 -n 60 -w 1000 >NUL 2>>%logpath%\Restarter_%servername%.log
echo %date% - %time%  -  Starting BEC for %servername% Server...
echo %date% - %time%  -  Starting BEC for %servername% Server... >> %logpath%\Restarter_%servername%.log 2>&1
cd /d %becpath%
start /min "%becpath%" "%serverbec%" -f %serverbeccfg%


if /i %USEUNLOCK% == YES (
ping 127.0.0.1 -n 10 -w 1000 >NUL 2>>%logpath%\Restarter_%servername%.log
cd "%UNLCKP%"
start /wait "Unlocking MPMissions" "unlock.bat"
echo %date% - %time%  -  Unlocker Script executed... >> %logpath%\Restarter_%servername%.log 2>&1
echo %date% - %time%  -  Unlocker Script executed...
)

echo %date% - %time%  -  All services started.
echo %date% - %time%  -  All services started. >> %logpath%\Restarter_%servername%.log 2>&1
echo.
echo.
echo. >> %logpath%\Restarter_%servername%.log

goto check

Share this post


Link to post
Share on other sites

Please sign in to comment

You will be able to leave a comment after signing in



Sign In Now
Sign in to follow this  

×