Serveur Privé — Étape 4/8
Script de lancement
.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ètreExempleRôle
-instanceId1ID de l'instance. Mettre 1 si un seul serveur sur la machine.
-configserverDZ.cfgFichier de configuration. Ne pas modifier.
-port2302Port réseau du serveur. Défaut DayZ = 2302.
-profilesprofilesDossier de stockage des logs et données joueurs.
-dologsActive la création de fichiers de logs détaillés.
-adminlogJournalise les actions admin (kicks, bans, etc.).
-netlogJournalise les événements réseau. Utile pour déboguer.
-freezecheckRedémarre automatiquement si le serveur freeze.
-noFilePatchingEmpêche les modifications de fichiers non signés. Sécurité.
-maxMem8192RAM max allouée en Mo. Minimum 4096 (4 Go). Recommandé 8192 (8 Go).
-cpuCount4Threads CPU alloués. Mettre la moitié de tes cœurs disponibles.
-limitFPS200FPS max du serveur. 60 stable, 200 pour exploiter le CPU.
-exThreads7Threads supplémentaires pour les scripts. 7 = valeur maximale recommandée.
-BEPathbattleyeChemin 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.