Gerador de Start.bat DayZ
Monta o start.bat de servidor DayZ com auto-restart, mods, server-mods, ignore-mods e ASCII Tecplay. Pra rodar local (Steam) ou em servidor dedicado Windows.
Sobre o .bat e como usar
1. Preencha o form com a config do seu servidor (path, porta, mods, flags).
2. Baixe o .bat gerado e coloque na pasta do DayZServer (ou em qualquer pasta, o caminho do servidor é absoluto).
3. Dois cliques no .bat → servidor sobe e auto-reinicia no intervalo configurado.
💡 O chcp 65001 faz o ASCII Tecplay aparecer certinho no cmd. Se você não quer ASCII, desliga o toggle e o chcp some também.
Preview do .bat
@echo off
:start
REM ============================================================
REM Servidor DayZ - Launcher gerado pela Tecplay
REM https://tecplay.inf.br/ferramentas/dayz-start-bat
REM ============================================================
REM Codepage UTF-8 (necessário pra ASCII abaixo aparecer certo)
chcp 65001 >nul
echo.
echo ████████╗███████╗ ██████╗██████╗ ██╗ █████╗ ██╗ ██╗
echo ╚══██╔══╝██╔════╝██╔════╝██╔══██╗██║ ██╔══██╗╚██╗ ██╔╝
echo ██║ █████╗ ██║ ██████╔╝██║ ███████║ ╚████╔╝
echo ██║ ██╔══╝ ██║ ██╔═══╝ ██║ ██╔══██║ ╚██╔╝
echo ██║ ███████╗╚██████╗██║ ███████╗██║ ██║ ██║
echo ╚═╝ ╚══════╝ ╚═════╝╚═╝ ╚══════╝╚═╝ ╚═╝ ╚═╝
echo.
echo Servidor DayZ - Tecplay
echo https://tecplay.inf.br
echo.
REM --- Identidade do servidor ---
set "serverName=Meu Servidor DayZ"
set "serverLabel=Meu Servidor DayZ"
title %serverLabel% (Auto-restart)
REM --- Caminhos & rede ---
set "serverLocation=C:\Program Files (x86)\Steam\steamapps\common\DayZServer"
set "serverPort=2302"
set "serverConfig=serverDZ.cfg"
set "serverProfile=profiles"
set "serverCPU=4"
REM --- Inicia o servidor ---
cd /d "%serverLocation%"
echo (%time%) Iniciando %serverLabel%...
REM --- Catalogo de mods server-side (token normalizado: minusculo, sem @ - _ . e espaco) ---
set "SRVLIST=;2464526692;gamelabs;2276010135;dayzeditorloader;editorloader;2482312670;spawnerbubaku;"
set "CFLIST=;cf;1559212036;communityframework;communityframeworkcf;"
REM --- Modo Facil: detecta os mods da pasta sozinho (so jogue a pasta @Mod aqui) ---
set "cfmods="
set "mods="
set "serverMods="
for /d %%d in (@*) do call :ADDMOD "%%d"
REM @CF (e dependencias base) vao na FRENTE da lista de cliente.
if defined cfmods set "mods=%cfmods%%mods%"
if defined mods set "mods=%mods:~0,-1%"
if defined serverMods set "serverMods=%serverMods:~0,-1%"
set "MODARG="
set "SRVARG="
if defined mods set MODARG="-mod=%mods%"
if defined serverMods set SRVARG="-serverMod=%serverMods%"
if defined mods (echo Mods: %mods%) else (echo Sem mods - subindo VANILLA.)
if defined serverMods echo Server-side: %serverMods%
REM --- Copia as chaves .bikey de cada mod pra keys\ (sem isso o player e' kickado por assinatura) ---
if not exist "keys" mkdir "keys"
REM Desce em QUALQUER subpasta do mod: pega keys\ Keys\ Key\ key\ e key em subpasta.
for /d %%d in (@*) do call :COPYKEYS "%%d"
REM --- Sobe o servidor em SEGUNDO PLANO no mesmo console (start /b), pro .bat continuar ouvindo tecla ---
start /b "" "DayZServer_x64.exe" ^
-config=%serverConfig% ^
%MODARG% ^
%SRVARG% ^
-port=%serverPort% ^
-profiles=%serverProfile% ^
-cpuCount=%serverCPU% ^
-dologs ^
-adminlog ^
-netlog ^
-freezecheck
REM --- Descobre o PID DESTE servidor pela porta (taskkill por nome mataria os outros da maquina) ---
set "SRVPID="
set "_pidfile=%TEMP%\tecz_srvpid_%serverPort%.txt"
timeout /t 3 /nobreak >nul
powershell -NoProfile -Command "Get-CimInstance Win32_Process | Where-Object { $_.Name -eq 'DayZServer_x64.exe' -and $_.CommandLine -like '*-port=%serverPort%*' } | Select-Object -First 1 -ExpandProperty ProcessId" > "%_pidfile%" 2>nul
if exist "%_pidfile%" set /p SRVPID=<"%_pidfile%"
del "%_pidfile%" >nul 2>&1
if not defined SRVPID echo Nao consegui achar o PID - a tecla S nao vai derrubar. Feche no X.
if defined SRVPID echo Servidor no ar. PID %SRVPID%
REM --- Vigia: a cada 3s confere se o servidor caiu; enquanto isso ouve a tecla S ---
echo.
echo Aperte a tecla S para DERRUBAR o servidor agora.
echo Para encerrar tudo de uma vez, feche esta janela no botao X do canto.
:vigia
if not defined SRVPID goto esperatecla
tasklist /fi "PID eq %SRVPID%" /nh 2>nul | find "%SRVPID%" >nul
if errorlevel 1 goto caiu
:esperatecla
REM D = default do timeout (so volta a vigiar). S = derrubar agora.
choice /C SD /N /T 3 /D D >nul
if errorlevel 2 goto vigia
:derrubar
echo Derrubando o servidor...
if defined SRVPID taskkill /PID %SRVPID% /T /F >nul 2>&1
REM parada DELIBERADA -> o padrao do timeout e' SAIR.
set "DEF=S"
goto perguntar
:caiu
echo O servidor caiu sozinho.
REM QUEDA -> o padrao do timeout e' REINICIAR (madrugada sem ninguem).
set "DEF=R"
goto perguntar
:perguntar
REM --- Servidor saiu. Pergunta o que fazer, com timeout (ninguem responde = reinicia) ---
echo.
choice /C RS /N /T 10 /D %DEF% /M " Tecla R = subir de novo Tecla S = sair (10s): "
if errorlevel 2 goto encerrar
goto start
:encerrar
echo Encerrado pelo operador.
timeout /t 3 /nobreak >nul
goto :EOF
:COPYKEYS
for /r "%~1" %%k in (*.bikey) do copy /Y "%%k" keys >nul 2>&1
goto :EOF
:ADDMOD
set "_d=%~1"
REM normaliza o nome igual ao catalogo: tira @ - _ . e espaco
set "_t=%_d:@=%"
set "_t=%_t:-=%"
set "_t=%_t:_=%"
set "_t=%_t:.=%"
set "_t=%_t: =%"
echo(%SRVLIST%| findstr /I /C:";%_t%;" >nul
if not errorlevel 1 (
set "serverMods=%serverMods%%_d%;"
goto :EOF
)
echo(%CFLIST%| findstr /I /C:";%_t%;" >nul
if not errorlevel 1 (
set "cfmods=%cfmods%%_d%;"
goto :EOF
)
set "mods=%mods%%_d%;"
goto :EOF
Codificado em UTF-8 com BOM (necessário pro ASCII renderizar)
Achou útil? Encontrou bug?
Manda feedback que a Tecplay lê tudo e prioriza melhorias.
Feito pela Tecplay
