Свой сервер

Еженедельные вспышки KF2 в любое время: трюк с сервером времени

Страница пересказывает архивный гайд по запуску любой недельной вспышки в Killing Floor 2 в любое время. Важно: по заметкам самого автора, способ перестал работать после осеннего обновления 2023 года: добавлены проверки, мешающие старту матча, и возникает проблема с загрузкой профиля после подмены времени. Материал оставлен для справки.

Обложка гайда Обложка оригинального гайда.

Зачем это было нужно

Недельные вспышки - наборы мутаций для обычного Survival, появившиеся в обновлении Summer Sideshow 2017 года. Сначала их было восемь, потом стало шестнадцать. Survival Weekly идёт по жёсткой автоматической ротации и не позволяет выбрать нужную вспышку, поэтому пропущенную приходится ждать до 15 недель. Осеннее обновление 2023 года наконец добавило выбор режима, но награда разблокируется только за вспышку, которая запланирована на текущую неделю, то есть заработать несколько наград заранее всё равно нельзя.

Суть трюка: KF2 запрашивает точное время у интернет-серверов и по нему выбирает вспышку. Если подсунуть игре будущую дату через локальный сервер времени, и клиент, и сервер переключатся на нужную вспышку. Автор описывает обычное прохождение вспышки и получение награды.

Автор отмечает, что всё сложно и подходит только опытным пользователям, готовым возиться с выделенным сервером. В одном из обновлений сказано, что выделенный сервер можно не ставить: после настройки сервера времени достаточно выбрать Solo Offline и режим Weekly.

Шаг 1: выделенный сервер (позже необязателен)

  1. Создайте C:\KF2Server и C:\SteamCMD, скачайте SteamCMD и распакуйте в C:\SteamCMD.
  2. В командной строке выполните cd /d C:\SteamCMD, затем установите сервер: steamcmd.exe force_install_dir C:\KF2Server login anonymous app_update 232130 validate quit. После установки сервер занимает около 20 ГБ.
  3. Создайте в C:\KF2Server файл Weekly.bat, который запускает Binaries\Win64\KFServer.exe KF-BurningParis?Game=KFGameContent.KFGameInfo_WeeklySurvival.
  4. Запустите его один раз, затем остановите через Ctrl+C, чтобы создались конфиги.
  5. В KFGame\Config\PCServer-KFGame.ini в разделе [Engine.AccessControl] задайте AdminPassword= и GamePassword=.
  6. В KFGame\Config\KFWeb.ini в разделе [IpDrv.WebServer] убедитесь, что bEnabled=true и ListenPort=8080 - это включает веб-интерфейс администратора.

Необязательная интеграция с Workshop: в PCServer-KFEngine.ini проверьте, что в [IpDrv.TcpNetDriver] есть DownloadManagers=OnlineSubsystemSteamworks.SteamWorkshopDownload, а в [OnlineSubsystemSteamworks.KFWorkshopSteamworks] добавьте строки ServerSubscribedWorkshopItems=<id>. Для пользовательских карт нужен ещё раздел [KF-CustomMap KFMapSummary] в PCServer-KFGame.ini с MapName, MapAssociation=2, bPlayableInSurvival=True, bPlayableInWeekly=True и т. д. (без расширения .kfm).

Шаг 2: локальный сервер времени

  1. Отключите автоматическую синхронизацию времени в Windows (настройки даты и времени) и выполните net stop w32time в командной строке администратора.
  2. Установите NetTime, запустите от имени администратора в автономном режиме (не как службу), откройте Configure и настройте использование только локального системного времени и «Always provide time».

Настройка NetTime Настройки NetTime из оригинального гайда.

  1. Полностью закройте NetTime (выход через трей), переведите системные часы вперёд на нужное число недель, чтобы попасть на желаемую вспышку, и запустите NetTime снова.

NetTime работает Рабочее состояние NetTime.

Порядок ротации:

№Вспышка
1Boom
2Cranium Cracker
3Tiny Terror
4Bobble Zed
5Poundemonium
6Up, Up, and Decay
7Zed Time
8Beefcake
9Blood Thirst
10Coliseum
11Arachnophobia
12Scavenger
13Wild West London
14Abandon All Hope
15Boss Rush
16Shrunken Heads

Список идёт по кругу. Если сейчас Beefcake (8), а нужна Abandon All Hope (14), добавьте 14 - 8 = 6 недель.

Шаг 3: перенаправление запросов времени

KF2 использует публичные серверы времени Google. Отредактируйте C:\Windows\System32\drivers\etc\hosts (скопируйте на рабочий стол, правьте, верните обратно) и добавьте строки, направляющие time.google.com и time1.google.com - time4.google.com на 127.0.0.1. Затем выполните ipconfig /flushdns в командной строке администратора.

Шаг 4: игра

Запустите выделенный сервер через Weekly.bat: он загрузит Burning Paris в Survival Weekly. Через веб-интерфейс http://127.0.0.1:8080 можно сменить карту. Запустите KF2: вспышка в меню должна совпасть с выбранной. Если нет, где-то допущена ошибка. Откройте консоль клавишей тильда, введите open 127.0.0.1, закройте консоль, введите обычный пароль и играйте. В упрощённом варианте просто выберите Solo Offline и Weekly.

Награды, 1 Пройденные заранее вспышки и награды, 1.

Награды, 2 Пройденные заранее вспышки и награды, 2.

Награды, 3 Пройденные заранее вспышки и награды, 3.

Награды, 4 Пройденные заранее вспышки и награды, 4.

Награды, 5 Пройденные заранее вспышки и награды, 5.

Награды, 6 Пройденные заранее вспышки и награды, 6.

Награды, 7 Пройденные заранее вспышки и награды, 7.

Награды, 8 Пройденные заранее вспышки и награды, 8.

Награды, 9 Пройденные заранее вспышки и награды, 9.

Награды, 10 Пройденные заранее вспышки и награды, 10.

Смена вспышки и возврат в норму

Чтобы сменить вспышку, остановите клиент, сервер и NetTime (выход через трей). Снова измените системные часы, затем запустите NetTime, сервер и игру в этом порядке. Чтобы всё вернуть, закройте всё, включите автосинхронизацию времени в Windows, удалите записи time.google.com из hosts и снова выполните ipconfig /flushdns.

Итог

Автор считает метод оправданным, если вам дороже время, чем полугодовое ожидание пропущенной вспышки. После осеннего обновления 2023 года он не работает, так что воспринимайте страницу как историю.

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

Этот способ ещё работает?
Нет. Третье обновление гайда сообщает, что осеннее обновление 2023 года добавило проверки, мешающие запуску матча, а также проблему с загрузкой профиля после подмены времени. Гайд оставлен как архив.
Сколько недель ждать пропущенную вспышку?
В ротации 16 вспышек, так что пропущенная возвращается максимум через 15 недель.
В чём состоял трюк?
Локальный сервер времени с датой в будущем, перенаправление запросов игры к серверам времени Google на свой компьютер через файл hosts - и клиент с сервером выбирают другую недельную вспышку из ротации.