Verification: a143cc29221c9be0

Php 7 days to die

Php 7 days to die

Первичная настройка Linux

Вы заказали на сайте MyArena виртуальный сервер, выбрали и установили операционную систему, что же делать дальше? Прежде чем перейти к установке сервера игры, нам потребуется провести предварительную настройку Linux.

1. Скачиваем и устанавливаем программу PuTTY себе на компьютер, что бы подключиться к серверу.

  • Запускаем программу, открываем вкладку Window, переходим в Translation и в меню Remote character set выбираем UTF-8.
  • Возвращаемся во вкладку Session.
  • В Host Name указываем IP адрес вашего сервера, порт 22, ниже в Saved Sessions придумайте имя для подключения и нажмите на кнопку Save.
  • Выделяем название сервер и нажимаем на кнопку Open.
  • У вас откроется черное окно терминала в котором вам потребуется указать логин и пароль от вашего сервера.

2. Установка дополнительных библиотек, при использование 64 битной операционной системы

apt install lib32gcc1
apt install lib32stdc++6
apt install libsdl2-2.0-0
dpkg --add-architecture i386
apt update
apt install libsdl2-2.0-0:i386

3. Установка дополнительных программ.

apt install curl
apt install mc
apt install htop
apt install screen

4. Устанавливаем редактор Nano для пользователя root по умолчанию.

echo 'export EDITOR=nano' >> ~/.bashrc

Установка сервера 7 Days to Die

1. Создаем нового пользователя с паролем, например gameserver.
Все последующие шаги выполняются под созданным пользователем. Выйти из него можно командой 'exit'.

# Создаем пользователя и его домашнюю директорию
useradd gameserver -s /bin/bash -m

# Добавляем пароль, вас попросят указать пароль дважды
passwd gameserver

2. Переключаемся на пользователя gameserver.

su gameserver -l

3. Устанавливаем редактор Nano для пользователя gameserver по умолчанию.

echo 'export EDITOR=nano' >> ~/.bashrc

4. Создаем и переходим в папку, куда будем загружать steamcmd.

mkdir steamcmd
cd steamcmd

5. Скачиваем архив steamcmd и разархивируем его.

wget https://steamcdn-a.akamaihd.net/client/installer/steamcmd_linux.tar.gz
tar -xvzf steamcmd_linux.tar.gz

6. Запускаем steamcmd.sh. Важно: нужно находиться в папке steamcmd.

./steamcmd.sh

7. Загрузка и установка сервера

# Указываем логин, аноним
login anonymous

# Указываем путь куда будет загружен сервер игры 7 Days to Die.
# Пример расположения: /home/gameserver/7dtd/
force_install_dir /home/gameserver/7dtd/

# Загружаем сервер игры
app_update 294420

8. Запуск сервера. После загрузки сервера выходим из steamcmd введя команду 'quit'

# Выходим из папки steamcmd
cd

# Переходим в папку 7dtd
cd 7dtd

Теперь проверим, запускаем сервер, для этого пропишите в консоли команду

./startserver.sh -configfile=serverconfig.xml

После этих действий сервер начнет запускаться, вы сможете зайти на него указав ip адрес и порт, например 37.230.228.208:26900
Завершить процесс и выключить игровой сервер нажатием клавиш ctrl+c.

Эта строчка означает, что сервер запущен.

Настройка сервера 7 Days to Die

1. Чтобы в будущем избежать правок конфигурационного файла serverconfig.xml при обновлении сервера, следует создать его копию.
Находясь в директории /7dtd, прописываем данную команду.

cp serverconfig.xml server_config.xml

Данная команда скопирует файл serverconfig.xml и создаст его копию с названием server_config.xml.

2. Открываем конфиг сервера server_config.xml командой

nano server_config.xml

Список самых важных переменных:

