Свой сервер

Выделенный сервер KF2 через SteamCMD - конфиги и Workshop

Эта страница пересказывает популярный англоязычный гайд Steam по установке выделенного сервера Killing Floor 2 на Windows через SteamCMD. В отличие от гайда по серверу с кастомными картами и модами, здесь упор на ручную правку конфигов: сложность, MOTD, имя сервера, режим Versus и подписки Workshop.

Перед началом

Откройте на роутере порты:

ПортПротоколНазначение
7777UDPПорт сервера (игра)
27015UDPМастер-сервер / запросы
8080TCPWebAdmin
20560UDPПорт Steam

Нужно минимум 31 ГБ свободного места. Про роутер и файрвол - в статье порты сервера и NAT.

1. Скачайте SteamCMD

Архив SteamCMD от Valve: https://steamcdn-a.akamaihd.net/client/installer/steamcmd.zip. Распакуйте в отдельную папку (автор гайда держит серверы в C:\Steam-Server\).

2. Вход

Запустите steamcmd.exe. Через несколько секунд можно вводить команды:

login anonymous

3. Загрузка файлов сервера

force_install_dir ./kf2_ds/
app_update 232130 validate

Когда загрузка закончится, введите exit, чтобы закрыть SteamCMD.

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

В папке kf2_ds появится bat-файл. В нем прописаны стартовая карта и пароль администратора, позже мы будем его править. По умолчанию запускается сервер Survival, а не Versus. Чтобы остановить сервер, просто закройте его окно.

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

Сложность

В гайде сложность задается в kf2_ds\KFGame\Config\DefaultGame.ini:

[Engine.GameInfo]
GameDifficulty=0.000000
ЗначениеСложность
0Normal
1Hard
2Suicidal
3Hell on Earth

MOTD, баннер и сайт

Ниже в том же файле, в секции [KFGame.KFGameInfo]:

BannerLink=http://art.tripwirecdn.com/TestItemIcons/MOTDServer.png
ServerMOTD=Welcome to our server. \n \n Have fun and good luck!
WebsiteLink=http://killingfloor2.com/

\n - перенос строки в сообщении дня.

Режим Versus

Режим игры выбирается в строке запуска в bat-файле. Добавьте:

?Game=KFGameContent.KFGameInfo_VersusSurvival

О самом режиме: KF2 Versus Survival.

Имя сервера

В PCServer-KFGame.ini:

ServerName=
ShortName=

6. WebAdmin

Сначала WebAdmin нужно включить. В kf2_ds\KFGame\Config\DefaultWeb.ini замените:

bEnabled=false

на:

bEnabled=true

Затем откройте в браузере IP сервера и порт WebAdmin, например 127.0.0.1:8080 на самом ПК с сервером. Вход по умолчанию:

  • Логин: admin
  • Пароль: 123 (задается в bat-файле - смените его)

7. Предметы Steam Workshop

Откройте kf2_ds\KFGame\Config\PCServer-KFEngine.ini и найдите блок [OnlineSubsystemSteamworks.OnlineSubsystemSteamworks] (в нем строки вроде bUseVAC=true, GameDir=kf2, ProfileDataExtention=PFD). Под этим блоком добавьте новую секцию, по строке на каждый предмет Workshop:

[OnlineSubsystemSteamworks.KFWorkshopSteamworks]
ServerSubscribedWorkshopItems=605633924
ServerSubscribedWorkshopItems=605551918

ID - это число в конце ссылки на Workshop. Для http://steamcommunity.com/sharedfiles/filedetails/?id=535769647 это 535769647.

Совет из комментариев: на Windows-серверах контент Workshop может не скачиваться при старте, а в логе появляется "Attempting to check if item ... is installed without having downloaded it". Один игрок выяснил, что сервер скачивал предмет только при смене карты через WebAdmin.

Вопросы и ответы из гайда

Мой сервер никто не видит и не может зайти. Проверьте, что проброшены все порты из таблицы. Если все верно, а проблема осталась, обращайтесь к провайдеру. Инструкции под конкретные роутеры собраны на portforward.com.

Можно ли обойтись без проброса портов? Да: хостить через VPN-сеть вроде Hamachi. Зайти смогут только участники этой VPN-сети.

Как сменить порт сервера? Добавьте ключ порта в строку запуска в bat-файле (в гайде показан -port 27015).

Загрузка в SteamCMD оборвалась. Обычно помогает просто повторить загрузку.

Как обновить сервер? Откройте SteamCMD, снова войдите и повторите шаг загрузки. SteamCMD сам проверит, какие файлы нужно обновить.

Как проверить сервер из интернета? Узнайте внешний IP на сайте вроде whatismyip.com и подключитесь к нему через консоль игры или добавьте в избранное.

WebAdmin отвечает 404 Not Found. У одного комментатора порт 8080 уже занимала другая программа; перенос WebAdmin на другой порт в конфиге помог.

Автоматизация

Автор гайда также написал отдельную утилиту ServerTool для установки и обновления серверов (на GitHub - Zeromix9/ServerTool). Более распространенный вариант именно для KF2 - KF2ServerTool.

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

Сколько места на диске нужно серверу KF2?
Гайд требует минимум 31 ГБ свободного места под файлы сервера.
Как вручную добавить карты из Workshop на сервер KF2?
В PCServer-KFEngine.ini добавьте секцию [OnlineSubsystemSteamworks.KFWorkshopSteamworks] и по строке ServerSubscribedWorkshopItems=<ID> на каждый предмет. ID - число в конце ссылки на Workshop.
Как сделать сервер KF2 режима Versus?
Добавьте ?Game=KFGameContent.KFGameInfo_VersusSurvival в строку запуска в bat-файле сервера.
WebAdmin выдает 404 Not Found. В чем дело?
У одного игрока порт 8080 уже занимала другая программа. Смена порта WebAdmin в конфиге решила проблему.