Выделенный сервер Mordhau скачивается бесплатно (Steam app 629800, анонимный вход, Linux и Windows) и настраивается почти целиком через один файл: Game.ini в Mordhau/Saved/Config/LinuxServer/ или WindowsServer/. В этом файле хранятся имя сервера, пароль, пароль администратора, число слотов, список админов, ротация карт и моды. Сервер использует три UDP-порта - 7777 для игры, 27015 для Steam query и 15000 для beacon - и больше нуждается в быстром ядре CPU, чем в памяти: 2-3 GB RAM хватает на сервер на 48 игроков, а держится ли tick rate, зависит от тактовой частоты. Админы определяются по PlayFab ID, а не по SteamID, а моды берутся с mod.io по числовому ID.
Как устроены серверы Mordhau#
Mordhau - игра на Unreal Engine 4, и её сервер ведёт себя как большинство шутеров на UE4: один процесс, одна карта за раз, режим игры задаётся именем карты, а ротация переключает на следующую карту по окончании раунда. В отличие от игр на выживание, постоянного мира здесь нет, поэтому серверы Mordhau просто бэкапить и легко пересобирать - конфигурация и есть сервер.
Среди режимов - Frontline (большой режим с целями, лошадьми и осадными машинами), Invasion (атака и оборона), Skirmish (раунды без возрождений), Team Deathmatch, Free-for-all, Horde (кооперативные волны) и Battle Royale. Какой режим запущен, определяет запись карты в ротации, так что сервер может смешивать режимы или держаться одного.
С выходом на консолях в Mordhau появился кроссплей, а идентификация игроков перешла на PlayFab ID. Это изменило настройку админов и банов, и старые гайды, которые советуют вписывать SteamID в список админов, устарели.
Требования и потребление ресурсов#
Серверы Mordhau нетребовательны к памяти и сильно нагружают одно ядро. Ближний бой чувствителен к задержкам так, как шутеры не бывают, - сорвавшееся парирование ощущается как вина сервера, - поэтому стабильность тиков важнее, чем просто число игроков.
| Сервер | RAM | CPU | Примечания |
|---|---|---|---|
| Duel / FFA, до 16 | 1.5-2 GB | 1 быстрое ядро | Маленькие карты, мало физики |
| Skirmish / TDM, до 32 | 2-3 GB | 1-2 быстрых ядра | Типичная настройка сообщества |
| Frontline / Invasion, 48-64 | 3-4 GB | 2 быстрых ядра | Лошади, осада, большие карты |
| С модами, 64+ | 4-6 GB | 2+ быстрых ядра | Стоят и моды, и слоты |
- CPU: ограничение - игровой поток. Современное ядро на высокой частоте лучше, чем дополнительные ядра. В статье CPU или RAM для игровых серверов объясняется, почему добавление памяти ничего не даёт при проблеме с тиками.
- Диск: сервер занимает примерно 10-15 GB в зависимости от версии; моды добавляют к этому.
- Сеть: около 30-60 KB/s на игрока при 60 Hz. Задержка между игроками и сервером важнее пропускной способности - см. задержка, джиттер и потеря пакетов.
Установка и первый запуск#
В Linux:
$ steamcmd +force_install_dir /home/mordhau/server +login anonymous +app_update 629800 validate +quit$ cd /home/mordhau/server$ ./MordhauServer.sh -log -Port=7777 -QueryPort=27015 -BeaconPort=15000В Windows бинарник называется MordhauServer.exe, аргументы те же. Цикл установки и обновления описан в статье Что такое SteamCMD.
При первом запуске создаётся Mordhau/Saved/Config/LinuxServer/ (или WindowsServer/) с Game.ini и Engine.ini. Остановите сервер, отредактируйте Game.ini, запустите снова. Как и большинство серверов на Unreal, Mordhau может перезаписывать свои ini-файлы при выключении, так что правки, сделанные во время работы, могут пропасть.
Важные аргументы запуска:
| Аргумент | По умолчанию | Назначение |
|---|---|---|
-Port | 7777 | Игровой порт |
-QueryPort | 27015 | Порт Steam query |
-BeaconPort | 15000 | Порт beacon, используется при подключении |
-log | выкл. | Выводит лог в консоль |
-GameIni | путь по умолчанию | Использовать другой файл Game.ini |
Game.ini: важные настройки#
Рабочий Game.ini для сервера сообщества:
[/Script/Mordhau.MordhauGameMode]PlayerRespawnTime=5.000000BallistaRespawnTime=30.000000CatapultRespawnTime=30.000000HorseRespawnTime=30.000000DamageFactor=1.000000TeamDamageFactor=0.500000MapRotation=FFA_ThePitMapRotation=FFA_Contraband[/Script/Mordhau.MordhauGameSession]bIsLANServer=FalseMaxSlots=32ServerName=Iron Keep | EU | FFAServerPassword=AdminPassword=a-long-random-admin-passwordAdmins=0123456789ABCDEFBannedPlayers=()Две секции делят обязанности:
| Ключ | Секция | Что делает |
|---|---|---|
MaxSlots | GameSession | Слоты для игроков |
ServerName | GameSession | Имя в браузере серверов |
ServerPassword | GameSession | Пароль на вход; пустой для публичного сервера |
AdminPassword | GameSession | Пароль для adminlogin в консоли |
Admins | GameSession | По строке на PlayFab ID каждого админа |
BannedPlayers | GameSession | Список банов, который ведёт ban |
MapRotation | GameMode | По строке на карту, играются по порядку |
PlayerRespawnTime | GameMode | Секунды до возрождения в режимах с респауном |
DamageFactor | GameMode | Глобальный множитель урона |
TeamDamageFactor | GameMode | Огонь по своим, как доля обычного урона |
Ротация карт и режимы игры
Каждая строка MapRotation - это имя карты, префикс которого задаёт режим: FFA_ для free-for-all, SKM_ для skirmish, TDM_ для team deathmatch и так далее, а карты Frontline, Invasion и Horde названы по своим шаблонам. Точный список меняется по мере добавления и переработки карт, поэтому берите имена из актуального официального списка или через changelevel в консоли, а не копируйте из старого гайда. Дойдя до конца, ротация начинается заново.
Настройки, зависящие от режима, тоже лежат в [/Script/Mordhau.MordhauGameMode]: время возрождения, респаун осадных машин, множители урона. Насчёт огня по своим стоит решить заранее. TeamDamageFactor со значением 0.5 - привычное значение по умолчанию для Frontline; сообщество skirmish часто предпочитает полный урон по своим, который вознаграждает аккуратные удары и наказывает за спам в толпе.
Tick rate в Engine.ini
Частота обновления сервера задаётся в Engine.ini:
[/Script/OnlineSubsystemUtils.IpNetDriver]NetServerMaxTickRate=60Стандарт - 60. Повышение пропорционально стоит CPU и помогает, только если сервер держит эту частоту под полной нагрузкой; сервер, заявленный на 120 и падающий до 70 в большой битве, ощущается хуже, чем тот, что стабильно держит 60. Прежде чем что-то трогать, понаблюдайте за CPU на графиках панели во время полного раунда Frontline.
Порты и подключение#
| Порт | Протокол | Назначение |
|---|---|---|
7777 | UDP | Игровой трафик |
27015 | UDP | Steam query - браузер серверов и число игроков |
15000 | UDP | Beacon - рукопожатие при подключении |
Все три должны быть открыты и совпадать с аргументами запуска. Сервер с закрытым портом beacon виден в браузере, но подключиться к нему нельзя, и это сбивает с толку; в статье Порты игровых серверов разобрано, зачем игры разделяют порты query и подключения. Если хостинг выдаёт другие номера, передайте их в -Port, -QueryPort и -BeaconPort.
Игроки находят сервер во внутриигровом браузере по имени. Понятное имя, по которому удобно фильтровать, - регион, режим, правила - делает для онлайна больше, чем что-либо ещё в конфиге, потому что игроки Mordhau выбирают серверы, листая браузер.
Админы и админ-команды#
Админы перечисляются в Game.ini, по одной строке Admins= на игрока, с его PlayFab ID. Чтобы его узнать, попросите игрока зайти и выполните playerlist в консоли от имени админа; команда выведет имя и PlayFab ID каждого игрока. Любой, кто знает AdminPassword, тоже может войти на время сессии через adminlogin.
Команды вводятся во внутриигровой консоли (по умолчанию клавиша ~):
| Команда | Действие |
|---|---|
adminlogin <password> | Даёт права админа на эту сессию |
playerlist | Список игроков с PlayFab ID |
kick <PlayFabID> <reason> | Выкидывает игрока |
ban <PlayFabID> <duration> <reason> | Банит игрока и записывает BannedPlayers |
unban <PlayFabID> | Снимает бан |
changelevel <map> | Сразу переключает карту |
Точные аргументы, например единица длительности бана, менялись от патча к патчу; сверяйтесь с официальным гайдом по хостингу для своей версии. Админам, перечисленным в Admins=, adminlogin не нужен.
Текущие сборки также поддерживают RCON по протоколу Source RCON, с портом и паролем, заданными в Game.ini. Имя секции и ключи менялись между патчами, поэтому скопируйте их из официального гайда для своей версии, выделите RCON отдельный порт и относитесь к нему как к чувствительным данным - в статье Как безопасно использовать RCON объясняется, как злоупотребляют открытым портом RCON.
Онлайн зависит скорее от последовательности админов, чем от их количества. Пишите правила там, где их видят игроки (в имени сервера и в вашем Discord), записывайте баны с причинами и осторожно выбирайте, кому вообще давать права админа - в ванильном Mordhau нет уровней доступа, так что любой админ может банить, менять карту и кикать кого угодно. Моды для модерации добавляют более тонкие роли, если они нужны. Более полная схема - в статье Правила сервера, модерация и команда.
Как спланировать сервер, на который действительно заходят
Большинство новых серверов Mordhau гибнут из-за нехватки игроков, а не железа. Браузер переполнен, и игроки выбирают из того, что успевают разглядеть за пару секунд: имя, режим, пинг и заполненность. Разницу делают несколько решений.
Выберите один режим и прямо об этом скажите. Сервер, который крутит карты Frontline, Skirmish и Duel, не привлекает никого конкретного. Игроки, которые ищут Frontline, фильтруют по нему и хотят знать, что следующий раунд тоже будет Frontline. Укажите режим в имени и держите ротацию в соответствии с ним.
Подбирайте число слотов под ваш реальный онлайн. Сервер Frontline на 64 слота с шестью игроками выглядит мёртвым, и игроки проходят мимо к заполненному. Начните с малого - 24 или 32 - и поднимайте MaxSlots, когда сервер начнёт заполняться в часы пик. Меньше слотов - это ещё и запас по CPU, который держит тики стабильными, пока вы выясняете, что тянет железо.
Регион и пинг. Тайминги ближнего боя наказывают за задержку жёстче, чем в шутерах. Сервер в Германии хорошо играется из большей части Европы и плохо с других континентов, и никакая настройка не исправит расстояние. Укажите регион в имени, чтобы игроки, у которых будет плохой опыт, могли выбрать другой сервер, а не оставлять гневный отзыв в чате.
Правила под режим. Дуэльные серверы живут или умирают по этикету (не вмешиваться в чужие дуэли, кланяться перед боем), который поддерживают админы и сообщество, а не конфиг. На серверах Frontline важны убийства своих, с которыми справляются TeamDamageFactor и быстрый кик. Решите, что вы будете пресекать, и запишите это до первого спора.
Сидинг. Сервер заполняется, когда на нём уже есть игроки. Сообщества часто назначают регулярное время, когда участники заходят вместе, чтобы «засеять» сервер, и через несколько недель он начинает сам заполняться в этот час. Приватный сервер с паролем всё это пропускает - задайте ServerPassword, поделитесь им со своей группой, и конкуренция в браузере перестанет иметь значение.
Моды с mod.io#
Mordhau использует mod.io, а не Steam Workshop. Моды добавляются в Game.ini по числовому ID с mod.io, по одной строке на каждый:
[/Script/Mordhau.MordhauGameSession]Mods=1700790Mods=2673283Сервер скачивает перечисленные моды при запуске, а игроки получают их автоматически при подключении. Эти ID лишь показывают формат - настоящие берите со страницы каждого мода на mod.io. Некоторым модам также нужна запись, которая запускает их серверную логику при загрузке карты, SpawnServerActorsOnMapLoad= в секции режима игры; точное значение указано на странице мода, если оно требуется.
Типы модов, которые стоит знать:
- Карты: добавьте карту в
Mods=, а её имя - вMapRotation. Карты сообщества - самые распространённые моды на серверах. - Серверные геймплейные моды: команды чата, инструменты админа, изменения геймплея. Обычно им нужна строка с серверным актором.
- Косметические и клиентские моды: к серверу отношения не имеют.
Каждый мод добавляет время загрузки для новых игроков, а сломанный мод может не дать серверу запуститься после обновления игры. Держите список коротким на публичных серверах и прочитайте что делать, когда обновление мода всё ломает, до того как это понадобится.
Производительность, обновления и backup#
Что влияет на tick rate сервера Mordhau:
- Тактовая частота ядра, на котором работает игровой поток.
- Число игроков - каждый дополнительный игрок добавляет работы по регистрации попаданий, а Frontline на 64 - самая тяжёлая обычная нагрузка.
- Лошади и осадные машины, которые добавляют физику.
- Тяжёлые моды, особенно скриптовые геймплейные.
Серверу, у которого под полной нагрузкой падает tick rate, нужно меньше слотов или более быстрое ядро, а не больше памяти. Плановый перезапуск раз в сутки в тихий час держит долго работающие серверы в чистоте - см. расписание перезапусков, которое помогает.
Обновления: после каждого патча игры сервер нужно обновить, прежде чем к нему смогут подключиться игроки на новой версии. Обновляйтесь через SteamCMD, как только выходит патч, и после крупных патчей ждите поломок модов.
Делать backup просто, потому что мира нет: храните копию Game.ini, Engine.ini и список ID модов. С ними свежая установка за несколько минут снова становится вашим сервером. Бэкапьте и список банов - он лежит в Game.ini, - чтобы после пересборки все забаненные игроки не вернулись.
На RE:NODE у каждого игрового сервера есть редактор ini-файлов, SFTP, слоты backup и вкладка Schedules для перезапусков. Mordhau нет в каталоге, так что этот гайд не описывает тариф для Mordhau.
Решение проблем#
Сервер есть в браузере, но подключиться никто не может. Порт beacon закрыт или не совпадает с -BeaconPort.
Сервера вообще нет в браузере. Порт query закрыт или указан неверно. Посмотрите в логе, на каких портах сервер поднялся.
Изменения в `Game.ini` теряются. Вы правили файл при работающем сервере, и при остановке он записал свою копию. Остановите, отредактируйте, запустите.
Загружается только первая карта из ротации. Несколько карт в одной строке MapRotation или опечатка в имени карты. По одной на строку, точные имена.
У админа из `Admins=` нет прав. В записи указан SteamID или в PlayFab ID опечатка. Скопируйте его из playerlist.
Резиновые откаты в больших битвах. Падение тиков. Проверьте CPU во время полного раунда; уменьшите число слотов или tick rate, прежде чем винить сеть.
FAQ#
Выделенный сервер Mordhau бесплатный?
Да. Он скачивается анонимно через SteamCMD и не требует лицензии игры. Игра нужна игрокам.
Могут ли консольные игроки подключиться к выделенному серверу на ПК?
В Mordhau есть кроссплей, но что консольные игроки видят и куда могут зайти в браузере сообщества, зависит от правил платформы и модов сервера, и это менялось между патчами. Для смешанной группы безопасный выбор - ванильный сервер; проверьте с консольным игроком, прежде чем что-то обещать.
Как узнать PlayFab ID игрока?
Выполните playerlist в консоли, пока он на сервере. Команда выводит каждого игрока с его PlayFab ID - именно его ожидают Admins= и ban.
Какой tick rate ставить серверу Mordhau?
- Повышайте, только если сервер держит большую частоту при полном онлайне; стабильные 60 лучше нестабильных 120.
Нужно ли игрокам скачивать моды вручную?
Нет. Сервер скачивает моды с mod.io при запуске, а клиенты получают их при подключении. Держите список компактным, чтобы новые игроки не ждали больших загрузок.




Комментарии
Полностью анонимно: без аккаунта, без почты, без cookie. Мы храним имя, которое вы ввели, текст и время - больше ничего. Количество ссылок ограничено, разметка не отображается.