Переменные Стандартное значение Описание
ServerName My Game Host Название сервера.
ServerPort 26900 Игровой порт сервера.
ServerVisibility 2 Видимость сервера в интернете:
2 = Виден в интернете, в поиске серверов, 1 = Виден только друзьям, 0 = отсутствует в списке.
1 - Это значит, что сервер станет виден всем друзьям игрока, который подключился к серверу.
ServerPassword Пароль сервера, который будет требоваться при подключении.
ServerMaxPlayerCount 8 Максимальное количество игроков.
ServerDescription A 7 Days to Die server Описание сервера.
EACEnabled true Включает или отключает античит EasyAntiCheat.
GameWorld Navezgane Карты сервера.
Можно установить значение «RWG» для случайной карты.
GameName My Game Названия игры, должно быть написано Латиницей. Не используйте «:» и прочие специфические символы.
WorldGenSeed asdf Если выбрали RWG, нужно указать семя (пример: asdf) для создания новой случайной карты. Если карта с таким именем уже существует, она просто будет загружена.
WorldGenSize 4096 Если выбрали RWG, нужно указать ширину и высоту для новой карты (пример: 4096).
Размер карты должен быть от 2048 до 16384, создание новой карты может занять очень много времени.
DayNightLength 60 Длительность суток в игре.
LootRespawnDays 30 Через какое количество игровых дней будет происходить респаун лута.
PlayerKillingMode 3 Настройки PVP режима.
(0 = PVP запрещен для всех, 1 = можно убивать только союзников, 2 = можно убивать только незнакомцев, 3 = PVP включен для всех

3. Сохраняем результат нажатием одновременно ctrl+x, у вас попросят подтвердить действия, нажимаем на Y и enter.
4. Проверим сервер, запустим startserver.sh командой

./startserver.sh -configfile=server_config.xml

После этих действий сервер начнет запускаться. Завершить процесс и выключить игровой сервер нажатием клавиш ctrl+c.

Лог консоли сервера

После того, как вы запустили сервер, будет создан output_log.txt в папке 7DaysToDieServer_Data.
В нем вы можете посмотреть полностью лог консоли сервера, запуск сервера, ошибки, подключение\отключение игроков, информацию по работе античита и многое другое.

Проверка обновлений и автоматический перезапуск игрового сервера после падения или перезапуска VDS

1. Находясь в директории /7dtd, создадим дополнительный файл start_7dtd_server.sh для запуска сервера.

nano start_7dtd_server.sh

2. Проверка обновлений. В этот файл прописываем данные параметры.

#!/bin/bash
cd /home/gameserver/steamcmd
/home/gameserver/steamcmd/steamcmd.sh +login anonymous +force_install_dir /home/gameserver/7dtd +app_update 294420 +quit

3. Автоматический запуск сервера. Ниже прописываем данные параметры, после этого сохраняем результат нажатием одновременно ctrl+x, у вас попросят подтвердить действия, нажимаем на Y и enter.

cd /home/gameserver/7dtd
screen -AmdS run_7dtd bash -c 'while [ true ]; do /home/gameserver/7dtd/startserver.sh -configfile=server_config.xml; echo "CRASH - RESTART"; sleep 1; done'

4. Добавляем права на файл start_7dtd_server.sh, командой.

chmod +x start_7dtd_server.sh

5. Под пользователем gameserver прописываем команду crontab -e и указываем эти данные.

@reboot /home/gameserver/7dtd/start_7dtd_server.sh
  • После этого нажимаем на сочетание клавиш ctrl+x и сохраняем результат
  • Чтобы посмотреть, что запущено в скрине наберите screen -ls
  • Чтобы посмотреть отдельный скрин screen -x название скрина или его номер.
  • Чтобы выйти из выбранного скрина нажмите ctrl+a затем d.
  • Чтобы убить запущенный процесс пропишите команду kill и номер процесса.

Номер запущенного процесса.


6. Перезапуск сервера в час ночи.
Выходим из под пользователя gameserver командой exit обратно под root, прописываем вновь crontab -e и указываем эти данные.

0 1 * * * pkill -9 -U gameserver; su gameserver -c /home/gameserver/7dtd/start_7dtd_server.sh

Теперь каждый день, в час ночи игровой сервер будет перезапущен.

Важные файлы сервера

1. Расположение папки с картами сервера. Если у вас есть своя карта, то её нужна закачать в данную папку.

# Путь папки с картами
/Data/Worlds

2. После запуска сервера, будет создан новый каталог.
Сервер сохраняет данные игры в «скрытую» директорию учетной записи gameserver, каталог называется .local (с точкой).

# Путь до папки с сохранением игры
/gameserver/.local/share/7DaysToDie/Saves

Тут вы найдете игроков, админов, информацию по открытым регионам и многое другое.
Вы можете изменять инвентарь игроков, переносить его между серверами, даже части карты можно перенести, достаточно скопировать соответствующие файлы в другой каталог для сохранения.

3. Редактирование файла serveradmin.xml. В данный файл добавляются администраторы сервера

Найдите строку:

Сразу после нее добавьте новую строку со своим Steam 64 ID. Узнать его можно на сайте http://steamid.io. Пример строки:

После этого перезапустите сервер.

Полный список переменных сервера

Переменные Стандартное значение Описание
ServerName My Game Host Название сервера.
ServerDescription A 7 Days to Die server Описание сервера.
ServerWebsiteURL Тут вы можете указать сайт вашего проекта\сервера.
ServerPassword Пароль сервера, который будет требоваться при подключении.
ServerLoginConfirmationText Текст который увидят пользователи во время подключения к серверу и должны будут его подтвердить.
ServerPort 26900 Порт игрового сервера.
ServerVisibility 2 Видимость сервера в интернете:
2 = Виден в интернете, в поиске серверов, 1 = Виден только друзьям, 0 = отсутствует в списке.
1 - Это значит, что сервер станет виден всем друзьям игрока, который подключился к серверу.
ServerDisabledNetworkProtocols SteamNetworking Сетевые протоколы, которые не следует использовать. Через запятую. Возможные значения: LiteNetLib, SteamNetworking. Выделенные сервера должны отключить SteamNetworking, если между вашими пользователями и сервером нет NAT-маршрутизатора или если перенаправление портов настроено правильно.
ServerMaxWorldTransferSpeedKiBs 512 Максимальная скорость в кБ/с, с которой передается игровой мир клиенту при первом подключении, если у него еще нет мира. Максимальная скорость около 1300 кБ/с.
ServerMaxPlayerCount 8 Максимальное количество игроков.
ServerReservedSlots 0 Кол-во резервных слотов.
ServerReservedSlotsPermission 100 Permission для резервного слота.
ServerAdminSlots 0 Кол-во Резервных слотов для администрации.
ServerAdminSlotsPermission 0 Permission для резервного слота администрации.
ControlPanelEnabled false Включение / отключение веб-панели управления.
ControlPanelPort 8080 Порт веб-панели управления.
ControlPanelPassword Пароль веб-панели управления.
TelnetEnabled true Включение / отключение Telnet.
TelnetPort 8081 Порт Telnet.
TelnetPassword 8081 Пароль Telnet (Если пароль не установлен, сервер будет прослушивать только локальный канал)
TelnetFailedLoginLimit 10 Кол-во неправильных вводов паролей от одного клиента, после 10 попыток клиент будет заблокирован для подключения к интерфейсу Telnet.
TelnetFailedLoginsBlocktime 10 На сколько будет заблокирован клиент к Telnet (в секундах)
TerminalWindowEnabled true Показать окно терминала для вывода журнала / ввода команд (только для Windows)
AdminFileName serveradmin.xml Название файла списка администраторов сервера.
UserDataFolder absolute path Путь где сервер будет хранить все сгенерированные данные, включая созданные RWG миры. Не забывайте раскомментировать запись!
SaveGameFolder absolute path Путь где сервер будет хранить записывать\сохранять мир. Не забываем раскомментировать запись!
SaveGameFolder absolute path Путь где сервер будет хранить записывать\сохранять мир. Не забываем раскомментировать запись!
EACEnabled true Включает или отключает античит EasyAntiCheat.
HideCommandExecutionLog 0 Скрывать журнал выполнения команд.
0 = показать все, 1 = скрыть только от Telnet / ControlPanel, 2 = также скрыть от удаленных игровых клиентов, 3 = скрыть все
MaxUncoveredMapChunksPerPlayer 131072 Укажите, сколько чанков может быть открыто на игровой карте каждым игроком.
В результате максимальный размер файла карты для игрока составляет (x*512 байт), открытая область (x*256 м²).
По умолчанию 131072 означает, что в любой момент может быть обнаружено не более 32 км².
PersistentPlayerProfiles false Если отключено, игрок может присоединиться к любому выбранному профилю. Если включено, игрок подключиться к последнему созданному профилю.
GameWorld Navezgane Карты сервера.
Можно установить значение «RWG» для случайной карты.
WorldGenSeed asdf Если выбрали RWG, нужно указать семя (пример: asdf) для создания новой случайной карты. Если карта с таким именем уже существует, она просто будет загружена.
WorldGenSize 4096 Если выбрали RWG, нужно указать ширину и высоту для новой карты (пример: 4096).
Размер карты должен быть от 2048 до 16384, создание новой карты может занять очень много времени.
GameName My Game Названия игры, должно быть написано Латиницей. Не используйте «:» и прочие специфические символы.
GameMode GameModeSurvival Режим выживания.
GameDifficulty 2 Значения от 0 до 5 (0 = самый простой, 5 = самый сложный).
BlockDamagePlayer 100 Какое количество урона игроки наносят блокам (в процентах или в целых числах).
BlockDamageAI 100 Какое количество урона наносят ИИ блокам (в процентах или в целых числах).
BlockDamageAIBM 100 Какое количество урона наносят ИИ блокам во время кровавой луны (в процентах или в целых числах).
XPMultiplier 100 Множитель получаемого опыта (в процентах или в целых числах).
PlayerSafeZoneLevel 5 Если игрок ниже или равен этому уровню, он создаст безопасную зону (без врагов) при появлении.
PlayerSafeZoneHours 5 Время действия безопасной зоны, в часах по игровому времени.
BuildCreate false Включение / Отключение чит-режима
DayNightLength 60 Длительность суток в игре.
DayLightLength 18 Длительность одного игрового дня.
DropOnDeath 1 Будут ли выпадать вещи после смерти.
0 = Нет, 1 = Да, 2 = Только предметы на поясе, 3 = Только предметы в рюкзаке, 4 = Удаление всех предметов
DropOnQuit 0 Будут ли выпадать вещи при выходе с сервера.
0 = Нет, 1 = Да, 2 = Только предметы на поясе, 3 = Только предметы в рюкзаке, 4 = Удаление всех предметов
BedrollDeadZoneSize 15 Расстояние от спальника при котором зомби не будет спавница.
BedrollExpiryTime 45 Количество дней на которое сохраняется спальник, после последнего подключения к серверу.
MaxSpawnedZombies 64 Максимальное количество зомби на карте.
Этот параметр сильно влияет на производительность всего сервера.
MaxSpawnedAnimals 50 Максимальное количество животных на карте.
Этот параметр не так сильно влияет на производительность всего сервера как зомби!
ServerMaxAllowedViewDistance 12 Максимальное видимое расстояние игроком на сервере (6 - 12).
Этот параметр сильно влияет на использование памяти.
EnemySpawnMode true Включение / Отключение появления врагов.
EnemyDifficulty 0 0 = Нормальный, 1 = Дикий.
ZombieMove 0 Скорость зомби 0-4
0 - Ходьба, 1- Пробежка, 2 - Бег, 3 - Спринт, 4 - Кошмар.
ZombieMoveNight 3 Скорость зомби 0-4
0 - Ходьба, 1- Пробежка, 2 - Бег, 3 - Спринт, 4 - Кошмар.
ZombieFeralMove 3 Скорость зомби 0-4
0 - Ходьба, 1- Пробежка, 2 - Бег, 3 - Спринт, 4 - Кошмар.
ZombieBMMove 3 Скорость зомби 0-4
0 - Ходьба, 1- Пробежка, 2 - Бег, 3 - Спринт, 4 - Кошмар.
BloodMoonFrequency 7 Через какое количество дней должна наступать кровавая луна. 0 - Отключить
BloodMoonRange 0 На какое количество дней может отклоняться наступление кровавой луны, это рандомный параметр, отклонение может произойти, а может нет.
0 - наступление кровавых луны будет происходить ровно каждый N-й день, как указано в BloodMoonFrequency.
BloodMoonWarning 8 В какое игровое время наступает кровавая луна.
-1 - не будет показывать информацию о наступлении данного события.
BloodMoonEnemyCount 8 Количество зомби которое будет появляться рядом с игроком во время кровавой луны.
Этот параметр сильно влияет на производительность всего сервера.
LootAbundance 100 Спавн лута в процентах.
LootRespawnDays 30 Через какое количество игровых дней будет происходить респаун лута.
AirDropFrequency 72 Сброс "AirDrop" каждые 72 часа игрового времени.
AirDropMarker false Если включить, то на карту будет добавлен маркер места сброса "AirDrop".
PartySharedKillRange 100 Расстояние, в пределах которого вы должны находиться, чтобы получить очки опыта за убийство в группе и за убийство в квестовой группе.
PartySharedKillRange 100 Расстояние, в пределах которого вы должны находиться, чтобы получить очки опыта за убийство в группе и за убийство в квестовой группе.
PlayerKillingMode 3 Настройки PVP режима.
0 = PVP запрещен для всех, 1 = можно убивать только союзников, 2 = можно убивать только незнакомцев, 3 = PVP включен для всех.
LandClaimCount 1 Максимальное кол-во территорий на одного игрока.
LandClaimSize 41 Размер безопасной зоны вокруг одного блока.
LandClaimDeadZone 30 Расстояние на котором могут строить друг от друга недружественные игроки.
LandClaimExpiryTime 7 Количество дней, который игрок может находиться в оффлайне, после чего безопасная зона игрока исчезнет.
LandClaimDecayMode 0 С какой скоростью портятся постройки игрока, когда игрок в оффлайне.
0 = Линейный 1 = Экспоненциальный 2 = Не портятся.
LandClaimOnlineDurabilityModifier 4 Прочность построек игроков, которые в онлайне.
По умолчанию их в 32 раза труднее уничтожить. 0 - Невозможно уничтожить.
LandClaimOfflineDurabilityModifier 4 Прочность построек игроков, которые сейчас офлайн.
По умолчанию их в 32 раза труднее уничтожить. 0 - Невозможно уничтожить.
LandClaimOfflineDelay 0 Количество минут после выхода игрока из игры, в течение которого уровень территории переходит из онлайн в офлайн.