Konfiguracja serwera DayZ: kompletny przewodnik krok po kroku
Par Benjamin D. · PDG
· Mis à jour le 5 września 2026 · Lecture 9 min
Spis treści
Konfiguracja serwera DayZ to w praktyce praca na kilku plikach tekstowych: serverDZ.cfg, parametrach startowych, katalogu misji oraz plikach ekonomii. Poniżej znajdziesz uporządkowany przebieg — od struktury katalogów, przez sloty i limity kolejki, po mody ze Steam Workshop i strojenie rozgrywki. Wszystko opisane tak, jak wygląda to podczas realnej pracy administratora.
Struktura plików i podstawy pliku serverDZ.cfg
Zanim zaczniesz zmieniać cokolwiek, warto poznać układ katalogów. Instancja DayZ Server (Linux lub Windows) wygląda mniej więcej tak:
/
├── DayZServer (lub DayZServer_x64.exe)
├── serverDZ.cfg
├── profiles/
│ ├── BattlEye/
│ ├── crash_*/
│ └── *.RPT / *.ADM / *.log
├── keys/
├── mpmissions/
│ └── dayzOffline.chernarusplus/
│ ├── init.c
│ ├── cfgeconomycore.xml
│ ├── cfggameplay.json
│ ├── cfgplayerspawnpoints.xml
│ ├── cfgspawnabletypes.xml
│ └── db/
│ ├── types.xml
│ ├── globals.xml
│ ├── events.xml
│ └── messages.xml
└── @NazwaModa/
├── addons/
└── keys/
Kluczowe wpisy w serverDZ.cfg
Plik ma składnię zbliżoną do C: pary klucz = wartość; oraz bloki class. Poniżej minimalny, ale kompletny szkielet:
hostname = "PL | Chernarus | Vanilla+";
password = "";
passwordAdmin = "ZmienToNaDlugieHaslo";
maxPlayers = 60;
verifySignatures = 2;
forceSameBuild = 1;
disableVoN = 0;
vonCodecQuality = 20;
disable3rdPerson = 0;
disableCrosshair = 0;
disablePersonalLight = 1;
serverTime = "SystemTime";
serverTimeAcceleration = 8;
serverNightTimeAcceleration = 4;
serverTimePersistent = 0;
guaranteedUpdates = 1;
loginQueueConcurrentPlayers = 5;
loginQueueMaxPlayers = 500;
respawnTime = 5;
instanceId = 1;
storageAutoFix = 1;
enableCfgGameplayFile = 1;
steamQueryPort = 27016;
timeStampFormat = "Short";
logAverageFps = 60;
logMemory = 60;
logPlayers = 60;
logFile = "server_console.log";
adminLogPlayerHitsOnly = 0;
adminLogPlacement = 1;
adminLogBuildActions = 1;
adminLogPlayerList = 1;
motd[] = {"Witaj na serwerze","Zasady na Discordzie"};
motdInterval = 300;
class Missions
{
class DayZ
{
template = "dayzOffline.chernarusplus";
};
};
Co realnie warto ustawić na starcie
| Parametr | Znaczenie | Rekomendacja |
|---|---|---|
maxPlayers | Liczba slotów | Zacznij od 40–60 i zwiększaj, obserwując server FPS |
verifySignatures | Weryfikacja podpisów modów | Zawsze 2 — blokuje niepodpisane addony |
forceSameBuild | Wymusza identyczną wersję klienta | 1, ogranicza crashe po patchu |
serverTimeAcceleration | Mnożnik upływu czasu | 4–12 dla PvP, 1–2 dla hardcore survival |
instanceId | Identyfikator instancji storage | Unikalny dla każdej mapy na jednej maszynie |
storageAutoFix | Naprawa uszkodzonego persistence | 1 — ratuje bazy graczy po twardym restarcie |
enableCfgGameplayFile | Włącza cfggameplay.json | 1, jeśli chcesz stroić rozgrywkę bez modów |
Uwaga na serverTimePersistent. Ustawiony na 1 zapamiętuje porę dnia między restartami — bardzo praktyczne, ale w połączeniu z dużym serverNightTimeAcceleration potrafi zablokować graczy w wiecznej nocy, jeśli restarty wypadają zawsze o tej samej godzinie.
Jeżeli szukasz gotowej infrastruktury pod maszynę zarządzaną z panelu Pterodactyl, z NVMe i ochroną anty-DDoS w standardzie, sprawdź hosting DayZ — konsola live i menedżer plików ułatwiają edycję opisanych tu konfiguracji bez ręcznego łączenia się po SSH.
Parametry startowe, porty i BattlEye
Linia uruchomienia
Sam serverDZ.cfg to nie wszystko — reszta ustawień idzie w parametrach startowych binarki:
./DayZServer -config=serverDZ.cfg \
-port=2302 \
-profiles=profiles \
-BEpath=battleye \
-mod=@CF;@Community-Online-Tools;@BuilderItems \
-servermod=@AdminTools \
-cpuCount=4 \
-limitFPS=60 \
-dologs -adminlog -netlog -freezecheck
| Parametr | Do czego służy |
|---|---|
-mod= | Mody wymagane też po stronie klienta (średnik jako separator) |
-servermod= | Mody wyłącznie serwerowe, klient ich nie pobiera |
-cpuCount= | Liczba wątków przydzielona instancji |
-limitFPS= | Sufit server FPS; 60 zwykle wystarcza i zmniejsza zużycie CPU |
-freezecheck | Wykrywa zawieszenie procesu i generuje dump |
-adminlog | Generuje plik .ADM z akcjami graczy |
Porty
DayZ wymaga otwarcia kilku portów UDP. Standardowy komplet:
- 2302/UDP — port rozgrywki (game port),
- 2303/UDP — port wewnętrzny wykorzystywany przez silnik,
- 27016/UDP — Steam Query, decyduje o widoczności na liście serwerów,
- 2310/TCP+UDP — RCON BattlEye (konfigurowalny).
Jeśli serwer działa, a nie widać go w launcherze, w 90% przypadków winny jest źle przekierowany steamQueryPort albo niezgodność między nim a portem faktycznie nasłuchiwanym. Sprawdź to poleceniem:
ss -lunp | grep -E '2302|27016'
Konfiguracja RCON
BattlEye obsługuje zdalną administrację. Plik battleye/BEServer_x64.cfg (lub profiles/BattlEye/BEServer_x64.cfg) powinien zawierać:
RConPassword HasloRCON_min_16_znakow
RestrictRCon 0
RConPort 2310
Hasło RCON traktuj jak klucz do całego serwera: minimum 16 znaków, losowe, inne niż passwordAdmin. Nigdy nie wrzucaj go na publiczny kanał Discorda ani do repozytorium z konfiguracją misji.
Mody ze Steam Workshop krok po kroku
Pobieranie przez SteamCMD
Mody DayZ mają AppID 221100. Pobierasz je po ID pozycji z Workshopu:
steamcmd +force_install_dir /home/dayz/workshop \
+login TWOJ_LOGIN \
+workshop_download_item 221100 1559212036 \
+workshop_download_item 221100 2116157322 \
+quit
Pliki lądują w steamapps/workshop/content/221100/<ID>. Każdy taki katalog zawiera folder moda z plikiem meta.cpp oraz katalogami addons/ i keys/.
Instalacja na instancji
- Skopiuj katalog moda do katalogu głównego serwera i nazwij go zgodnie z konwencją
@NazwaModa. - Skopiuj wszystkie pliki
.bikeyz@NazwaModa/keys/do głównego katalogukeys/. - Dodaj moda do parametru
-mod=, zachowując kolejność zależności. - Jeśli mod dostarcza własne typy przedmiotów, podepnij jego pliki w
cfgeconomycore.xml.
cp -r /home/dayz/workshop/steamapps/workshop/content/221100/1559212036 \
/home/dayz/server/@CF
cp /home/dayz/server/@CF/keys/*.bikey /home/dayz/server/keys/
Systemy plików Linuksa rozróżniają wielkość liter, a wiele modów zawiera nazwy z wielkimi literami w addons/. Jeżeli po dodaniu moda serwer wywala się przy starcie, sprawdź w .RPT linię typu Cannot open file — najczęściej to właśnie kwestia case sensitivity. Rozwiązuje ją zamiana nazw plików PBO na małe litery.
Kolejność ładowania
To najczęstsza przyczyna błędów przy modowaniu. Zasada jest prosta: frameworki przed modami, które z nich korzystają. Typowa kolejność:
-mod=@CF;@Dabs Framework;@Community-Online-Tools;@VPPAdminTools;@Ear Plugs;@BuilderItems
Po każdej zmianie listy modów wykonaj pełny restart procesu, a nie tylko przeładowanie misji. Warto też prowadzić prosty rejestr wersji modów — po aktualizacji Workshopu autor potrafi zmienić klasy przedmiotów, co unieważnia wpisy w types.xml.
Rejestracja przedmiotów z modów w ekonomii
Aby przedmioty z moda spawnowały się w świecie, dodaj wpis w mpmissions/dayzOffline.chernarusplus/cfgeconomycore.xml:
<ce folder="custom">
<file name="mod_types.xml" type="types" />
<file name="mod_spawnabletypes.xml" type="spawnabletypes" />
</ce>
Następnie utwórz katalog custom/ w folderze misji i umieść w nim wskazane pliki. Trzymanie modowanych typów poza db/types.xml znacznie ułatwia późniejsze aktualizacje wersji gry.
Parametry rozgrywki: cfggameplay.json, types.xml i globals.xml
cfggameplay.json — strojenie bez modów
Po ustawieniu enableCfgGameplayFile = 1 plik cfggameplay.json w katalogu misji pozwala zmienić dziesiątki zachowań silnika. Fragment użytecznej konfiguracji:
{
"GeneralData": {
"disableBaseDamage": false,
"disableContainerDamage": false,
"disableRespawnDialog": false
},
"PlayerData": {
"disablePersonalLight": true,
"StaminaData": {
"sprintStaminaModifierErc": 1.0,
"staminaMax": 120.0
},
"MovementData": {
"timeToStrafeJog": 0.5
}
},
"WorldsData": {
"lightingConfig": 0,
"objectSpawnersArr": ["custom/bazy_militarne.json"],
"environmentMinTemps": [-2, -1, 1, 5, 10, 14, 16, 16, 13, 8, 4, 0],
"environmentMaxTemps": [2, 4, 7, 12, 17, 21, 23, 23, 19, 14, 8, 4]
},
"BaseBuildingData": {
"HologramData": { "disableIsCollidingBBoxCheck": false }
}
}
Zwiększenie staminaMax i temperatur otoczenia to najprostszy sposób na złagodzenie rozgrywki dla nowej społeczności, bez sięgania po mody. Odwrotnie — obniżenie temperatur minimalnych szybko podnosi poziom trudności zimą.
types.xml — kontrola lootu
Każdy przedmiot ma własny wpis. Znaczenie pól:
| Pole | Opis |
|---|---|
nominal | Docelowa liczba sztuk w świecie |
min | Próg, po przekroczeniu którego uruchamia się respawn |
lifetime | Czas życia przedmiotu w sekundach |
restock | Opóźnienie przed uzupełnieniem do nominal |
quantmin/quantmax | Procentowe wypełnienie (amunicja, płyny) |
usage | Strefa spawnu: Military, Police, Farm, Town… |
tier / value | Poziom lokacji, od Tier1 do Tier4 |
<type name="M4A1">
<nominal>8</nominal>
<lifetime>7200</lifetime>
<restock>1800</restock>
<min>4</min>
<quantmin>-1</quantmin>
<quantmax>-1</quantmax>
<cost>100</cost>
<flags count_in_cargo="0" count_in_hoarder="0"
count_in_map="1" count_in_player="0" crafted="0" deloot="1"/>
<category name="weapons"/>
<usage name="Military"/>
<value name="Tier4"/>
</type>
Podnosząc nominal broni wysokiego tieru, pamiętaj że pula lootu jest ograniczona globalnie — zbyt hojna militarka wypycha z mapy przedmioty przetrwaniowe. Zmiany wprowadzaj etapami i po każdym restarcie weryfikuj plik lootHistory oraz logi ekonomii.
globals.xml — wydajność i cleanup
Ten plik decyduje o obciążeniu instancji bardziej niż cokolwiek innego:
ZombieMaxCount— liczba zombie na mapie; wartość powyżej 1000 wyraźnie obciąża CPU,AnimalMaxCount— analogicznie dla zwierząt,IdleModeCountdown— czas do przejścia serwera w tryb bezczynności przy zerze graczy,CleanupLifetimeDeadPlayeriCleanupLifetimeRuined— sprzątanie zwłok i zniszczonych obiektów,TimeHoppingiTimeLogin— kary za server hopping i czas logowania.
Przy 60 slotach i mapie Chernarus rozsądny start to ZombieMaxCount około 900. Jeśli server FPS spada poniżej 25, zejdź do 600 zanim zaczniesz szukać winy w modach. Wysoka częstotliwość taktowania procesorów Ryzen i dyski NVMe pomagają przy odczycie persistence, ale liczba aktywnych AI pozostaje głównym pożeraczem cykli.
Sloty a realna pojemność
Parametr maxPlayers to tylko deklaracja. Faktyczny limit wyznacza suma: liczba graczy × obiekty w ich bazach × AI × mody. Przy modach na budownictwo (dodatkowe obiekty persistence) ta sama maszyna udźwignie mniej slotów niż w wariancie vanilla. Kolejkę logowania regulują loginQueueConcurrentPlayers (ilu graczy wchodzi jednocześnie — 3 do 5 jest bezpieczne) i loginQueueMaxPlayers.
Utrzymanie: restarty, logi i kopie zapasowe
Harmonogram restartów
DayZ akumuluje wycieki pamięci przy długim uptime. Standardem społecznościowym są restarty co 3–4 godziny, z komunikatem ostrzegawczym. Komunikaty ustawisz w db/messages.xml:
<message>
<deadline>180</deadline>
<text>Restart za 10 minut. Zabezpiecz ekwipunek.</text>
</message>
<message>
<deadline>190</deadline>
<shutdown>1</shutdown>
<text>Restart serwera.</text>
</message>
Gdzie szukać przyczyn awarii
- *.RPT — błędy skryptów, brakujące klasy, problemy z modami,
- *.ADM — akcje graczy: zabójstwa, budowanie, połączenia (podstawa moderacji),
- script_*.log — wyjątki w kodzie Enforce Script,
- crash_* — dumpy po twardym zawieszeniu procesu.
Przy raporcie o duplikacji przedmiotów zaczynaj od .ADM: koreluj czas zdarzenia z logami połączeń. Filtrowanie po nicku:
grep -i "nick_gracza" profiles/*.ADM | tail -n 50
Kopie zapasowe persistence
Krytyczny katalog to mpmissions/dayzOffline.chernarusplus/storage_1/. Zawiera bazy graczy, pojazdy i stan ekonomii. Kopię wykonuj po restarcie, gdy serwer jest wyłączony — zrzut z działającej instancji bywa niespójny. Automatyczne kopie zapasowe dostępne na infrastrukturze Fly-Serv działają w tle, ale własny archiwalny snapshot przed każdą większą zmianą types.xml lub listy modów oszczędza wiele godzin.
tar -czf backup_$(date +%F_%H%M).tar.gz \
mpmissions/dayzOffline.chernarusplus/storage_1/
Dobre praktyki bezpieczeństwa
verifySignatures = 2i komplet kluczy.bikey— bez tego wpuszczasz dowolne addony klienckie,- osobne, długie hasła dla
passwordAdmini RCON, rotowane po każdej zmianie w ekipie, - subkonta w panelu zamiast dzielenia jednego dostępu między moderatorów,
- ograniczony dostęp do RCON tylko dla zaufanych adresów IP,
- aktualizacja serwera i modów wykonywana razem, nigdy pojedynczo.
Pełną listę parametrów startowych i dyrektyw konfiguracyjnych utrzymuje Bohemia Interactive: DayZ Server Configuration. Jeśli prowadzisz kilka światów survivalowych równolegle, podobne mechanizmy persistence i ekonomii znajdziesz też w innych tytułach opisanych w sekcji Wszystkie nasze serwery gier oraz w poradnikach na Blog Fly-Serv.
Ostatnia rada praktyczna: trzymaj katalog misji w repozytorium Git. Każda zmiana w types.xml, cfggameplay.json czy events.xml staje się wtedy odwracalna jednym poleceniem, a przy pracy w zespole moderatorów historia commitów pokazuje, kto i kiedy podniósł spawn amunicji.
Podsumowanie
Konfiguracja serwera DayZ opiera się na kilku warstwach: serverDZ.cfg odpowiada za sloty i zasady dostępu, parametry startowe za mody i wydajność, a pliki misji za ekonomię oraz odczucia z rozgrywki. Zmieniaj po jednym elemencie naraz, obserwuj logi .RPT i .ADM, rób kopie storage_1 przed każdą modyfikacją. Ta dyscyplina oszczędza najwięcej czasu.
FAQ
Dlaczego mój serwer DayZ nie pojawia się na liście w launcherze?Najczęściej winny jest port zapytań Steam. Upewnij się, że steamQueryPort w serverDZ.cfg (domyślnie 27016) jest otwarty na UDP i przekierowany tak samo jak port rozgrywki 2302. Sprawdź nasłuch poleceniem ss -lunp | grep 27016. Drugą przyczyną bywa brak parametru -config= w linii startowej — serwer wystartuje wtedy z ustawieniami domyślnymi.
Nie edytuj db/types.xml. Utwórz katalog custom/ w folderze misji,