Свой сервер

Сервер KF2 на Windows: SteamCMD, INI, режимы и порты

Страница пересказывает корейское руководство по установке и запуску выделенного сервера Killing Floor 2 на Windows. Другие подходы: сервер KF2 через SteamCMD и пользовательские карты и моды на сервере KF2.

Установка сервера

SteamCMD не скачивает файлы правильно, если в пути есть не-ASCII символы (например, корейские). Установите сервер в корень диска C, введя по порядку:

force_install_dir c:\KF2Server\
login anonymous
app_update 232130 validate

Вход в SteamCMD Анонимный вход и выбор папки установки.

Обновление через SteamCMD Загрузка файлов сервера.

Серверу нужны распространяемые пакеты Microsoft Visual C++. Установите UE3Redist.exe и vcredist_x64.exe из C:\kf2server\Binaries\Redist.

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

Один раз запустите KF2Server.bat в корневой папке, чтобы создались файлы конфигурации в C:\kf2server\KFGame\Config. Править нужно три файла.

KFWeb.ini

[IpDrv.WebConnection]
MaxValueLength=99999
MaxLineLength=99999
[IpDrv.WebServer]
ListenPort=8080
bEnabled=true

Значения максимальной длины (по умолчанию 4096) позволяют иметь более длинный список пользовательских карт в веб-админке и голосовании за карту. ListenPort это порт веб-админки, bEnabled включает её.

KFEngine.ini

[Engine.GameEngine]
bUsedForTakeover=FALSE
[IpDrv.TcpNetDriver]
DownloadManagers=OnlineSubsystemSteamworks.SteamWorkshopDownload

Первая настройка отключает включённую по умолчанию функцию Takeover. Вторая заставляет клиентов скачивать пользовательские карты, моды и мутаторы через серверы загрузки Мастерской Steam, что быстрее.

KFGame.ini

[Engine.AccessControl]
AdminPassword=
[KFGame.KFGameInfo]
GameLength=2
[Engine.GameReplicationInfo]
ServerName=

AdminPassword это пароль администратора. GameLength 2 означает игру из 10 волн. Чтобы в названии сервера отображались корейские (или другие не-ASCII) символы, сохраняйте KFGame.ini в кодировке UTF-16 LE.

Режимы игры

Добавьте режим в URL запуска:

  • ?game=KFGameContent.KFGameInfo_VersusSurvival?MaxPlayers=12 Versus
  • ?game=KFGameContent.KFGameInfo_WeeklySurvival Weekly
  • ?game=KFGameContent.KFGameInfo_Endless Endless
  • ?game=KFGameContent.KFGameInfo_Objective Objective

Для обычного Survival аргумент не нужен. Пример строки bat-файла, запускающей Biotics Lab в режиме Objective:

start .\Binaries\win64\kfserver kf-bioticslab?game=KFGameContent.KFGameInfo_Objective

Мутаторы

На вики Tripwire есть список официально одобренных мутаторов из белого списка; в руководстве в пример приведены мутатор Maxplayers и Classic Scoreboard.

Проброс портов

Если вы используете роутер, пробросьте порты, чтобы сервер был виден в списке мастер-сервера Steam, работал режим Weekly и игроки могли подключаться:

НазначениеПортПротокол
Игровой7777UDP
Запросы27015UDP
Веб-админка8080TCP
Steam20560UDP
NTP123UDP

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

Обычно сервер запускают через KF2Server.bat, например:

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

Полезные аргументы URL: ?AdminPassword= (не оставляйте простой пароль в bat-файле, укажите его в KFGame.ini) и ?Difficulty= (0 Normal, 1 Hard, 2 Suicidal, 3 Hell on Earth). Полезные ключи: -PREFERREDPROCESSOR=n для привязки к процессору и -ConfigSubDir= для отдельной папки конфигов на каждый сервер, если из одной установки запускается несколько серверов.

Использование лаунчера сервера

Скачайте SteamCMD, KF2ServerToolCMD (с проекта KF2ServerTool на GitHub) и KF2 Server Launcher и распакуйте в C:\kf2server\; SteamCMD положите в отдельную подпапку, например C:\kf2server\steamcmd. При установке пользовательского контента запускайте KF2ServerLauncher.exe от администратора, вставьте ID предмета Мастерской внизу и нажмите нужную кнопку: Add Map для пользовательских карт, Add Mod для модов, Remove чтобы убрать предмет с сервера. После загрузки запустите сервер из лаунчера. Для обычного запуска права администратора лаунчеру не нужны.

Лаунчер сервера Killing Floor 2 Server Launcher.

Советы

Безопасное выключение. Нажимайте Ctrl+C в консоли сервера, а не закрывайте окно принудительно.

Сезонные ZED. Добавьте ?SeasonalSkinsIndex=<число> в строку запуска: -1 отключено, 0 по умолчанию, 1 весна (то же, что по умолчанию, вариантов нет), 2 Summer Sideshow, 3 Хэллоуин, 4 Рождество. См. также сезонные скины ZED.

Модификатор Weekly. Добавьте ?WeeklySelectorIndex=<число>, чтобы выбрать Weekly Outbreak: 1 Boom, 2 Cranium Cracker, 3 Tiny Terror, 4 Bobble Zed, 5 Poundemonium, 6 Up Up and Decay, 7 Zed Time, 8 Beef Cake, 9 Blood Thirst, 10 Coliseum, 11 Arachnophobia, 12 Scavenger, 13 Wild West London, 14 Abandon All Hope, 15 Boss Rush, 16 Shrunken Heads, 17 Arsenal Ascent, 18 Primary Target, 19 Perk Roulette, 20 Contamination Zone, 21 Bounty Hunt.

В качестве источников руководство указывает страницу Dedicated Server на вики Killing Floor 2 и анонсы на форуме Tripwire.

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

Какие порты нужно пробросить для сервера KF2?
Игровой 7777 UDP, запросов 27015 UDP, веб-админка 8080 TCP, Steam 20560 UDP и NTP 123 UDP.
Какой app ID у сервера KF2 в SteamCMD?
ID выделенного сервера 232130; устанавливается командой app_update 232130 validate после login anonymous.
Как безопасно остановить сервер?
Нажмите Ctrl+C в консоли сервера, а не закрывайте окно принудительно.