WindowsとLinuxの両方でmodを使ったLeft 4 Dead 2サーバーを作成・実行する方法のガイドです!
Left 4 Dead 2は、ゾンビに蹂躙されたポストアポカリプス世界を舞台にした人気のFPSゾンビホラーゲームです。このゲームは優れたMod対応を誇っており、多くのModがSteam WorkshopやSourceModのプラグインを通じて利用できます。
Modを導入したサーバーを運営することで、プレイヤーはサーバーにインストールされたModを使い、共有・カスタマイズされた体験を楽しむために接続できます。
このガイドで具体的に対象とする2つのOSは、Windows 11とDebian 12(Linux)です。
本ガイドを続ける前に、いくつか補足しておきたいことがあります。
directory(Linuxで使われる用語)とfolder(Windowsで使われる用語)は同じ意味として使われます。分かりやすくするため、本ガイドでは基本的にdirectoryを使用します。- 同様に、本ガイドではファイルパスを
/like/thisの形式で表記しますが、これはLinuxで使われる形式です。Windowsでは代わりに\like\thisという形式でファイルパスを記述する必要があります。
要件
ハードウェア & ネットワーク
Left 4 Dead 2サーバーは、MinecraftやRustといった他のゲームのサーバーと比較して、RAM使用量がかなり軽めです。デフォルトでは、COOPやScavengeなどのゲームモードでは最大4人まで同時プレイでき、Versusでは最大8人まで同時にプレイ可能です。SourceModのプラグインを使えば、サーバーのmaxplayersを最大32人まで増やすこともできます!
ハードウェアおよびネットワークの要件については、以下のトピックを読むことをお勧めします。
https://moddingcommunity.com/blog/hardware-network-requirements-for-source-engine-servers/
ポートフォワーディング
サーバーをインターネットからアクセス可能にする予定がある場合、ルーターでUDPおよびTCPポート27015をポートフォワーディングする必要があるかもしれません。本ガイドではポートフォワーディング自体については詳しく扱いませんが、先ほど挙げたポートのフォワーディング方法について役立つ他のガイドを紹介しておきます。
- NordVPN - How to open ports on your router
- No-IP - How to Port Forward – General Guide to Multiple Router Brands
- PortForward - How To Forward a Port
LANネットワークがNATとして動作している場合、NATルールも作成する必要があるかもしれません。
サーバーファイルのダウンロード
次のステップは、SteamCMDを使ってサーバーファイルをダウンロードすることです。以下のトピックを読んでください。なお、Left 4 Dead 2サーバーのアプリケーションIDは222860です。
https://moddingcommunity.com/blog/how-to-download-run-steamcmd/
Left 4 Dead 2サーバーの実行
時間を節約するため、Left 4 Dead 2サーバー用の起動スクリプトを作成していきます。LinuxとWindowsの両方向けに、No Mercyキャンペーンの最初のレベルであるc8m1_apartmentマップを起動するスクリプトを作成します。サーバーは、UDPポート27015上ですべてのIPアドレスおよびインターフェース(0.0.0.0)にバインドされます。
Windows
ファイルエクスプローラーで新しいサーバーファイルを確認すると、srcds.exeという名前のファイルが見つかるはずです。
サーバーを起動するために、start-server.batという名前のバッチファイル/スクリプトを作成します。このファイルを作成する前に、ファイル名の拡張子を表示できるようにしておき、拡張子を設定できることを確認してください。ファイルの拡張子が表示できない場合は、こちらを参照してください。
バッチファイルを作成したら、以下の内容を追加してください。
@echo off
.\srcds.exe -game left4dead2 -console -ip 0.0.0.0 -port 27015 +maxplayers 4 +map c8m1_apartment
これで、新しく作成したバッチファイルをダブルクリックするだけでサーバーを起動できるはずです!
Linux
cd ~/l4d2などを実行してサーバーファイルのディレクトリに移動すると、ディレクトリ内にsrcds_runとsrcds_linuxファイルが見つかるはずです。サーバーを起動するためのシンプルなBashスクリプトを作成していきます。
スクリプトを作成するために使えるテキストエディタには、NanoやVimなど多くの種類がありますが、本チュートリアルではNanoを使用します。スクリプトの名前はstart-server.shとします。
まず、以下のコマンドを使って新しいファイルの編集を開始します。
nano start-server.sh
次に、以下の内容をファイルに貼り付けます。
#!/bin/bash
./srcds_run -game left4dead2 -console -ip 0.0.0.0 -port 27015 +maxplayers 4 +map c8m1_apartment
完了したら、CTRL + Xを押し、Enterキーを押してファイルを保存します。ファイルの内容を確認したい場合は、cat start-server.shを実行してください。
ファイルを保存したら、以下のコマンドでファイルを実行する権限をユーザーに付与しておく必要もあります。
chmod u+x start-server.sh

