Установка, настройка и запуск выделенного сервера в Mordhau [Linux]

Руководства

Приветствую. Вы попали на страницу руководства по установке, настройке и запуску выделенного сервера (Dedicated Server) для игры Mordhau в операционной системе Linux. Данное руководство поможет вам создать ваш собственный сервер для игры с другими людьми в интернете или по локальной сети. Все действия будут продемонстрированы на операционной системе Debian Linux 9.9 64-bit и на виртуальной машине, созданной в Oracle VM VirtualBox. И так, начнём.

Установка утилиты SteamCMD

Первым делом что вам потребуется сделать, так это скачать официальную утилиту от Valve под названием SteamCMD. Это консольная программа, которая предназначена для скачивания и обновления выделенного сервера для различных мультиплеерных игр.

Вам потребуется создать в домашней директории пользователя папку mordhau_server, а в ней уже подпапку steamcmd:

mkdir mordhau_server
cd mordhau_server
mkdir steamcmd
cd steamcmd

Далее вам нужно скачать архив с утилитой SteamCMD и разархивировать содержимое архива в папку steamcmd:

curl -sqL «https://steamcdn-a.akamaihd.net/client/installer/steamcmd_linux.tar.gz» | tar zxvf —

Для того чтобы утилита SteamCMD нормально функционировала в операционной системе Linux вам нужно установить пакет (зависимость):

sudo apt-get install lib32gcc1

 Скачивание сервера

Для того чтобы скачать выделенный сервер (dedicated server) для игры Mordhau вам потребуется создать bash-скрипт в папке ~/mordhau_server/:

cd ~/mordhau_server/
nano mordhau_server_install.sh

В bash-скрипте mordhau_server_install.sh вы должны прописать следующее:

#!/bin/sh
cd steamcmd
screen -A -m -d -S mordhau_server_install ./steamcmd.sh +@ShutdownOnFailedCommand 1 +@NoPromptForPassword 1 +login anonymous +force_install_dir ~/mordhau_server/ +app_update 629800 validate +quit

Теперь давайте разъясним себе, что за параметры для SteamCMD написаны выше и зачем они вообще нужны:

steamcmd.sh — bash-скрипт утилиты SteamCMD.
+@ShutdownOnFailedCommand 1 — параметр, который отвечает за то, будет ли SteamCMD завершать свою работу при ошибке.
+@NoPromptForPassword 1 — параметр, который отвечает за отключение запроса пароля при скачивании файлов.
+login anonymous — Вход в анонимный/гостевой аккаунт Steam. Этого аккаунта достаточно для скачивания файлов сервера. Вы можете войти в свой аккаунт Steam, используя +login имя_пользователя пароль.
+force_install_dir ~/mordhau_server/ — параметр, который отвечает за путь установки вашего сервера.
+app_update 629800 validate — параметр, который отвечает за указание для SteamCMD на то, какие файлы сервера он должен скачать. +app_update означает скачивание, 629800 означает id сервера Mordhau в Steam, validate означает, что если файлы сервера уже есть в папке, то нужно их проверить и только обновить.
+quit — параметр, который отвечает за автоматический выход из утилиты SteamCMD после завершения скачивания файлов сервера.

Затем вам потребуется сделать bash-скрипт исполняемым (т.е. чтобы его возможно было запустить):

chmod +x mordhau_server_install.sh

После чего вы можете запустить скачивание вашего сервера:

./mordhau_server_install.sh

Просмотреть запущенный процесс SteamCMD можно командой:

screen -x mordhau_server_install

Дождитесь того момента, когда ваш сервер будет скачен и утилита SteamCMD завершит свою работу.

Свернуть процесс, не выключая его, можно сочетанием клавиш Ctrl + A + D.

Если система будет ругаться на неизвестную команду screen, то установите соотвествующий пакет командой:

sudo apt-get install screen

 Установка зависимостей для запуска сервера

