Сервер 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
Анонимный вход и выбор папки установки.
Загрузка файлов сервера.
Серверу нужны распространяемые пакеты 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=12Versus?game=KFGameContent.KFGameInfo_WeeklySurvivalWeekly?game=KFGameContent.KFGameInfo_EndlessEndless?game=KFGameContent.KFGameInfo_ObjectiveObjective
Для обычного Survival аргумент не нужен. Пример строки bat-файла, запускающей Biotics Lab в режиме Objective:
start .\Binaries\win64\kfserver kf-bioticslab?game=KFGameContent.KFGameInfo_Objective
Мутаторы
На вики Tripwire есть список официально одобренных мутаторов из белого списка; в руководстве в пример приведены мутатор Maxplayers и Classic Scoreboard.
Проброс портов
Если вы используете роутер, пробросьте порты, чтобы сервер был виден в списке мастер-сервера Steam, работал режим Weekly и игроки могли подключаться:
| Назначение | Порт | Протокол |
|---|---|---|
| Игровой | 7777 | UDP |
| Запросы | 27015 | UDP |
| Веб-админка | 8080 | TCP |
| Steam | 20560 | UDP |
| NTP | 123 | UDP |
Запуск сервера
Обычно сервер запускают через 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 в консоли сервера, а не закрывайте окно принудительно.