Killing Floor 2

Killing Floor 2

Not enough ratings
カスタムサーバー ガイド Custom Server Guide JP
By あさぴっぴ 1020
ここではカスタムサーバー構築について僕が知りうる限りのことを日本語で共有します。
カスタムマップの導入と、ゲームモードの変更、Mutatorの利用について特に話します。
   
Award
Favorite
Favorited
Unfavorite
はじめに
ここは僕がカスタムサーバーを立てるまでに得た情報を日本語で共有したいと思い作ったガイドです。
正直知識不足な面もあるので、お気軽に指摘なりなんなりコメントをしていただいて、日本人のためのカスタムサーバーガイド改善を助けていただけると幸いです。
サーバー構築の基本
サーバー構築そのものの基本については次のガイドが実に有用です。
ゲームサーバーの立て方
また和Wikiと英Wikiのサーバー構築に関するリンクを一応貼っておきます。
和Wiki[w.atwiki.jp]
英Wiki[wiki.killingfloor2.com]

またPortの開放では、Windowsのファイアウォール、その他利用しているウイルス対策ソフト、ルーターそれぞれで設定するよう注意してください。
上手くいかない時はルーターやPCを再起動してみるのもありです。
WindowsファイアウォールのPort開放のヘルプ[support.borndigital.co.jp]
また、サーバーにするPCのIPは静的である必要がある。(でないとポート開放設定を起動毎に変えないといけなくなるので)
Workshopとの連携
カスタムマップの導入にせよ、Mutatorの導入にせよ、その方法の一つとして最も簡単なのがWorkShopとの連携です。これを施すことによりサーバーへのダウンロード、プレイヤーへのダウンロードが共通してWorkshopから行われるようになります。
まず、
kf2server\KFGame\Config
にあるPCServer-KFEngine.iniを編集します。
[IpDrv.TcpNetDriver] なるセクションをCtrl+Fなど使いつつ探し、そこに
DownloadManagers=OnlineSubsystemSteamworks.SteamWorkshopDownload
を追加します。これでWorkshopと連携させられます。
他にもDownloadManagersがあると思いますが、これが先頭に来るようにします。
Workshopからのダウンロードしか考えない場合他のManagersは消してもいいです。
寧ろダウンロードが上手く行えないようでしたら消してください。
MaxDownloadSize=1024000
が同じセクションに見つかります。読み込むファイルが大きくても良いように、ダウンロード上限容量を上げるよう書き換えます。
MaxDownloadSize=102400000
次は [IpDrv.HTTPDownload] 内を書き換えます。
デフォルトのURLではダウンロードが低速すぎるので、Workshopからダウンロードするよう指定してあげています。
ファイルのダウンロード
マップでもMutatorでも、まずはそれぞれのファイルをダウンロードできるようIDを指定します。
引き続き PCServer-KFEngine.ini にて、 [OnlineSubsystemSteamworks.KFWorkshopSteamworks] なるセクションを追加します。ここで
ServerSubscribedWorkshopItems=1554427429
と記入して指定したIDのファイルをダウンロードできるようにします。
ここの数字の部分がWorkshopにおけるIDです。IDはアイテムのページリンクの末尾からわかります。
ServerSubscribedWorkshopItems=1554427429 // ControlledDifficulty
のように、// を用いてコメントアウトしたメモを残すことも可能です。
ファイルはkf2serverを起動すると次のディレクトリにダウンロードされます。
kf2server\KFGame\Cache
カスタムマップのセットアップ
マップのファイルがダウンロードされたら、これをサーバー内で利用可能にするためいくつか設定する必要があります。
PCServer-KFGame.ini を編集します。
ここに次のようなセクションが見られると思います。
[KF-BioticsLab KFMapSummary] MapName=KF-BioticsLab
実際にはさらに何行か続くと思いますが大事なのはこのセクション名と1行目です。
導入したカスタムマップについても同様のセクションをそれぞれ作ってあげましょう。
なお、KF-部分はkfmファイルの名前が入るので、随時Cacheからファイル名を調べて入力してください。
次にサーバーを起動してWebAdminにアクセスします。
Settings > Map Cycles を見ると左側に AVAILABLE MAPS が、右側に MAP CYCLE が表示されていると思います。先ほどのini編集で AVAILABLE MAPS が増えているので、カスタムマップをドラッグ&ドロップで MAP CYCLEに入れましょう。これでマップ投票時のマップリストに反映されます。
起動オプションの変更
ゲームモードのModや、Mutatorの導入はサーバー起動時の設定を変えることで行います。
kf2server.bat の中身はデフォルトで次のようだと思います。
start.\Binaries\Win64\kf2server kf-bioticslab?adminpassword=123
ここで?で条件を繋ぐことでオプションを変更します。
start.\Binaries\Win64\kf2server kf-corridor?game=ControlledDifficulty_Eternal.CD_Survival?difficulty=3?gamelength=2?maxmonsters=50?spawncycle=dtf_v1?mutator=ClassicScoreboard.ClassicSCMut,FriendlyHUD.FriendlyHUDMutator
ここで初期マップなどから設定が可能です。なお、複数のMutatorを使う際はソロの時も同様ですが、上記コードのようにカンマで繋げてください。
起動オプションそれぞれに対してbatファイルを違う名前で保存し、複数用意しておくと便利です。当然ですがbatファイルが複数あってもサーバーを複数立てたりはできません。(複数サーバーにはPortを増やす必要がある)
なお、WebAdminで普通にChange Mapを行うとゲームモードのModもMutatorも外れます。マップ投票からマップを選択する際は問題ありません。
マップリストのカスタマイズ
図1カスタムマップの導入で煩雑になりがちなリストを整理するために、しばしば図1のようなリストにカスタムしたりします。その方法を紹介しましょう。
まず PCServer-KFGame.ini を開きます。その中の [KFGame.KFGameInfo] なるセクション内で次のラインを見つけます。
ActiveMapCycle=0 GameMapCycles=(Maps=("KF-BioticsLabUK","KF-KF1-FreighYard",・・・
ActiveMapCycle は何番目のサイクルがアクティブかを示します。0からのカウントなので0ならば一つ目のサイクルがアクティブです。
その次の行がMapCycleの情報になります。WebAdminではなくここで編集することもできます。


ここのサイクルに "-------KF1-------" のような仮想のマップを追加することで、題意のカスタムが完了します。なお、マップ変更でこれを選択すると、初期マップ(デフォルトでBioticsLab)が代わりに開かれます。
知っていると良い諸々
Itemの状態
サーバーを起動するとログが表示される黒いウィンドウが開くと思います。Workshopとの連携でファイルのダウンロード設定がされていれば次のようなラインが見られると思います。
NetComeGo: Checking item 1554427429 for updates NetComeGo: Item State is 0
ここでItem Stateについて説明します。
  • 0・・・未ダウンロード。これから初ダウンロードします。
  • 4・・・既ダウンロード。アップデート済。
  • 12・・・既ダウンロード。要アップデート。これからアップデートします。
  • 20・・・状態チェック失敗。あるいはWorkshopとの接続ロスト。サーバー再起動が必要。
  • 8・・・よくわからん。アップデートチェックに難あり、らしい。
  • 36・・・よくわからん。問題という問題はないらしい。

Warning
次に、主要なWarningについて解説します。
Warning: Warning, Workshop: Steam does not appear to be running. Unable to check Workshop.
Workshopとの接続が失われています。サーバー再起動が必要。
Warning: Warning, Workshop: Unable to download workshop item 1554427429
指定アイテムがプライベート、あるいは指定IDが無効なもの。

サーバーアイコン
ランク:サーバーでは経験値が稼げます。Mutatorやカスタム設定は使われていません。カスタムマップはありえます。

ランク ストック:経験値は稼げます。Whitelisted Mutatorなる公認のMutatorの利用であったり、Friendly Fireのようなアンランクにしないカスタム設定がされています。

アンランク:経験値は稼げません。WhitelistedでないMutatorやModが用いられているか、アンランクにつながるカスタム設定がされています。
サーバー設定の諸々
WebAdminから設定できるものもありますが、いくつかの設定は PCServer-KFGame.ini を編集しないと変更できません。iniファイル編集後、設定を反映させるにはサーバーを再起動してください。
次の設定はサーバーを「ランク」状態に保ちます。
ReadyUpDelay=90 (秒) ロビーで一人以外が準備済みの際の待ち時間。 GameStartDelay=4 (秒) 全員が準備済みになってからゲームが始まるまでの時間。 最小値は1。0にするとゲームが始まりません。 TimeBetweenFailedVotes=10 (秒) 追放投票が却下されてから次の追放投票をするまでの待ち時間。 VoteTime=60.0 (秒) 追放投票の可能な時間。 MaxSpectators=2 観戦者の最大数。 KickVotePercentage=0.66 (%) 追放投票が成立するための必要投票割合。 0.83 = 83% は6人中5人に相当します。 bDisableTeamCollision=False Trueにすればゲーム中プレイヤー同士の衝突がなくなります。 bEnableDeadToVOIP=true falseに設定すると、プレイヤーは死んだ際リスポーンするまでボイスチャットが利用できなくなります。 bAdminCanPause=True Trueで管理者がゲームをadminpauseで一時停止可能になります。 一時停止中もプレイヤーはサーバーに接続、切断が可能。 bDisableVOIP=False Trueでボイスチャットが常に使えなくなります。 bDisablePublicTextChat=False Trueでテキストチャットが利用不可になります。 bDisableMapVote=False Trueでゲーム終了後にMap投票ができなくなります。 MaxIdleTime=0.000000 (秒) 長時間放置しているプレイヤーが自動追放されるまでの時間。 最大300秒。長時間放置しているとプレイヤーはテキストチャットで通知を受けます。 bDisableKickVote=False Trueで追放投票ができなくなります。 bSilentAdminLogin=False Trueで、管理者としてログインする際に他のプレイヤーに通知されません。 bPartitionSpectators=False Tureで、観戦者は観戦者同士でしか話せなくなります。テキストチャットには影響ありません。 bEnableMapObjectives=True falseで「意志を貫け」などの任務をなくせます。 節 [KFGameContent.KFGameInfo_Survival] か [KFGameContent.KFGameInfo_Endless] の下を探して、 [KFGame.KFGameInfo] の下では Trueに保っておいてください。

PCServer-KFEngine.ini にも同様の設定可能なものがあります。

bUsedForTakeover=False Trueにするとマッチメイキングで任意のプレイヤーによるサーバーの利用が可能になります。

次の設定はサーバーを「ランク - ストック」に変更します。
bDisablePickups=False Trueでアイテムのスポーンを無効にします。しかし弾薬ボックスはスポーンします。 FriendlyFireScale=0.000000 (%) フレンドリーファイアを有効にします。
WebAdminのカスタマイズ
ここでは、WebAdminにデフォルトで表示されないエンドレスのウェーブ数と、プレイヤーのレベルを表示する方法を解説します。このカスタム設定はランクサーバーをそのままに保ちます。
ファイルのバックアップはもしもに備えて取っておきましょう。なお、編集するファイルはすべて次のディレクトリにあります。
kf2server\KFGame\Web\ServerAdmin
エンドレスのウェーブ数表示
エンドレスではデフォルトでTIMEという表示はあれどWAVEはありません。この変更には次の二つのファイルを編集します。
gamesummary.inc current_rules.inc
なお、好きなソフトで開けばいいですが、普通にメモ帳とかでも十分です。
  1. gamesummary.inc
    line7,8(下から2,3行目)のTIMEに関する部分を次で置換します。
    <dt class="gs_wave">Wave <%wave.num%></dt> <dd class="gs_wave"><%wave.monsters.dead%>/<%wave.monsters.total%></dd>
  2. current_rules.inc
    先頭に次の2行を追加。
    <dt>Wave</dt> <dd><%wave.num%></dd>
    画像line5のようなDifficultyの行がない場合は次の2行も追加。
    <dt>Difficulty</dt> <dd><%rules.difficulty.text%></dd>
Perkレベルの表示
サーバー接続者のPerkレベルはデフォルトで見えませんが、次の4つのファイルを編集すれば表示可能です。
(という情報を得て次の操作をしましたが全部25レベと表示される不具合が生じました。
僕の設定ミスかもしれませんが、次の内容は誤っているおそれがあります。試してみてください)
current.html current_players.html current_player_row.inc current_players_row.inc
  1. current.html
    line63のPerkの行の次にこの1行を追加挿入。
    <th>Level</th>
  2. current_players.html
    ling12、Player Nameの下に次の2行を追加挿入。
    <th>Perk</th> <th>Level</th>
  3. current_player_row.inc
    line4のplayer.perk.nameの下に次の1行を追加挿入。
    <td class="right"><%player.perk.level%></td>
     
  4. current_players_row.inc
    line3のplayer.nameの下に次の2行を追加挿入。
    <td><%player.perk.name%></td> <td class="center"><%player.perk.level%></td>
    さらにその下のplayer.pingのclassはrightからcenterに変えましょう。
WebAdminのカスタマイズはサーバーを再起動しなくてもWebのリフレッシュだけで更新されます。
CDサーバーについて
ゲームモードの変更といえばいろいろありますがControlled Difficulty(以下CD)が人気だと思います。
ここではCDサーバー構築で気を付けたい2点を解説します。
  1. クライアント側の必須設定
    クライアント側(サーバーを利用する側)は自身の KFEngin.ini を適切に編集しなければ2ゲーム目以降にほぼクラッシュする現象が起きます。なお、このファイルの保存ディレクトリはデフォルトで次の場所です。
    ドキュメント\My Games\KillingFloor2\KFGame\Config
    変更する内容は、
    MaxObjectsNotConsideredByGC=179220 SizeOfPermanentObjectPool=179220
    の部分で、次のように変える必要があります。
    MaxObjectsNotConsideredByGC=33476 SizeOfPermanentObjectPool=0
     
  2. チャットコマンドの許可設定
    !cdで始まるチャットコマンドはデフォルトで設定を読み込むREADコマンドしか使えなくなっています。設定を変更するWRITEコマンドは KFControlledDifficulty.ini を編集しないと使えないです。
    もちろんこれはサーバー側の設定です。
    サーバー接続者全員にWRITEコマンドを許可する場合、次のラインをまず見つけてください。
    DefaultAuthLevel=CDAUTH_READ
    これを次のように変更します。
    DefaultAuthLevel=CDAUTH_WRITE
    ユーザーごとに許可したい場合はSteamIDで指定をします。許可したいユーザーのプロフィールURL末尾が 76561198930643117 のような数字の羅列になっているので、これをSteam ID Finder[steamidfinder.com]に入力します。
    表示された STEAM_0:1:485188694 をコピーしたら、iniファイルを編集します。
    DefaultAuthLevel=CDAUTH_READ AuthorizedUsers=(SteamID="STEAM_0:1:485188694",Comment="Asapi")
    などとなるようにしましょう。Commentの中身は任意です。
3 Comments
あさぴっぴ 1020  [author] 19 Feb, 2021 @ 10:49pm 
節「WebAdminのカスタマイズ」のPerkLevelの表示について注を追記しました。:Alberts:
あさぴっぴ 1020  [author] 17 Feb, 2021 @ 3:52am 
いくつかの節を追記しました。
また、ActiveMapcycleに関して誤った情報を載せていたので修正しました。
あさぴっぴ 1020  [author] 15 Feb, 2021 @ 10:32am 
節「Workshopとの連携」を一部編集いたしました。