Выделенный сервер 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.