最後に、以下のコマンドでサーバーを起動できます。
./start-server.sh

注意 - VACを特に無効化していない限り、VAC secure mode is activatedというメッセージが表示されるはずです。また、サーバーをインターネットからアクセス可能にしたい場合、上記のスクリーンショットからは削除されていますが、Public IP is <your WAN IP>というメッセージも表示されるはずです。
サーバーを停止するには、サーバーコンソールからquitコマンドを実行するか、CTRL + Cを押してサーバーのプロセスを終了させるシグナルを送信してください。
Screenを使用する
インストールが完了すると、screen コマンドを使用して、Linuxのターミナルを開いたままにしなくてもサーバーを動作させ続けることができます(バックグラウンドで実行)。screen コマンドについてはこちらを読んでおくことをお勧めします。
まず、screenパッケージをインストールしましょう。このコマンドはrootまたはsudo経由で実行する必要があるため、現在のserversユーザーからexitコマンドでログアウトする必要があるかもしれません。
Debian/Ubuntu
sudo apt install -y screen

次に、サーバー起動コマンドをコピーし、前に screen -S <name> を追加します。以下は例です。
screen -S l4d2 ./srcds_run -game left4dead2 -console -ip 0.0.0.0 -port 27015 +maxplayers 4 +map c8m1_apartment
これでサーバーがscreen内で起動します。デフォルトでは CTRL + A + D でscreenからデタッチできます。
screenにアタッチするには、screen -r(開いているscreenが1つだけの場合、自動的にその単一のscreenにアタッチされます)または screen -r <name> を実行します。上記のコマンドでは、l4d2 という名前のscreenを作成しました。したがって、名前でscreenにアタッチするには以下のコマンドを使用できます。
screen -r l4d2
また、サーバーの起動スクリプトを変更して、上記と同様に先頭に screen -S <name> を追加することで、スクリプトが自動的にサーバーをscreen内で起動するようにすることもできます。
サーバー設定ファイルの作成
次のステップは、autoexec.cfg と server.cfg という2つのファイルを作成してサーバーを設定することです。autoexec.cfg はサーバーのゲームタイプ(例:COOP、Versusなど)を設定するために使用され、サーバー起動時に一度だけ実行されます。一方、server.cfg ファイルにはホスト名(サーバーブラウザ内で表示される名前)などの一般的な情報が含まれ、各マップの開始時に実行されます。両方のファイルは left4dead2/cfg ディレクトリ内に配置されます。
Left 4 Dead 2がこれらのファイル内で使用する設定形式は <ConVar> "<Value>" です。
以下の内容を autoexec.cfg ファイルに貼り付けます。
sv_gametypes "coop,survival"
sv_gametypes ConVarはサーバーが実行するゲームタイプを制御します。coop、realism、survival、versus、scavenge、dash、holdout、shootzone の値から選択できます。値をコンマ(,)で区切ることで複数指定することもできます。例:coop,versus,survival。
注意 - sv_gametypes ConVarの値は、サーバーの起動コマンドに +sv_gametypes <...> を追加することでも設定できます。しかし、私個人としては autoexec.cfg ファイルを使用することを好みます。というのも、コマンドラインへのアクセスを一部のユーザーに制限したいが、それでもサーバーのゲームタイプなどを変更できるようにしたい場合があるためです。
次に、以下の内容を server.cfg ファイルに貼り付け、ConVarの値を必要に応じて変更してください。
hostname "My Server Name"
sv_password ""
rcon_password "CHANGEME"
hostnameは、サーバーブラウザや外部のウェブサイト(A2Sクエリを通じてサーバーに問い合わせるもの全般)で表示されるサーバーの名前です。sv_passwordは、プレイヤーがサーバーに参加する前に入力する必要のあるパスワードです。空欄の場合、サーバー参加時にパスワードの入力プロンプトは表示されません。rcon_passwordはRCONアクセスに必要なパスワードです。このパスワードを知っている人が、RCONが動作しているTCPポートに遠隔でアクセスできる場合、サーバーコマンドを実行できてしまうため、信頼できる人物やスタッフのみが知っているようにすべきです。
server.cfg ファイルを通じて設定できる、Left 4 Dead 2内の他にも気に入るであろう多くのConVarがあります!Left 4 Dead 2のConVarの良いリストがこちらにあります。
パフォーマンス関連のConVar
ネットワーク速度、利用可能な帯域幅、サーバーのハードウェアに応じて、サーバーのパフォーマンス向上に役立つ設定できるConVarがいくつかあります。
前述のガイドの以下のセクションを読んでみてください!
https://moddingcommunity.com/blog/how-to-install-update-sourcemod-metamod/
Left 4 Dead 2サーバーをMod化する方法
Left 4 Dead 2サーバーをMod化する際に使用される方法は2つあります。
最も一般的な方法は、サーバーにSourceModとMetaModをインストールし、SourceModプラグインをインストールすることです。
あまり一般的でない方法は、Left 4 Dead 2のworkshopを通じてアイテムをサブスクライブし、こちらのようなツールを使用してアドオンのファイルを抽出し、そのファイルをサーバーに追加することです。
SourceModとMetaModを使用してLeft 4 Dead 2サーバーをMod化することをお勧めします。より多くのプラグインや機能が利用できるためです。
SourceMod & MetaModプラグインのインストール
まず、Left 4 Dead 2サーバーにSourceModをダウンロードしてインストールする必要があります。以前に作成した、その方法についてのガイドを読むことをお勧めします!
https://moddingcommunity.com/blog/how-to-install-update-sourcemod-metamod/
次に、こちらからプラグインを探してみましょう。一般的に、プラグインの説明にはインストール方法の詳細が含まれています。しかし、以下は良い目安となります。
.sp拡張子で終わるファイルは、SourcePawnで書かれたプラグインのソースコードを含みます。.smx拡張子で終わるファイルはコンパイル済みのソースコードで、addons/sourcemod/pluginsディレクトリ内に配置する必要があります。- ファイル名に
games.txt(またはl4d2.txtのようなもの)が含まれるファイルは通常gamedataファイルであり、addons/sourcemod/gamedataディレクトリ内に配置する必要があります。 - ファイル名に
phrases.txtが含まれるファイルは翻訳ファイルであり、addons/sourcemod/translationsディレクトリ内に配置する必要があります。 .soまたは.dll拡張子で終わるファイルは通常SourceModのextensionであり、addons/sourcemod/extensionsディレクトリ内に配置する必要があります。
プラグインのソースコードをコンパイルする必要がある場合もあります。その方法については、以下のトピックをご覧ください!
https://moddingcommunity.com/blog/how-to-compile-sourcemod-plugins/
Steam Workshopの利用
場合によっては、欲しいModがSteam Workshopでしか入手できないことがあります。これはカスタムキャンペーンでよくあるケースです。残念ながら、Garry's Modなどの他のゲームと違い、Left 4 Dead 2のサーバーはSteam Workshopをネイティブにサポートしていません。
そのため、Workshopアイテムからファイルを抽出し、サーバーファイルに追加する必要があります。
コレクションを作成する
最初に行うべきことはコレクションの作成です。これはSteamアプリケーション内、またはSteamのウェブサイトから行うことができます。このガイドではSteamアプリケーションを使用します(どちらもインターフェースはほぼ同じです)。
まず、Community -> Workshop に移動します。

