- Краткое описание
- Подготовка
- Конфигурация сервера
- Конфигурация клиента
- Настройки Expansion
- Скрипты
- Вайп сервера
Сама инструкция больше нацелена на создания собственного сервака, чтобы можно было играть с друзьями. Это те шаги, которые я выполнил для создания PVE сервера, на котором играю иногда с друзьями.
Качаем содержимое этой папки: https://disk.yandex.ru/d/TPOwj_9dD7Qp_w
В этой инструкции будем это называть "Народные файлы".
Там внутри есть инструкция и для сервера, и для клиента.
В качестве скелета клиента единственное, что мне подошло - это сборка DayZavr.
Вот ссылка на скачивание, нас интересует раздел с торрент файлом: https://dayzavr.ru/download.html
Лаунчер от него нам не понадобится, будем запускать клиент через батник.
Переносим в скачанный клиент "Народные файлы", следуя инструкции внутри.
В качестве скелета сервера необходимо скачать официальный сервер DayZ через Steam, затем скопировать его и расположить в удобном для нас месте всё его содержимое (например, по пути "C:\Games\DayZServer")
Переносим в новый созданный сервер "Народные файлы", следуя инструкции внутри.
Все необходимые моды можно качать через официальный клиент DayZ (если есть такой), затем копируя файлы на сервак и клиент (такие папки с символом "@" в начале).
Ну либо в интернете искать сайты с модами (я хз как ещё качать, у меня лицуха есть)
Не забываем при добавлении мода заходить в папку с модом, копировать файл .bikey из папки keys и вставлять в корень сервера в папку keys. Это касается только сервера, клиенту ключи не нужны.
Всегда сначала ставим ванильные настройки, а потом добавляем модовые!
Для начала качаем файл с центральной экономикой миссии, чтобы там были ванильные значения (иначе может не спавниться лут и зомби)
Для этого переходим по ссылке https://github.com/BohemiaInteractive/DayZ-Central-Economy
Справа будет зелёная кнопка Code, нажав на которую будет всплывающая менюшка, где нужно тыкнуть на "Download ZIP".
Открываем архив, переходим в директорию (папку) с названием целевой миссии (для классической Чернаруси - это dayzOffline.chernarusplus), переносим оттуда содержимое директории в директорию миссии на нашем сервере (например, по пути "C:\Games\DayZServer") с заменой.
Ровно так же, как описано выше, скачиваем вот этот репозиторий: https://github.com/ExpansionModTeam/DayZ-Expansion-Missions/tree/master
Затем открываем в скачанном архиве директорию Template, затем интересующую нас карту, а потом переносим папку с миссией в любое удобное место (например рабочий стол).
Копируем папку "expansion_ce" в папку с миссией на сервере.
Затем открываем файл "cfgeconomycore.xml", копируем содержимое файла начиная со строчки "" заканчивая строчкой в такой же файл в миссии на сервере перед строчкой (то есть просто переносим внутрь тега economycore)
Затем открываем файл "cfgeventspawns.xml", копируем содержимое файла начиная со строчки "" заканчивая строчкой в такой же файл в миссии на сервере перед строчкой (то есть просто переносим внутрь тега eventposde)
Ну или смотрим видео https://www.youtube.com/watch?v=xwqJ0nIiYb0
Чтобы подключить моды, в файле !StartServer.ini в строке после "CommandLine =" в конце нужно добавить:
"-mod=@ПервыйМод;@ВторойМод"
То есть там перечисляются названия папок модов через точку с запятой.
Порядок модов важен! Сначала должен идти главный мод, а потом моды, которые от него зависят!
Иногда подбор порядка инициализации модов требует перебора разных вариантов.
У меня эта строчка получилась вот такой:
CommandLine = -port=2302 -config=serverDZ.cfg -cfg=X\basic.cfg -profiles=X -cpuCount=3 -dologs -adminlog -freezecheck -FilePatching "-mod=@CF;@Community-Online-Tools;@Dabs Framework;@DayZ-Expansion-Core;@DayZ-Expansion-Licensed;@DayZ-Expansion;@DayZ-Expansion-AI;@DayZ-Expansion-Name-Tags;@DayZ-Expansion-Navigation;@DayZ-Expansion-Spawn-Selection;@DayZ-Expansion-Groups;@DayZ-Expansion-Book;@DayZ-Expansion-Animations;@DayZ-Expansion-Vehicles;@DayZ-Expansion-Weapons;@Dynamic AI Missions for DayZ Expansion AI;"
В этом файле мы выставляем все параметры, какие нам угодно. В целом, там есть комменты + названия сами за себя говорящие.
Но очень важна часть в разделе файла под именем "class Missions".
Там, в строке template стоит значение с названием миссии, которая нас интересует (должно стоять такое же, как название папки миссии, которая нас интересует.
Значения популярных миссий:
-
Чернарусь: dayzOffline.chernarusplus
-
Ливония: dayzOffline.enoch
-
Сахал: dayzOffline.sakhal
Думаю, не проблема разобраться с другими миссиями.
У меня этот блок выглядит так:
class Missions
{
class DayZ
{
template="dayzOffline.enoch"; // Mission to load on server startup. <MissionName>.<TerrainName>
// Vanilla mission: dayzOffline.chernarusplus
// Livonia mission: dayzOffline.enoch
// DLC mission Sakhal: dayzOffline.sakhal
};
};
По пути:
директория_вашего_сервера\mpmissions\название_целевой_миссии\db
Есть файлики с общими настройками миссии.
Это самые глобальные параметры, которые влияют на спавн и сохранение на сервере разного типа сущностей (типа зомби, транспорта, животных).
Лично я тут ничего не менял.
🐾 Животные и зомби
| Параметр | Описание |
|---|---|
AnimalMaxCount |
Максимальное количество животных |
ZombieMaxCount |
Максимальное количество заражённых (зомби) |
🧹 Очистка объектов (Cleanup)
| Параметр | Описание |
|---|---|
CleanupAvoidance |
Расстояние (в м), при котором объект не удаляется |
CleanupLifetimeDefault |
Время жизни объектов без категории (в секундах) |
CleanupLifetimeDeadAnimal |
Время до удаления мёртвого животного |
CleanupLifetimeDeadInfected |
Время до удаления мёртвого заражённого |
CleanupLifetimeDeadPlayer |
Время до удаления мёртвого игрока |
CleanupLifetimeRuined |
Время жизни разрушенного предмета |
CleanupLifetimeLimit |
Лимит одновременно активных объектов под контролем очистки |
🏴 Флаги
| Параметр | Описание |
|---|---|
FlagRefreshFrequency |
Частота обновления флага (в секундах) |
FlagRefreshMaxDuration |
Максимальное время жизни флага без взаимодействия |
🥫 Питание и гниение
| Параметр | Описание |
|---|---|
FoodDecay |
Включение гниения еды (1 = да) |
🧍♂️ Спавн игроков
| Параметр | Описание |
|---|---|
InitialSpawn |
Кол-во игроков, спавнящихся сразу при старте сервера |
SpawnInitial |
Начальное значение доступных точек спавна |
RespawnLimit |
Максимум возможных респавнов игрока |
RespawnAttempt |
Кол-во попыток спавна перед принудительной остановкой |
RespawnTypes |
Кол-во типов доступных точек спавна (влияет на зону появления) |
RestartSpawn |
Перезапуск спавна при рестарте сервера (0 = выкл) |
📦 Лут
| Параметр | Описание |
|---|---|
LootDamageMin |
Минимальный урон предметов при спавне |
LootDamageMax |
Максимальный урон предметов при спавне |
LootProxyPlacement |
Разрешение спавна предметов в прокси-зонах (1=да) |
LootSpawnAvoidance |
Расстояние в м, в котором лут не будет спавниться |
⏳ Время и задержки
| Параметр | Описание |
|---|---|
TimeLogin |
Время задержки при входе |
TimeLogout |
Время ожидания выхода из игры |
TimePenalty |
Штраф на повторный вход |
TimeHopping |
Защита от server hopping (в секундах) |
IdleModeStartup |
Включение режима ожидания при старте (1=да) |
IdleModeCountdown |
Время до активации idle-мода |
☔ Динамика погоды
| Параметр | Описание |
|---|---|
WorldWetTempUpdate |
Частота обновления данных о влажности и температуре |
📍 Прочее
| Параметр | Описание |
|---|---|
ZoneSpawnDist |
Расстояние от игрока для спавна объектов (м) |
Здесь указаны сообщения и закомменченные примеры их использования. Здесь ты можешь написать сообщение, чтобы оно, например, повторялось каждые 15 мин.
Здесь мы контролируем спавн лута, место спавна, категрию и его количество.
Для модов expansion все эти настройки находятся по пути:
директория_вашего_сервера\mpmissions\название_целевой_миссии\expansion_ce
Именно файл в этой директории влияют на спавн лута из модов expansion
Ещё можно настроить стамину игрока, например чтобы она была бесконечной. И без модов!
Надо зайти в файлик по пути:
директория_вашего_сервера\mpmissions\название_целевой_миссии\cfggameplay.json
И там значения указанных полей поменять на те, что я прописал ниже:
"sprintStaminaModifierErc": -0.5,
"sprintStaminaModifierCro": -0.5,
"staminaWeightLimitThreshold": 1000000.0,
"staminaMax": 99999.0,
"staminaKgToStaminaPercentPenalty": 0.0,
"staminaMinCap": 100.0,
"sprintSwimmingStaminaModifier": -0.5,
"sprintLadderStaminaModifier": -0.5,
"meleeStaminaModifier": -0.5,
"obstacleTraversalStaminaModifier": -0.5,
"holdBreathStaminaModifier": -0.5
Там ещё можно настроить температуру и прочие геймплейные настройки, для более подробной инфы рекомендую погуглить/понейросетить.
Если собираешься ставить ai патрули из expansion, тут обсуждение настройки expansion ai: Настройка патрулей в DayZ-Expansion-AI
По сути, самое главное мы делали в разделе Подготовка/Миссия/Для модов expansion Но если хочешь изменять количество ботов, то ниже будет ссылка на репозиторий со скриптами (генерировал на Go через нейронку).
Можно просто скопировать из файла с сервером
Чтобы подключить моды, в файле !StartGame.ini в строке после "CommandLine =" в конце нужно добавить:
"-mod=@ПервыйМод;@ВторойМод"
То есть там перечисляются названия папок модов через точку с запятой.
Порядок модов важен! Сначала должен идти главный мод, а потом моды, которые от него зависят!
У меня эта строчка получилась вот такой:
CommandLine = -connect=127.0.0.1 -port=2302 -name=MyName "-mod=@CF;@Community-Online-Tools;@Dabs Framework;@DayZ-Expansion-Core;@DayZ-Expansion-Licensed;@DayZ-Expansion;@DayZ-Expansion-AI;@DayZ-Expansion-Name-Tags;@DayZ-Expansion-Navigation;@DayZ-Expansion-Spawn-Selection;@DayZ-Expansion-Groups;@DayZ-Expansion-Book;@DayZ-Expansion-Animations;@DayZ-Expansion-Vehicles;@DayZ-Expansion-Weapons;"
Ещё в строке "CommandLine" есть параметр "-connect", где после знака "=" нужно написать адрес сервера, на котором хостится сервак. Для своего же сервера можно прописать просто "127.0.0.1", но другим игракам нужно указать твой публичный адрес. Если играете по VPN или ВЛС, то твой адрес в этой сети.
А ещё параметр "-port", где указывается порт сервака (лучше оставлять стандартный).
Если ты хостишь на своём ПК и у тебя есть возможность открывать порты, то не забудь его открыть у себя на роутере, есть масса инструкций по этому поводу, лишь бы провайдер позволял. Ну и если у тебя не статичный айпишник, то придётся каждый раз его смотреть, чтобы дать клиентам.
А лучше вообще используй zerotier (по сути по локалке будете играть) и не парься, там никаких портов открывать не надо, всё бесплатно, дохера людей можно подключить.
Ну и параметр "-name", где после знака "=" нужно написать своё имя, которое будет отображаться для всех остальных игроков.
Например:
CommandLine = -connect=127.0.0.1 -port=2302 -name=Cap
Для того, чтобы не было проблем с подключением, очень важно для каждого использовать уникальные SteamID. А мы же ещё хотим, чтобы можно было раздавать игрокам роли (например, выдать себе админку).
Поэтому ищем строчку "ManualSteamId" и в качестве значений пишем свой айдишник от стима.
Как узнать свой айди стим аккаунта ты должен найти сам, в интернете полно инструкций по этому поводу.
Вот здесь можно посмотреть официальную доку expansion: https://github.com/salutesh/DayZ-Expansion-Scripts/wiki/%5BServer-Hosting%5D-Server-settings
И ещё есть такой видик:
https://www.youtube.com/watch?v=xwqJ0nIiYb0
У меня есть скрипты: https://github.com/zonder12120/dayz-server-scripts/tree/main
В репозитории есть инструкции, как ими пользоваться, чтобы автоматизировать конфигурацию сервера.
Чтобы удалить все сохранения, то достаточно просто удалить директорию (папку) storage_1 по пути:
директория_вашего_сервера\mpmissions\название_целевой_миссии\
