このガイドでは、SourceModでユーザー権限を管理する方法を紹介します。
SourceModはMetaModのアドオンで、Source Engineで動作するほとんどのゲームに対応しています。プラグインの作成やサーバー管理を行うための強力で高度に最適化されたプラットフォームです。SourceModはTeam Fortress 2、Left 4 Dead 2、Counter-Strike: Sourceなどのゲームで広く使用されています!
SourceModをインストールしたゲームサーバーを運営していると、いずれプレイヤーをキックしたりバンしたりする能力(管理者権限)を自分や他の人に付与したくなることでしょう。
Steam IDの調べ方
ユーザーに権限を割り当てる前に、そのSteam IDを調べる必要があります。SourceModではSteamID2(STEAM_X:X:XXXXXXXX)とSteamID3([U:X:XXXXXX])の両方の形式がサポートされています。
Source Engineで動作するサーバーに接続している場合は、デベロッパーコンソールでstatusコマンドを実行することで、現在サーバーに接続しているプレイヤーのSteam IDを取得できます。
それ以外の場合は、Steam ID FinderやSteam ID I/Oといったツールを使ってSteam IDを調べることができます。
フラグ
ユーザーに割り当てたい具体的な権限を決めるには、SourceModのフラグシステムと、それぞれのフラグが提供するアクセス権を理解する必要があります。各フラグは単一の文字で割り当てられます。
SourceModで利用可能なフラグの一覧は以下の通りです。
| Name | Flag | Purpose |
|---|---|---|
| reservation | a |
予約スロットへのアクセスを許可します。 |
| generic | b |
一般的な管理者権限を許可します(admin権限に必須)。 |
| kick | c |
他のプレイヤーをキックする権限を許可します。 |
| ban | d |
他のプレイヤーをBANする権限を許可します。 |
| unban | e |
BANを解除する権限を許可します。 |
| slay | f |
他のプレイヤーをslay(即死させる)、ダメージを与える権限を許可します。 |
| changemap | g |
マップの変更や主要なゲームプレイ機能の変更権限を許可します。 |
| cvar | h |
大半のConVarを変更する権限を許可します。 |
| config | i |
コンフィグファイルを実行する権限を許可します。 |
| chat | j |
特別なチャット権限を許可します。 |
| vote | k |
投票の開始・作成権限を許可します。 |
| password | l |
サーバーにパスワードを設定する権限を許可します。 |
| rcon | m |
RCONコマンドを使用する権限を許可します。 |
| cheats | n |
sv_cheatsConVarの変更やチートコマンドの使用権限を許可します。 |
| root | z |
すべてのフラグを有効にし、免疫値を無視します。 |
さらに、プラグインなどで使用できるカスタムフラグも存在します。
| Name | Flag |
|---|---|
| custom1 | o |
| custom2 | p |
| custom3 | q |
| custom4 | r |
| custom5 | s |
| custom6 | t |
フラグに関する詳しい情報はこちらで確認できます。
パスワード
必要であれば、特定のユーザーに割り当てられたカスタム権限を使用する前にパスワードを入力するよう要求することができます。ユーザーはゲームサーバーに接続するたびにこのパスワードを入力する必要がありますが、希望すればこの処理を自分側で自動化することもできます。
まず、addons/sourcemod/configs/core.cfgファイルを編集し、PassInfoVarの行の値を_passwordから_testのような任意のカスタム値に変更します。ユーザーは自分固有のパスワードと、あなたがPassInfoVarに設定したパスワードの両方を知っておく必要があります。
ユーザーがゲームサーバーに接続する際、デベロッパーコンソールで以下のコマンドを実行する必要があります。
setinfo "<PassInfoVar Password>" "<User Password>"
例:
setinfo "_test" "myCustomPass123"
ユーザーがこの処理を自分側で自動化したい場合は、<Game Dir>/cfg/autoexec.cfgファイルを編集し、上記のコマンドをファイルに追加する必要があります。
Immunity(耐性)
immunityフラグは、クライアントの耐性レベルに応じて管理者同士がお互いを対象にできないようにするものです。
例えば、最初の管理者の耐性が20で、2番目の管理者の耐性が10しかない場合。最初の管理者は2番目の管理者を対象にできますが、2番目の管理者は最初の管理者を対象にできません。
注意 - zフラグ(root)を持つ管理者は、耐性レベルに関係なく、どのプレイヤーや管理者でも対象にできます。
ユーザー権限の管理
ユーザー権限の管理とフラグの割り当ては、addons/sourcemod/configsディレクトリ(Windowsではaddons\sourcemod\configsフォルダ)内のファイルを編集することで行います。
編集できるファイルは2つあり、以下で説明します。
admins_simple.iniファイルを使う方法
このファイルは、ユーザー権限を素早く割り当てるために使用されます。シンプルな設定や、ユーザーに素早く権限を割り当てたい場合に最適です。このファイルで権限を割り当てる際、各行は以下の形式にする必要があります。
"<Steam ID/!IP/Steam name>" "[Immunity Level:]<Flags/@group>" ["password"]
以下は、ユーザーにreservation、generic、kick、banフラグを70の耐性で付与する例です。
"STEAM_0:0:36969327" "70:abcd"
admins.cfgファイルを使う方法
このファイルを使用する場合、ユーザーに権限を割り当てる際に入力する行数が多くなりますが、より整理されていると考えられます。このファイルの形式はSourceModのKeyValuesを使用します。ユーザーはAdminsセクション内に追加する必要があります。
以下は、ユーザーを追加するための一般的な形式です。
"<Name>"
{
"auth" "steam"
"identity" "<Steam ID>"
"flags" "<Flags>"
"immunity" "<Immunity>"
}
各ユーザーに割り当てることができるキーの一覧は以下の通りです。
auth-steam、name、ipのいずれかである必要があります(カスタムの認証方法がある場合を除く)。これはSourceModがidentityの値をどのように解釈するかを指示します。identity- 認証方法と指定された値からSourceModがユーザーを見つけるための一意の値です。password- ユーザーが入力する必要があるパスワードを指定します。group- ユーザーが継承すべきグループ名を指定します(利用可能な場合)。groupの行は複数指定できます。曖昧さがないため、@記号は付けないでください。flags- ユーザーに付与するアクセスフラグです。immunity- ユーザーに付与する耐性レベルです。
ユーザーの再読み込み
上記のファイルを通じてユーザーに権限を割り当てた後は、権限が反映されるように管理者キャッシュを再読み込みする必要があります。
キャッシュはマップ変更時やサーバー再起動時に自動的に再読み込みされます。マップ変更やサーバー再起動を待たずに手動でキャッシュを再読み込みしたい場合は、サーバーコマンド sm_reloadadmins を使用できます。
関連情報
- Adding Admins - AlliedModsによる、管理者追加についての公式な詳細Wiki。
- SourceBans++ - ユーザー、グループ、BANなどの管理を簡単にする人気のプラグイン!
このガイドに関する質問やフィードバックがある場合は、こちらのフォーラムトピックに返信してください!このガイドは今後も継続的に手を加え、改善していく予定です。
Discordサーバーに参加しよう!

