Skip to content

Глава 9.3: Полный справочник serverDZ.cfg

Главная | << Назад: Структура каталогов | Справочник serverDZ.cfg | Далее: Подробно о лут-экономике >>


Краткое содержание: Каждый параметр serverDZ.cfg с описанием назначения, допустимых значений и поведения по умолчанию. Этот файл управляет идентификацией сервера, сетевыми настройками, правилами игрового процесса, ускорением времени и выбором миссии.


Содержание


Формат файла

serverDZ.cfg использует формат конфигурации Bohemia (похожий на C). Правила:

  • Каждое присвоение параметра заканчивается точкой с запятой ;
  • Строки заключаются в двойные кавычки ""
  • Комментарии используют // для однострочных
  • Блок class Missions использует фигурные скобки {} и заканчивается };
  • Файл должен быть в кодировке UTF-8 или ANSI -- без BOM

Отсутствие точки с запятой приведёт к тому, что сервер молча сломается или проигнорирует последующие параметры.


Идентификация сервера

cpp
hostname = "My DayZ Server";         // Имя сервера в браузере
password = "";                       // Пароль для подключения (пусто = публичный)
passwordAdmin = "";                  // Пароль для входа администратора через внутриигровую консоль
description = "";                    // Описание в деталях браузера серверов
ПараметрТипПо умолчаниюПримечания
hostnamestring""Отображается в браузере серверов. Максимум ~100 символов.
passwordstring""Оставьте пустым для публичного сервера. Игроки должны ввести его для подключения.
passwordAdminstring""Используется с командой #login в игре. Установите его на каждом сервере.
descriptionstring""Многострочные описания не поддерживаются. Пишите коротко.

Сеть и безопасность

cpp
maxPlayers = 60;                     // Максимальное количество слотов для игроков
verifySignatures = 2;                // Проверка подписей PBO (поддерживается только значение 2)
forceSameBuild = 1;                  // Требовать совпадения версий клиента/сервера
enableWhitelist = 0;                 // Включить/отключить белый список
disableVoN = 0;                      // Отключить голосовую связь
vonCodecQuality = 20;               // Качество звука VoN (0-30)
guaranteedUpdates = 1;               // Сетевой протокол (всегда используйте 1)
ПараметрТипДопустимые значенияПо умолчаниюПримечания
maxPlayersint1-6060Влияет на использование ОЗУ. Каждый игрок добавляет ~50-100 МБ.
verifySignaturesint22Поддерживается только значение 2. Проверяет PBO-файлы по ключам .bisign.
forceSameBuildint0, 11При значении 1 клиенты должны иметь точно такую же версию исполняемого файла сервера. Всегда оставляйте 1.
enableWhitelistint0, 10При значении 1 подключаться могут только Steam64 ID, указанные в whitelist.txt.
disableVoNint0, 10Установите 1 для полного отключения внутриигрового голосового чата.
vonCodecQualityint0-3020Более высокие значения означают лучшее качество голоса, но больше трафика. 20 -- хороший баланс.
guaranteedUpdatesint11Настройка сетевого протокола. Всегда используйте 1.

Shard ID

cpp
shardId = "123abc";                  // Шесть буквенно-цифровых символов для приватных шардов
ПараметрТипПо умолчаниюПримечания
shardIdstring""Используется для серверов с приватным хайвом. Игроки на серверах с одинаковым shardId разделяют данные персонажей. Оставьте пустым для публичного хайва.

Правила игрового процесса

