Serveur Privé — Étape 4/8
Script de lancement
.CMD
.CMD
Un fichier .cmd est un script Windows qui exécute automatiquement une série de commandes. Double-cliquer dessus suffit à tout lancer. C'est la méthode standard et la plus complète pour gérer un serveur DayZ.
Fichier .cmd : fichier texte avec l'extension .cmd. Windows l'exécute ligne par ligne comme des commandes. Aucune programmation requise — copier-coller et adapter quelques valeurs suffisent.
1
Créer le fichier .cmd
1
Créer un nouveau fichier texte
Dans le dossier DayZServer\, fais un clic droit dans un espace vide → Nouveau → Document texte.
2
Afficher les extensions de fichiers
Si tu ne vois pas l'extension .txt : dans l'Explorateur Windows → onglet Affichage → Extensions de noms de fichiers (cocher).
3
Renommer en .cmd et coller le script
Renomme le fichier en start_server.cmd. Clic droit → Modifier. Colle le script ci-dessous, adapte la section CONFIGURATION, sauvegarde.
2
Explication des paramètres de lancement
| Paramètre | Exemple | Rôle |
|---|---|---|
| -instanceId | 1 | ID de l'instance. Mettre 1 si un seul serveur sur la machine. |
| -config | serverDZ.cfg | Fichier de configuration. Ne pas modifier. |
| -port | 2302 | Port réseau du serveur. Défaut DayZ = 2302. |
| -profiles | profiles | Dossier de stockage des logs et données joueurs. |
| -dologs | — | Active la création de fichiers de logs détaillés. |
| -adminlog | — | Journalise les actions admin (kicks, bans, etc.). |
| -netlog | — | Journalise les événements réseau. Utile pour déboguer. |
| -freezecheck | — | Redémarre automatiquement si le serveur freeze. |
| -noFilePatching | — | Empêche les modifications de fichiers non signés. Sécurité. |
| -maxMem | 8192 | RAM max allouée en Mo. Minimum 4096 (4 Go). Recommandé 8192 (8 Go). |
| -cpuCount | 4 | Threads CPU alloués. Mettre la moitié de tes cœurs disponibles. |
| -limitFPS | 200 | FPS max du serveur. 60 stable, 200 pour exploiter le CPU. |
| -exThreads | 7 | Threads supplémentaires pour les scripts. 7 = valeur maximale recommandée. |
| -BEPath | battleye | Chemin BattlEye (anti-triche). Ne pas modifier. |
3
Script complet — Copier dans start_server.cmd
Script complet avec menu interactif, auto-restart, compteurs de restarts et crashs, logs horodatés, copie automatique des bikeys. Modifier uniquement la section CONFIGURATION.
start_server.cmd
@echo off
TITLE DayZ Server - Manager ULTRA PRO
COLOR 0A
MODE CON: COLS=100 LINES=40
:: ================================================================
:: DayZ Server - Script de lancement complet
:: Placer ce fichier dans le dossier DayZServer\
:: Modifier UNIQUEMENT la section CONFIGURATION ci-dessous
:: ================================================================
:: === CONFIGURATION — A MODIFIER ================================
SET "DayZServerPath=C:\Program Files (x86)\Steam\steamapps\common\DayZServer"
SET "WorkshopPath=C:\Program Files (x86)\Steam\steamapps\common\DayZ\!Workshop"
:: Mods clients — les joueurs doivent aussi les avoir
:: Exemple : SET "Modlist=-mod=%WorkshopPath%\@CF;%WorkshopPath%\@VPPAdminTools"
SET "Modlist="
:: Mods serveur uniquement — invisibles pour les joueurs
:: Exemple : SET "ServerMod=-servermod=%WorkshopPath%\@MonModServeur"
SET "ServerMod="
SET "MaxRAM=-maxMem=8192" :: RAM allouee en Mo (8192 = 8 Go recommande)
SET "CPUCount=-cpuCount=4" :: Threads CPU (moitie de tes coeurs)
SET "MaxFPS=-limitFPS=200" :: FPS max du serveur
SET "ExThreads=-exThreads=7" :: Threads supplementaires scripts (max = 7)
SET "ServerPort=2302" :: Port principal du serveur
SET "InstanceID=1" :: 1 si un seul serveur sur la machine
SET "ConfigFile=-config=serverDZ.cfg"
SET "BEPath=-BEPath=%DayZServerPath%\battleye"
SET "LogFile=%DayZServerPath%\server_manager.log"
SET "KeysDestination=%DayZServerPath%\Keys"
SET "RestartCount=0"
SET "CrashCount=0"
SET "RestartInterval=4" :: Heures entre chaque restart automatique
:: ================================================================
:MENU
cls
echo.
echo ========================================================
echo DayZ Server - PANEL MANAGER
echo ========================================================
echo.
echo [1] Demarrer le serveur (Mode Normal)
echo [2] Demarrer avec Auto-Restart (%RestartInterval%h)
echo [3] Arreter le serveur
echo [4] Redemarrer le serveur
echo [5] Voir les logs
echo [6] Nettoyer les vieux logs
echo [0] Quitter
echo.
echo ========================================================
echo Restarts: %RestartCount% ^| Crashes: %CrashCount%
echo ========================================================
echo.
SET /P choice=" Votre choix : "
IF "%choice%"=="1" GOTO START_NORMAL
IF "%choice%"=="2" GOTO START_AUTO_RESTART
IF "%choice%"=="3" GOTO STOP_SERVER
IF "%choice%"=="4" GOTO RESTART_SERVER
IF "%choice%"=="5" GOTO VIEW_LOGS
IF "%choice%"=="6" GOTO CLEAN_LOGS
IF "%choice%"=="0" EXIT
GOTO MENU
:START_NORMAL
cls
echo.
echo [%date% %time%] Verification du serveur...
CALL :LOG "Demarrage mode normal"
tasklist /FI "IMAGENAME eq DayZServer_x64.exe" 2>NUL | find /I /N "DayZServer_x64.exe">NUL
IF "%ERRORLEVEL%"=="0" (
echo [ERREUR] Le serveur est deja en cours d execution!
CALL :LOG "Tentative demarrage - serveur deja actif"
pause
GOTO MENU
)
CALL :COPY_KEYS
CALL :START_SERVER
echo.
echo [%date% %time%] Serveur demarre avec succes!
CALL :LOG "Serveur demarre avec succes"
timeout /t 3 >nul
GOTO MENU
:START_AUTO_RESTART
cls
CALL :LOG "Demarrage mode Auto-Restart (toutes les %RestartInterval%h)"
:LOOP_RESTART
cls
echo.
echo ========================================================
echo AUTO-RESTART ACTIF - Intervalle: %RestartInterval%h
echo ========================================================
echo Restarts: %RestartCount% ^| Crashes: %CrashCount%
echo ========================================================
echo.
tasklist /FI "IMAGENAME eq DayZServer_x64.exe" 2>NUL | find /I /N "DayZServer_x64.exe">NUL
IF NOT "%ERRORLEVEL%"=="0" (
echo [%date% %time%] Demarrage du serveur...
CALL :START_SERVER
SET /A RestartCount+=1
) ELSE (
echo [%date% %time%] Serveur deja actif
)
echo [%date% %time%] Prochain restart dans %RestartInterval% heures
echo [INFO] Appuyez sur CTRL+C pour arreter le cycle
SET /A RestartSeconds=%RestartInterval%*3600
timeout /t %RestartSeconds% /nobreak >nul
echo [%date% %time%] Arret du serveur pour restart programme...
CALL :STOP_SERVER_SILENT
timeout /t 10 >nul
CALL :LOG "Restart automatique %RestartCount%"
GOTO LOOP_RESTART
:STOP_SERVER
cls
echo.
echo [%date% %time%] Arret du serveur en cours...
CALL :LOG "Arret du serveur demande"
taskkill /F /IM DayZServer_x64.exe 2>nul
IF "%ERRORLEVEL%"=="0" (
echo [%date% %time%] Serveur arrete avec succes!
CALL :LOG "Serveur arrete avec succes"
) ELSE (
echo [%date% %time%] Aucun serveur actif detecte.
CALL :LOG "Aucun serveur a arreter"
)
timeout /t 3 >nul
GOTO MENU
:STOP_SERVER_SILENT
taskkill /F /IM DayZServer_x64.exe 2>nul
GOTO :EOF
:RESTART_SERVER
cls
echo.
echo [%date% %time%] Redemarrage du serveur...
CALL :LOG "Redemarrage manuel du serveur"
CALL :STOP_SERVER_SILENT
timeout /t 5 >nul
CALL :COPY_KEYS
CALL :START_SERVER
SET /A RestartCount+=1
echo [%date% %time%] Serveur redemarre! (Total: %RestartCount%)
CALL :LOG "Serveur redemarre (Count: %RestartCount%)"
timeout /t 3 >nul
GOTO MENU
:COPY_KEYS
echo [%date% %time%] Verification des bikeys...
IF NOT EXIST "%KeysDestination%" mkdir "%KeysDestination%"
:: Copie depuis le dossier Workshop (mods clients)
FOR /D %%M IN ("%WorkshopPath%\@*") DO (
CALL :COPY_KEYS_FROM_MOD "%%M"
)
:: Copie depuis le dossier DayZServer (mods serveur locaux)
FOR /D %%M IN ("%DayZServerPath%\@*") DO (
CALL :COPY_KEYS_FROM_MOD "%%M"
)
CALL :LOG "Verification des bikeys terminee"
GOTO :EOF
:COPY_KEYS_FROM_MOD
SET "ModDir=%~1"
:: Tester les 3 variantes de nommage du dossier de cles
FOR %%K IN (keys key Key) DO (
IF EXIST "%ModDir%\%%K\" (
FOR %%F IN ("%ModDir%\%%K\*.bikey") DO (
IF NOT EXIST "%KeysDestination%\%%~nxF" (
copy /Y "%%F" "%KeysDestination%\" >nul 2>&1
echo [%date% %time%] Bikey copiee : %%~nxF
CALL :LOG "Bikey copiee : %%~nxF"
)
)
)
)
GOTO :EOF
:START_SERVER
echo [%date% %time%] Lancement DayZ Server...
echo.
echo Configuration active :
echo - RAM Max : %MaxRAM:~8% Mo
echo - CPU Threads: %CPUCount:~11%
echo - Max FPS : %MaxFPS:~10%
echo - ExThreads : %ExThreads:~12%
echo - Port : %ServerPort%
echo - Config : serverDZ.cfg
echo.
cd /d "%DayZServerPath%"
start "DayZ-Server" /HIGH DayZServer_x64.exe ^
-instanceId=%InstanceID% ^
%ConfigFile% ^
-port=%ServerPort% ^
-profiles=profiles ^
-dologs ^
-adminlog ^
-netlog ^
-freezecheck ^
-noFilePatching ^
"%BEPath%" ^
%MaxRAM% ^
%CPUCount% ^
%MaxFPS% ^
%ExThreads% ^
"%ServerMod%" ^
"%Modlist%"
timeout /t 5 >nul
GOTO :EOF
:VIEW_LOGS
cls
echo.
echo ========================================================
echo DERNIERS LOGS DU SERVEUR
echo ========================================================
echo.
IF EXIST "%LogFile%" (
type "%LogFile%"
) ELSE (
echo [INFO] Aucun fichier de log trouve.
)
echo.
echo ========================================================
pause
GOTO MENU
:CLEAN_LOGS
cls
echo.
echo [%date% %time%] Nettoyage des anciens logs...
IF EXIST "%LogFile%" (
del "%LogFile%" /Q
echo [%date% %time%] Logs nettoyes avec succes!
CALL :LOG "Nettoyage des logs effectue"
) ELSE (
echo [%date% %time%] Aucun log a nettoyer.
)
timeout /t 2 >nul
GOTO MENU
:LOG
echo [%date% %time%] %~1 >> "%LogFile%"
GOTO :EOF
Ce script est basé sur le meilleur des configurations connues pour DayZ Server. Modifie uniquement la section CONFIGURATION en haut — le reste est prêt à l'emploi.