Для запуска сервера рекомендуется установить следующие пакеты-зависимости командой:

sudo apt-get install libfontconfig1 libpangocairo-1.0-0 libnss3 libgconf2-4 libxi6 libxcursor1 libxss1 libxcomposite1 libasound2 libxdamage1 libxtst6 libatk1.0-0 libxrandr2

 Настройка сервера

Для настройки вашего сервера вам потребуется запустить ваш сервер для автоматического создания нужных для редактирования конфигурационных файлов. Также вам потребуется запустить файл MordhauServer.sh в папке ~/mordhau_server/, после чего нужно завершить запущенный процесс сочетанием клавиш на клавиатуре Ctrl + C.

cd ~/mordhau_server/
./MordhauServer.sh

Далее вам потребуется открыть конфигурационный файл Game.ini, который находится в папке ~/mordhau_server/Mordhau/Saved/Config/LinuxServer/ и теперь вы можете отредактировать его на свой вкус:

cd ~/mordhau_server/Mordhau/Saved/Config/LinuxServer/
nano Game.ini

Пояснения в содержимом файла Game.ini:

[/script/mordhau.mordhaugamemode] PlayerRespawnTime=5.000000 — Время возрождения игрока (в секундах).
BallistaRespawnTime=30.000000 — Время возрождения баллисты (в секундах).
CatapultRespawnTime=30.000000 — Время возрождения катапульты (в секундах).
HorseRespawnTime=30.000000 — Время возрождения лошади (в секундах).
DamageFactor=1.000000 — Процент нанесения урона всем игрокам ( 1.0 = 100% ).
TeamDamageFactor=0.500000 — Процент нанесения урона союзникам в команде ( 0.5 = 50% ).
MapRotation=FFA_ThePit — Список карт, доступных на сервере. Каждая новая карта должна начинаться с новой строки и иметь такой формат: MapRotation=Название_карты. [/script/mordhau.mordhaugamesession] MaxSlots=16 — Максимально допустимое количество игроков на сервере.
ServerName=Server — Название сервера.
ServerPassword=password — Пароль для входа на сервер. Если не требуется, оставьте параметр пустым: ServerPassword=
AdminPassword=password — Пароль для администрирования сервера.
BannedPlayers=(steamID64_игрока) — Список забаненных игроков на сервере. Каждый новый забаненный игрок должен начинаться с новой строки и иметь такой формат: BannedPlayers=(steamID64_игрока).
(опционально) Admins=steamID64_игрока — Список администраторов на сервере. Каждый новый администратор сервера должен начинаться с новой строки и иметь такой формат: Admins=steamID64_игрока.
(опционально) bIsLANServer=True — Возможность сделать сервер только для локальной сети. False — для интернета, True — для локальной сети.

Под steamID64_игрока подразумевается уникальный ID игрока в Steam. Узнать его можно на сайте https://steamid.io/ .

Измените значения параметров согласно пояснениям выше и сохраните изменения в файле Game.ini сочетанием клавиш на клавиатуре Ctrl + O. Сервер должен находится в выключенном состоянии перед этим действием.

 Запуск сервера

Для окончательного запуска сервера вам потребуется создать bash-скрипт в папке ~/mordhau_server/:

cd ~/mordhau_server/
nano mordhau_server_start.sh

В bash-скрипте mordhau_server_start.sh вы должны прописать следующее:

#!/bin/sh
screen -A -m -d -S mordhau_server ./MordhauServer.sh FFA_ThePit -log -port=7777 -queryport=27015 -beaconport=15000

Пояснения:

MordhauServer.sh — Исполняемый bash-скрипт сервера.
FFA_ThePit — Название карты.
-log — Включение записи логов.
-port=7777 — Основной порт, по которому будет идти подключение игроков.
-queryport=27015 — Порт для связи с серверами Steam для добавления сервера в список серверов игры, чтобы сервер было видно игрокам.
-beaconport=15000 — Порт для резервации слота игрока на сервере. Нужен для того что бы не возникало проблем с соединением игрока после смены карты на сервере.

