Свой сервер

Выделенный сервер KF2 с Workshop: SteamCMD, BAT, WebAdmin

Этот гайд 2016 года поднимает выделенный сервер Killing Floor 2 на Windows с нуля, а затем подключает контент Steam Workshop. Пути - примеры; автор советует папки без пробелов и предупреждает: если выбираете другие пути, свяжите всё правильно. Более свежие инструкции - выделенный сервер через SteamCMD и домашний сервер: проброс портов и WebAdmin.

1. SteamCMD

Создайте C:\Servers\SteamCMD, скачайте SteamCMD для Windows у Valve и распакуйте туда steamcmd.exe. Это консольная программа, поэтому небольшие скрипты облегчают работу. Команды описаны в документации Valve по SteamCMD.

2. Установка и обновление игры

Создайте в папке SteamCMD файл _kf2_update.txt:

// KF2 UPDATE & QUIT
@ShutdownOnFailedCommand 1
@NoPromptForPassword 1
login anonymous
force_install_dir ../SteamServers/kf2/
app_update 232130 validate
quit

Создайте ярлык с объектом C:\Servers\SteamCMD\steamcmd.exe +runscript _kf2_update.txt и рабочей папкой C:\Servers\SteamCMD. Запускайте его каждый раз, когда нужно обновить сервер. Получится структура: C:\Servers\SteamCMD для утилиты и C:\Servers\SteamServers\kf2 для файлов сервера.

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

Создайте .bat-файл в C:\Servers\SteamServers\kf2\ (автор называет его KF2Server.bat):

start .\Binaries\win64\kfserver kf-bioticslab?adminpassword=123

Запустите его один раз, чтобы сервер создал ini-файлы. Остановить сервер можно сочетанием Ctrl+C в его окне.

Откройте KFGame\Config\KFWeb.ini и включите WebAdmin:

ListenPort=20111
bEnabled=true

После следующего запуска откройте WebAdmin по локальному IP машины и порту (например, http://192.168.0.3:20111). Имя пользователя - admin, пароль - тот, что указан в .bat. Смените пароль по умолчанию; если меняете его в интерфейсе, удалите пароль из .bat. Если порт не проброшен в интернет, риск невелик.

Предупреждения автора:

  • Обновление KF2 может перезаписать .bat, поэтому храните свою копию.
  • Названия карт в .bat пишутся строчными (kf-shoppingspree). Неверное имя карты приводит к бесконечной перезагрузке сервера.

Порты и брандмауэр

Пробросьте порты: 7777 UDP, 20560 UDP, 27015 UDP (игровые серверы Steam) и 20111 TCP (WebAdmin, только если хотите открыть его наружу). Дайте ПК сервера статический IP, например, зарезервировав адрес в DHCP роутера. Если сервер работает в локальной сети, но недоступен снаружи, трафик что-то блокирует: роутер, операционная система или даже модем провайдера. В брандмауэре Windows должен быть разрешён входящий TCP и UDP для Binaries\win64\kfserver.exe; обычно система сама спрашивает при первом запуске.

4. Подключение Workshop

Отредактируйте KFGame\Config\PCServer-KFEngine.ini и добавьте (вне других секций, либо допишите строку в секцию, если она уже есть):

[OnlineSubsystemSteamworks.KFWorkshopSteamworks]
ServerSubscribedWorkshopItems=644068210

Число - это ID предмета Workshop из адреса его страницы; 644068210 - карта KF-ShoppingSpree. Можно добавить сколько угодно предметов. На клиенте скачанные предметы с ID и именами файлов лежат в %USERPROFILE%\Documents\My Games\KillingFloor2\KFGame\Cache.

В секцию [IpDrv.TcpNetDriver] добавьте:

DownloadManagers=OnlineSubsystemSteamworks.SteamWorkshopDownload

При запуске сервер проверяет предметы Workshop и докачивает недостающие; это может занять несколько минут, при этом сервер продолжает работать с другим контентом. Он также должен подтягивать обновления от автора на ходу.

Важно (на апрель 2016): карты Workshop не добавляются автоматически в ротацию WebAdmin. Добавьте их вручную, указав точное имя карты без расширения, например KF-ShoppingSpree.

Вопросы и ответы

Какой Steam app ID ставит сервер KF2?
232130, устанавливается анонимно через SteamCMD.
Какие порты нужно пробросить?
7777 UDP, 20560 UDP и 27015 UDP, а также 20111 TCP, если WebAdmin должен быть доступен из интернета.
Почему сервер бесконечно перезагружается при старте?
Неверное имя карты в .bat-файле. Пишите имя строчными буквами, например kf-shoppingspree.