cpp
disable3rdPerson = 0;               // Отключить камеру от третьего лица
disableCrosshair = 0;               // Отключить прицел
disablePersonalLight = 1;           // Отключить окружающий свет игрока
lightingConfig = 0;                 // Яркость ночи (0 = светлее, 1 = темнее)
ПараметрТипДопустимые значенияПо умолчаниюПримечания
disable3rdPersonint0, 10Установите 1 для серверов только от первого лица. Самая распространённая настройка "хардкора".
disableCrosshairint0, 10Установите 1 для удаления прицела. Часто совмещается с disable3rdPerson=1.
disablePersonalLightint0, 11"Персональный свет" -- это слабое свечение вокруг игрока ночью. Большинство серверов отключают его (значение 1) для реализма.
lightingConfigint0, 100 = более светлые ночи (виден лунный свет). 1 = кромешно-тёмные ночи (требуется фонарик/ПНВ).

Время и погода

cpp
serverTime = "SystemTime";                 // Начальное время
serverTimeAcceleration = 12;               // Множитель скорости времени (0-24)
serverNightTimeAcceleration = 1;           // Множитель скорости ночного времени (0.1-64)
serverTimePersistent = 0;                  // Сохранять время между перезапусками
ПараметрТипДопустимые значенияПо умолчаниюПримечания
serverTimestring"SystemTime" или "YYYY/MM/DD/HH/MM""SystemTime""SystemTime" использует локальные часы машины. Задайте фиксированное время, например "2024/9/15/12/0", для сервера с постоянным днём.
serverTimeAccelerationint0-2412Множитель внутриигрового времени. При 12 полный цикл 24 часа занимает 2 реальных часа. При 1 время реальное. При 24 полный день проходит за 1 час.
serverNightTimeAccelerationfloat0.1-641Умножается на serverTimeAcceleration. При значении 4 с ускорением 12 ночь проходит со скоростью 48x (очень короткие ночи).
serverTimePersistentint0, 10При 1 сервер сохраняет внутриигровые часы на диск и восстанавливает их после перезапуска. При 0 время сбрасывается к serverTime при каждом перезапуске.

Распространённые конфигурации времени

Постоянный день:

cpp
serverTime = "2024/6/15/12/0";
serverTimeAcceleration = 0;
serverTimePersistent = 0;

Быстрый цикл дня/ночи (2-часовые дни, короткие ночи):

cpp
serverTime = "SystemTime";
serverTimeAcceleration = 12;
serverNightTimeAcceleration = 4;
serverTimePersistent = 1;

Реальное время дня/ночи:

cpp
serverTime = "SystemTime";
serverTimeAcceleration = 1;
serverNightTimeAcceleration = 1;
serverTimePersistent = 1;

Производительность и очередь входа

cpp
loginQueueConcurrentPlayers = 5;     // Игроков, обрабатываемых одновременно при входе
loginQueueMaxPlayers = 500;          // Максимальный размер очереди входа
ПараметрТипПо умолчаниюПримечания
loginQueueConcurrentPlayersint5Сколько игроков могут загружаться одновременно. Более низкие значения уменьшают пики нагрузки на сервер после перезапуска. Увеличьте до 10-15, если ваше оборудование мощное и игроки жалуются на время ожидания в очереди.
loginQueueMaxPlayersint500Если столько игроков уже находятся в очереди, новые подключения отклоняются. 500 достаточно для большинства серверов.

Персистентность и экземпляр

cpp
instanceId = 1;                      // Идентификатор экземпляра сервера
storageAutoFix = 1;                  // Автоматическое восстановление повреждённых файлов персистентности
ПараметрТипПо умолчаниюПримечания
instanceIdint1Определяет экземпляр сервера. Данные персистентности хранятся в storage_<instanceId>/. Если вы запускаете несколько серверов на одной машине, дайте каждому свой instanceId.
storageAutoFixint1При 1 сервер проверяет файлы персистентности при запуске и заменяет повреждённые пустыми файлами. Всегда оставляйте 1.

Выбор миссии

cpp
class Missions
{
    class DayZ
    {
        template = "dayzOffline.chernarusplus";
    };
};

Значение template должно точно совпадать с именем папки внутри mpmissions/. Доступные ванильные миссии:

ШаблонКартаТребуется DLC
dayzOffline.chernarusplusЧернарусьНет
dayzOffline.enochЛивонияДа
dayzOffline.sakhalСахальДа

