Выделенный сервер Killing Floor 2 несложен, как только вы узнаете две его особенности: его нужно запустить один раз, прежде чем редактировать любой конфиг, и в нём нет RCON, поэтому вы управляете им из веб-панели. Разберётесь с этими двумя, и остальное это пятиминутная настройка. Вот всё целиком.
Установка сервера
Выделенный сервер KF2 это app 232130, и он устанавливается анонимно (без входа в Steam, вам не нужно владеть игрой на аккаунте сервера):
./steamcmd.sh +login anonymous \
+app_update 232130 validate \
+quitВажно: используйте validate только при ПЕРВОЙ установке. Повторный запуск app_update 232130 validate позже стирает ваши INI-файлы в KFGame/Config. Чтобы обновляться потом, убирайте ключевое слово validate.
Загвоздка: запустите один раз, прежде чем что-либо редактировать
KF2 заново генерирует свои конфиг-файлы при первом запуске и перезаписывает всё, что вы туда положили заранее. Поэтому порядок такой: установить, запустить один раз, остановить, ЗАТЕМ редактировать. Запустите его один раз со стандартными аргументами:
./Binaries/Win64/KFGameSteamServer.bin.x86_64 KF-BioticsLabДайте ему дойти до "steam initialised", затем остановите через Ctrl+C. Теперь он записал файлы, которые вы собираетесь редактировать, в:
<install>/KFGame/Config/Настройки сервера: LinuxServer-KFGame.ini
Откройте KFGame/Config/LinuxServer-KFGame.ini и задайте эти ключи. Они находятся в разных секциях, поэтому ищите каждый заголовок секции:
[Engine.GameInfo]
GameDifficulty=1.000000 ; 0=Normal 1=Hard 2=Suicidal 3=Hell on Earth
MaxPlayers=6 ; see "six players" below
[Engine.AccessControl]
AdminPassword=pick-a-secret ; login for the web panel
GamePassword=friends-only ; leave blank for open, set to lock the server
[Engine.GameReplicationInfo]
ServerName=My Private KF2 Server
[KFGame.KFGameInfo]
GameLength=1 ; 0=short (4 waves) 1=medium (7) 2=long (10)Включите панель Web Admin (в KF2 нет RCON)
В KF2 вообще нет RCON. Всё, что вы обычно делали бы через консоль, кик игроков, смена карт, чтение логов, происходит в браузерной панели Web Admin, которая идёт ВЫКЛЮЧЕННОЙ. Включите её в KFGame/Config/LinuxServer-KFWeb.ini:
[IpDrv.WebServer]
bEnabled=true
ListenPort=8080После запуска сервера откройте http://your.server.ip:8080 в браузере и войдите под пользователем Admin с AdminPassword, заданным выше. Откройте порт 8080/TCP в файрволе.
Строка запуска
KF2 принимает один аргумент в стиле URL, объединяющий карту, режим игры и переопределения на конкретный запуск, а затем несколько флагов для портов:
./Binaries/Win64/KFGameSteamServer.bin.x86_64 \
KF-BioticsLab?Game=KFGameContent.KFGameInfo_Survival?Difficulty=1?GameLength=1 \
-Port=7777 -QueryPort=27015 -WebAdminPort=8080- KF-BioticsLab это стартовая карта. Замените на любую карту KF- (KF-Outpost, KF-Nuked, KF-VolterManor…).
- Game= выбирает режим: KFGameInfo_Survival (кооп), KFGameInfo_WeeklySurvival, KFGameInfo_VersusSurvival или KFGameInfo_Endless.
- Difficulty и GameLength в URL переопределяют INI для этого запуска, удобно для быстрых изменений без редактирования файлов.
- Откройте 7777/UDP (игра), 27015/UDP (Steam-запрос) и 8080/TCP (веб-админ) в файрволе.
Единственная загвоздка: шесть игроков
Ванильный KF2 ограничивает сервер шестью игроками. Установка MaxPlayers выше 6 в INI ничего не даёт: движок возвращает его к 6. Это задуманный размер кооператива, и он не требует никаких модов. Если хотите больше шести, нужен серверный мутатор (популярный читает реальный лимит из значения ?MaxPlayers= в URL запуска, а не из INI) плюс соответствующий ?MaxMonsters=, чтобы дополнительным игрокам всё ещё было с кем драться из Zed'ов.