次に、「Search for a Workshop」と表示されている箇所にLeft 4 Dead 2と入力します。ドロップダウンメニューからそのアイテムをクリックできます。

次に、画面の左中央付近にあるBrowseのドロップダウンメニューをクリックし、Collectionsをクリックします。

その後、Create Collectionをクリックします。

次に、ページ内のすべての項目を入力します。このガイドではタイトルを単に「Test Collection」とします。

最後に、右下のSave and continueボタンをクリックしてコレクションを作成します。

ここから、SteamのURLバーの?id=の後に表示される数値のコレクションIDを控えておいてください。後で必要になります。

例えば、以下のURLのコレクションIDは3386575566です。
https://steamcommunity.com/sharedfiles/managecollection/?id=3386575566
NOTE - コレクションが公開され、他の人が見られる状態になっている場合、ユーザーはワンクリックでコレクション内のすべてのMod/アドオンを購読できるようになります。
新しいコレクションにアイテムを追加する
こちらからLeft 4 Dead 2のWorkshopを閲覧してコレクションに追加したいアイテムを見つけるか、アイテムへの直接リンクを使用します。
ここから、Add to Collectionボタンをクリックします。

これにより、所有しているすべてのコレクションのチェックボックスリストが表示されます。アイテムを追加したいコレクションを必ずチェックし、Okをクリックしてください。