Пользовательские миссии (например, от модов или карт сообщества) используют собственное имя шаблона. Папка должна существовать в mpmissions/.


Полный пример файла

Полный файл serverDZ.cfg по умолчанию со всеми параметрами:

cpp
hostname = "EXAMPLE NAME";              // Имя сервера
password = "";                          // Пароль для подключения к серверу
passwordAdmin = "";                     // Пароль для входа администратора

description = "";                       // Описание в браузере серверов

enableWhitelist = 0;                    // Включить/отключить белый список (значение 0-1)

maxPlayers = 60;                        // Максимальное количество игроков

verifySignatures = 2;                   // Проверяет .pbo по файлам .bisign (поддерживается только 2)
forceSameBuild = 1;                     // Требовать совпадения версий клиента/сервера (значение 0-1)

disableVoN = 0;                         // Включить/отключить голосовую связь (значение 0-1)
vonCodecQuality = 20;                   // Качество кодека голосовой связи (значения 0-30)

shardId = "123abc";                     // Шесть буквенно-цифровых символов для приватного шарда

disable3rdPerson = 0;                   // Переключает вид от третьего лица (значение 0-1)
disableCrosshair = 0;                   // Переключает прицел (значение 0-1)

disablePersonalLight = 1;              // Отключает персональный свет для всех клиентов
lightingConfig = 0;                     // 0 для светлой, 1 для тёмной ночи

serverTime = "SystemTime";             // Начальное внутриигровое время ("SystemTime" или "YYYY/MM/DD/HH/MM")
serverTimeAcceleration = 12;           // Множитель скорости времени (0-24)
serverNightTimeAcceleration = 1;       // Множитель скорости ночного времени (0.1-64), также умножается на serverTimeAcceleration
serverTimePersistent = 0;              // Сохранять время между перезапусками (значение 0-1)

guaranteedUpdates = 1;                 // Сетевой протокол (всегда используйте 1)

loginQueueConcurrentPlayers = 5;       // Игроков, обрабатываемых одновременно при входе
loginQueueMaxPlayers = 500;            // Максимальный размер очереди входа

instanceId = 1;                        // ID экземпляра сервера (влияет на именование папки хранения)

storageAutoFix = 1;                    // Автовосстановление повреждённой персистентности (значение 0-1)

class Missions
{
    class DayZ
    {
        template = "dayzOffline.chernarusplus";
    };
};

Параметры запуска, переопределяющие конфигурацию

Некоторые настройки могут быть переопределены через параметры командной строки при запуске DayZServer_x64.exe:

ПараметрПереопределяетПример
-config=Путь к файлу конфигурации-config=serverDZ.cfg
-port=Игровой порт-port=2302
-profiles=Каталог вывода профилей-profiles=profiles
-mod=Клиентские моды (через точку с запятой)-mod=@CF;@VPPAdminTools
-servermod=Серверные моды-servermod=@MyServerMod
-BEpath=Путь к BattlEye-BEpath=battleye
-dologsВключить логирование--
-adminlogВключить логирование администратора--
-netlogВключить сетевое логирование--
-freezecheckАвтоперезапуск при зависании--
-cpuCount=Количество ядер CPU-cpuCount=4
-noFilePatchingОтключить file patching--

Полный пример запуска

batch
start DayZServer_x64.exe ^
  -config=serverDZ.cfg ^
  -port=2302 ^
  -profiles=profiles ^
  -mod=@CF;@VPPAdminTools;@MyMod ^
  -servermod=@MyServerOnlyMod ^
  -dologs -adminlog -netlog -freezecheck

Моды загружаются в порядке, указанном в -mod=. Порядок зависимостей важен: если Мод B требует Мод A, указывайте Мод A первым.


Назад: Структура каталогов | Главная | Далее: Подробно о лут-экономике >>

Released under CC BY-SA 4.0 | Code examples under MIT License