MetaModとSourceModの両方をインストールおよびアップデートする方法を解説するガイドです。
必要なもの
- Windows、Linux、またはMacで動作しているSRCDSサーバー。
- SRCDSのファイルシステムへのアクセス(例:FTPやファイルエクスプローラー)。
- クライアントがWindowsで、サーバーがLinux/Macの場合、7-ZIPのようなファイル圧縮解凍ツールが必要になります。
MetaModのインストール方法
SourceModを動かすにはMetaModが必要です。そのため、通常はまずMetaModをインストールします。
- お使いのOSに合ったパッケージをこちらからダウンロードします。
- ダウンロードしたファイルをZIPやTar/GZIPなどで解凍します。
- 解凍したファイルのaddons/フォルダを、サーバーのメインゲームディレクトリにコピーします。例えば、Counter-Strike: Sourceであれば/path/to/server/cstrike/、Team Fortress 2であれば**/path/to/server/tf/**になります。
フォルダやファイルの上書きを確認された場合は、はいを選択してください。インストール後、addons/フォルダ内にmetamod.vdfファイルが存在することを確認してください。最近のバージョンのMetaModであればこのファイルは既に含まれているはずですが、もしmetamod.vdfファイルが見当たらない場合は、こちらで生成できます。
アップデート
- ゲームサーバーをシャットダウンします(厳密にはLinuxでは不要ですが、マップ変更後にサーバーがクラッシュする可能性があります)。
- 上記の手順1〜3を行います。
確認方法
MetaModがゲームサーバーにインストールされていることを確認するには、meta versionコマンドを実行してインストールされているバージョンを確認します。「unknown command」エラーが表示される場合、MetaModは正しくインストールされていません。
meta version
Metamod:Source Version Information
Metamod:Source version 1.12.0-dev+1165
Plugin interface version: 16:14
SourceHook version: 5:5
Loaded As: Valve Server Plugin
Compiled on: Dec 19 2022 17:29:31
Built from: https://github.com/alliedmodders/metamod-source/commit/63c5c15
Build ID: 1165:63c5c15
http://www.metamodsource.net/
SourceModのインストール方法
SourceModをインストールするには、以下の手順に従ってください。
- お使いのOSに合ったパッケージをこちらからダウンロードします。
- ダウンロードしたファイルをZIPやTar/GZIPなどで解凍します。
- 解凍したファイルのaddons/とcfg/フォルダを、サーバーのメインゲームディレクトリにコピーします。例えば、Counter-Strike: Sourceであれば/path/to/server/cstrike/、Team Fortress 2であれば**/path/to/server/tf/**になります。
アップデート
- ゲームサーバーをシャットダウンします(厳密にはLinuxでは不要ですが、マップ変更後にサーバーがクラッシュする可能性があります)。
- 上記の手順1と2に従います。
- 解凍したファイルの**addons/sourcemod/フォルダ内にあるすべてのフォルダとファイルを、configs/フォルダを除いて、ゲームサーバーのSourceModディレクトリにコピーします。例えば、Counter-Strike: Sourceであれば/path/to/server/cstrike/addons/sourcemod/**になります。
**configs/**フォルダを除外する理由は、databases.cfgファイルなどのよくあるカスタム設定が上書きされてしまうのを防ぐためです。
確認方法
SourceModがゲームサーバーにインストールされていることを確認するには、sm versionコマンドを実行してインストールされているバージョンを確認します。「unknown command」エラーが表示される場合、SourceModは正しくインストールされていません。
sm version
SourceMod Version Information:
SourceMod Version: 1.11.0.6926
SourcePawn Engine: 1.11.0.6926, jit-x86 (build 1.11.0.6926)
SourcePawn API: v1 = 5, v2 = 16
Compiled on: Dec 20 2022 14:00:51
Built from: https://github.com/alliedmodders/sourcemod/commit/fd63fff8
Build ID: 6926:fd63fff8
http://www.sourcemod.net/
MetaModとSourceModを利用しているゲーム
コミュニティサーバーやModサーバーでMetaModとSourceModが利用されているゲームの一部を紹介します。このリスト以外にも対応しているゲームがあることに留意してください。
- Half Life 2
- Counter-Strike: Source
- Counter-Strike: Global Offensive
- Team Fortress 2
- Left 4 Dead 1/2
- Day of Defeat: Source
- Zombie Panic: Source
- Fistful of Frags
MetaMod (MM)とは?
MetaModは、ValveのHalf Life 2/Sourceエンジン向けのC++プラグインであり、SourceModのような他のプラグイン/アドオンが動作できるようにするものです。以下はAlliedModdersによる正式な説明です。
Quote
Metamod:Sourceは、Half-Life 2向けのC++プラグイン環境です。GameとEngineの間に位置する「metamod」として機能し、その間を流れる呼び出しをプラグインが横取りできるようにします。SourceHookと呼ばれる仕組みを提供しており、これは仮想関数呼び出しをインターセプト、オーバーライド、置き換えするための非常に強力なライブラリです。
ValveもC++プラグイン環境を独自に提供していますが、私たちがMetamod:Sourceを開発した主な理由は2つあります。
個別のプラグインがそれぞれ独自のフック機構を使用すると、競合が発生します。中央集権的なSourceHook環境は、統一されたゲートウェイを提供することでこれを解決します。
Valveのレイヤーには、メモリから完全にアンロードされない、コンソールやプログラムによる制御が乏しいといった独特の癖があります。Metamod:Sourceは明示的で柔軟、かつオープンソースです。
重要な点として、Metamod:Sourceは「Mani Admin Plugin」「SourceMod」「EventScripts」とは異なります。これは、C++プラグインにいくつかのポインタを読み込んで渡すために設計された、非常に小さなライブラリラッパーです。ゲームプレイMODやMySQLサポートといった不要な機能をほとんど持たず、それ自体でオーバーヘッドを生じることもありません。
Metamod:Sourceは非常に自由度の高いオープンソースライセンスの下で提供されています。ライセンスは商用・独自利用を許可しているため、プラグインのソースコードを公開する必要はありません。(ただし、Valve SDKなどのサードパーティ製ソフトウェアのライセンス契約に従う必要がある場合があります。)
SourceMod (SM)とは?
SourceModは、MetaModのアドオンであり、ユーザーやサーバーオーナーが独自のプログラミング言語であるSourcePawnを使ってプラグインをスクリプト・開発できるようにするものです。また、サーバー管理を大幅に容易にするコマンドやツールも同梱されています。以下はAlliedModdersによる正式な説明です。
Quote
SourceModはHalf-Life 2エンジンで動作するあらゆるゲーム向けのサーバー改造(modification)です。プラグインのスクリプティングとサーバー管理を行うための、強力かつ高度に最適化されたプラットフォームです。デフォルトパッケージには基本的なプラグインセットが含まれていますが、コミュニティには2,500以上のプラグインが存在します。
基本機能(ユーザー向け)
使いやすく、非常にきめ細かい権限システム(SQL対応)
高度にカスタマイズ可能な管理者メニュー
リザーブスロット
柔軟なマップ管理プラグイン(ノミネート、rock the voteなど)
プレイヤーのキック/バン/スラップ/ミュートやcvarの変更などの基本コマンド
各種投票コマンド
チャットスパム対策
ユーザー・管理者両方に対応した包括的なチャットトリガー
翻訳が容易
SourceModは高度に最適化されており、C++コードを書く複雑さなしにSourceサーバーから最大限のパフォーマンスを引き出すのに理想的です。
スクリプティング機能(開発者向け)
Administration - 管理システムを開発するための包括的なAPI。
Clients - ゲーム内のクライアント情報とコールバックの操作。
Commands - クライアント/サーバーのコンソールコマンドの作成、フック、オーバーライド。
ConVars - コンソール変数の作成、フック、取得。
Database - 抽象化されたデータベースアクセス。
Engine - 多くのHalf-Life 2エンジン機能へのアクセス。今後も追加され続けます。
Entities - 名前付き・番号付き両方のエンティティプロパティの変更と取得。
Events - Half-Life 2のGameEventsの作成、発火、フック。
Files - ファイルシステムへのアクセス。
IPC - AMX Mod Xに似た、高度なプラグイン間通信。
Menus - MOD間で統一されたメニューを作成するための抽象化メニューAPI
Messages - UserMessagesの送信とフック。
Parsing - 高度で高度に最適化されたテキストパース。
Timers - タイマーイベントの作成。
Translation - 多言語フレーズファイルのルックアップ。
SourceModの何が違うのか?(開発者向け)
- 速度 - SourceModは驚異的に高速であり、これは決して誇張ではありません。全てのプラグインはメモリにロードされ、生のCPUコードに変換されます。SourceModのあらゆるホットスポットが求められる速度になるよう細心の注意が払われています。スクリプト言語は静的型付けであり、ガベージコレクションを必要としません。
- API - SourceModの作業の大部分は、APIをできる限り最良のものにすることに費やされています。インターフェースや関数を追加する際、私たちは以下の質問をします:
- それは最適化されたソリューションを表しているか?
- 誰かがそれを使うだろうか?
- どのくらい分かりにくいか?
- 最も一般的な使用方法に合致しているか?
- 将来的に拡張可能か?
- その名前は機能を表しているか?
- その名前は他の類似関数と一貫性があるか?
- 拡張性 - SourceModは完全に拡張可能です。SourceModはSourceMod自体とプラグインのイベント/ネイティブAPIの両方を拡張するための完全なC++ APIを提供します。
- オープンソース - SourceMod、その拡張機能、そしてそのプラグインは、すべてGNU General Public Licenseの下でオープンソースです!
関連項目
まとめ
これで完了です!これでSourceModとMetaModの両方のインストールとアップデート方法が分かったはずです。
ご質問やフィードバックがありましたら、このトピックに返信してください!