Затем вам потребуется сделать bash-скрипт исполняемым (т.е. чтобы его возможно было запустить):

chmod +x mordhau_server_start.sh

После чего вы можете запустить ваш сервер командой:

./mordhau_server_start.sh

Просмотреть запущенный процесс сервера можно командой:

screen -x mordhau_server

Свернуть процесс, не выключая его, можно сочетанием клавиш Ctrl + A + D.

Если система будет ругаться на неизвестную команду screen, то установите соотвествующий пакет командой:

sudo apt-get install screen

 Подключение к серверу

Для подключения к серверу используйте консольную команду в игре:

open Ваш_IP:Порт_сервера

Пример:

open 192.168.1.35:7777

Заключение

На этом установка и настройка выделенного сервера для игры Mordhau окончена. Задавайте свои вопросы в комментариях. Так же приветствуется конструктивная критика и предложения.

Дополнительно: Список доступных карт (все режимы)

Frontline:
MapRotation=FL_Camp
MapRotation=FL_Grad
MapRotation=FL_MountainPeak
MapRotation=FL_Taiga

Skirmish / Last Team Standing:
MapRotation=SKM_Camp
MapRotation=SKM_Camp_64
MapRotation=SKM_Contraband
MapRotation=SKM_Grad
MapRotation=SKM_Grad_64
MapRotation=SKM_MountainPeak
MapRotation=SKM_MountainPeak_64
MapRotation=SKM_Taiga
MapRotation=SKM_Taiga_64
MapRotation=SKM_ThePit
MapRotation=SKM_Tourney

Team Deathmatch:
MapRotation=TDM_Camp
MapRotation=TDM_Camp_64
MapRotation=TDM_Contraband
MapRotation=TDM_Grad
MapRotation=TDM_MountainPeak
MapRotation=TDM_MountainPeak_64
MapRotation=TDM_Taiga
MapRotation=TDM_Taiga_64
MapRotation=TDM_ThePit
MapRotation=TDM_Tourney

Deathmatch / Free For All:
MapRotation=FFA_Camp
MapRotation=FFA_Contraband
MapRotation=FFA_Grad
MapRotation=FFA_MountainPeak
MapRotation=FFA_Taiga
MapRotation=FFA_ThePit
MapRotation=FFA_Tourney

Horde:
MapRotation=HRD_Camp
MapRotation=HRD_Grad
MapRotation=HRD_MountainPeak
MapRotation=HRD_Taiga

Battle Royale:
MapRotation=BR_Grad
MapRotation=BR_Taiga

_64 означает, что карты предназначены для серверов с максимальным числом игроков равным 64.

Дополнительно: Порты для доступа к серверу из вне

Требуемые порты для открытия на вашем маршрутизаторе и для входа на сервер через интернет — 7777, 27015 и 15000.

Дополнительно: Команды администратора

adminlogin пароль_из_Game.ini (Пример: adminlogin qwerty) — Вход на сервер в качестве администратора.
adminlist — Вывод списка администраторов сервера.
adminadd steamID64_игрока — Добавить игрока в качестве администратора на сервер.
removeadmin steamID64_игрока — Удалить игрока из администраторов сервера.
changelevel Название_карты — Сменить карту на сервере.
restartlevel — Перезапустить текущую карту на сервере.
addbots число — Добавить ботов на сервер.
removebots число — Удалить определенное количество ботов на сервере.
kick ник_игрока / steamID64_игрока — Исключить игрока с сервера.
ban ник_игрока / steamID64_игрока — Забанить игрока на сервере.
unban ник_игрока / steamID64_игрока — Разбанить игрока на сервере.
banlist — Вывод списка забаненных игроков на сервере.
slomo значение — Изменить значение скорости передвижения на сервере.
Оцените статью