コレクションを公開する
次に、作成したコレクションに戻り、Publishボタンをクリックして公開します。

アドオンのファイルを抽出する
コレクション内の各アドオンのファイルを抽出するには、こちらのツールを使用することをお勧めします。
このツールはPythonで作られています。WindowsへのPythonのインストール方法についてはこちらを、LinuxへのPythonのインストール方法についてはこちらをお読みになることをお勧めします。
ツールはGitHubのウェブサイトこちらから直接ダウンロードするか、システムにGitがインストールされている場合はgit clone https://github.com/Geam/steam_workshop_downloaderを使用してください。
Pythonをインストールし、ツールをダウンロードした後、以下のコマンドを実行します。
./workshop.py <Collection ID>
ここで<Collection ID>は上記で取得したIDです。例:
./workshop.py 3386575566
Windowsでは、上記のコマンドにpythonを前置する必要がある場合があります。以下のようになります。
python .\workshop.py <Collection ID>
これが完了すると、*.vpkファイルが表示されるはずです。

次に、これらのファイルをサーバーのaddons/ディレクトリにアップロード/コピーし、サーバーを再起動してください!
サーバーが再起動されると、addons/ディレクトリに追加したVPKファイルは自動的にマウントされるはずです。カスタムキャンペーンを追加した場合、マップを読み込むためにbsp拡張子で終わるマップファイル名を知る必要があります。この情報が見つからない場合は、GCFScapeのようなツールを使ってVPKファイルからファイルを抽出してみてください。そこからマップファイルの名前を特定できます。
また、show_addon_metadataコマンドを使用して、マウントされているアドオンの情報を表示することもできます。例えば、私のLinuxのL4D2サーバーにResident Evil: Side Aのカスタムキャンペーンを追加した後、サーバーでこのコマンドを実行すると以下のように表示されます。
show_addon_metadata
MISSION: re2birkina (/home/servers/l4d2/left4dead2/addons/762591677.vpk)
サーバーへの接続
さあ、サーバーに接続しましょう!デベロッパーコンソールでopenserverbrowserを実行してサーバーブラウザ経由で接続するか、直接サーバーに接続することができます。
デベロッパーコンソールを開くには、キーボードの ` または ~ キーを押してください。デベロッパーコンソールが動作しない場合、おそらく無効化されているため、有効にする方法をこちらで確認してください!
サーバーに直接接続したい場合は、接続先のIPv4アドレスまたはホスト名を取得する必要があります。専用ホスティングプロバイダーを利用している場合、必要なIPv4アドレス/ホスト名は以下を含む複数の場所で確認できるはずです。
- ホスティングプロバイダーのWebパネルから。
- サーバー起動時に表示されるパブリックIPを使用する。
注意 - IPv4はxxx.xxx.xxx.xxx形式ですが、ホスト名は名前またはドメイン(例:myserverやmyserver.mydomain.com)のいずれかです。
サーバー自体にいる場合、またはサーバーがローカルでホストされている場合は、Linuxではip aまたはifconfigコマンド、Windowsではipconfig /allコマンド(コマンドプロンプトまたはPowerShellを使用)でネットワークインターフェースとIPを一覧表示することでもサーバーのIPを取得できます。
IPを見つけたら、Left 4 Dead 2を起動し、キーボードの\(または~)キーを押してデベロッパーコンソールを開いてください。
デベロッパーコンソールが表示されたら、connect <ip/hostname>またはconnect <ip/hostname>:<port>と入力します。今回はサーバーをLeft 4 Dead 2のデフォルトポートである27015にバインドしているため、この場合ポートを入力する必要はありません。
私は自宅のネットワーク内での自分のサーバーの内部ホスト名、つまり単純にx-gs01を使用します。
connect x-gs01

これでLeft 4 Dead 2サーバーに接続できているはずです!デベロッパーコンソールでstatusと入力して確認できます。

よくある質問
SteamCMDでダウンロード中に「Invalid Platform」エラーが表示されます
LinuxでLeft 4 Dead 2のサーバーファイルをダウンロードする際にこのエラーが発生している場合、Steam側の変更により2024年後半に発生したこの問題に該当している可能性が高いです。
私が見つけた限り、この問題には2つの解決方法があります。
-
SteamCMDでログインする際にご自身のSteamの認証情報を使用してください。このガイドで
loginコマンドを実行する際に、Steamのユーザー名を入力し、スペースを空けてからパスワードを入力します。例:login whoz MYPASSWORD。 -
単一のコマンドでWindows、続いてLinuxの両方を使ってSteamCMDを2回実行することで、この問題を解決できます。
# Use Windows as platform path really quick.
./steamcmd.sh +force_install_dir ../l4d2 +@sSteamCmdForcePlatformType windows +quit
# Finally use Linux which should then start the download successfully.
./steamcmd.sh +force_install_dir ../l4d2 +@sSteamCmdForcePlatformType linux +app_update 222860 +quit
サーバーで自分自身や他の人を管理者として追加するにはどうすればいいですか?
Left 4 Dead 2サーバーにSourceModとMetaModがインストールされている場合、自分自身や他の人を管理者として追加できます。
この手順については、以下のトピックをぜひご覧ください!
https://moddingcommunity.com/blog/how-to-manage-user-permissions-in-sourcemod/
Windowsでファイル拡張子を表示・編集するにはどうすればいいですか?
Windows 11で隠しファイル拡張子を表示するには、エクスプローラーから表示->表示をクリックし、ファイル名拡張子のチェックボックスがオンになっていることを確認してください。
この手順は他のバージョンのWindowsでも非常によく似ています。
他のバージョンのWindowsでファイル名拡張子を表示する方法については、こちらのガイドをご覧になることをお勧めします!
サーバーファイルを自動的に更新するスクリプトを作ることはできますか?
はい、可能です!
前述のガイドの以下のセクションをぜひご覧ください!Left 4 Dead 2サーバーのアプリケーションIDは222860であることを覚えておいてください!
https://moddingcommunity.com/blog/how-to-download-run-steamcmd/#automation-with-script-files
デベロッパーコンソールを有効にするにはどうすればいいですか?
デフォルトでは、Left 4 Dead 2でデベロッパーコンソールは有効になっていません。
有効にするには、Left 4 Dead 2を起動し、オプションメニュー項目をクリックします。そこから、ドロップダウンメニューのキーボードとマウス項目をクリックしてください。

次に、デベロッパーコンソールを許可するオプションを無効から有効に切り替えます。
最後に、完了ボタンをクリックしてください!
これでキーボードの`または~キーを押す、または押し続けることでコンソールを開けるようになったはずです。

関連情報
Left 4 Dead 2での管理体験を向上させたいサーバーオーナーの方々に向けて、いくつかの役立つリソースやツールをご紹介しておきたいと思います。
- Pterodactyl - Left 4 Dead 2、Counter-Strike、Rust、Minecraft、FiveMなどのゲームで簡単にサーバーを作成・管理できるツールを提供する、Linux向けの非常に人気のあるオープンソースゲームサーバーパネルです。
まとめ
以上でこのガイドは終わりですが、今後もさらに多くのガイドを作成していきたいと思っています!この時点で、1つ以上のMod/アドオンがインストールされた、正常に動作するLeft 4 Dead 2サーバーが完成しているはずです。
このガイドに関するご質問やご意見がありましたら、こちらのフォーラムトピックにご返信ください!このガイドは今後も継続して手を加え、改善していく予定です。
私たちのDiscordサーバーにぜひご参加ください!

