Discord のロールと権限:Bot がそのロールを付与できない理由
ロールの階層は、Discord で何かがうまく動かない最も一般的な理由です。一度理解してしまえば、何時間ものトラブルシューティングを省けます。

どのサーバーオーナーもいずれ出くわす状況があります。Bot がロールを付与するはずなのに、付与しないのです。Bot には管理者権限があります。設定も保存されています。それでも何も起きません。
原因はほぼ必ず同じで、しかも権限とは関係がありません。
1つではなく2つの仕組み
Discord は、誰かが何かをしてよいかどうかを、2つの別々のステップで判断します:
- 権限。 そもそもこのロールは、ロールを管理してよいのか?
- 位置。 このロールは、対象のロールに触れられるほど上にあるのか?
ほとんどの人が知っているのは最初のステップだけです。つまずくのは2つ目のステップです。
ルールを1文で
メンバーは(Bot も含めて)、自分の最上位のロールより下にあるロールしか付与も削除もできません。そして、最上位のロールが自分のものより下にあるメンバーしかモデレートできません。
これは管理者権限があっても当てはまります。管理者権限が上書きするのは権限であって、階層ではありません。管理者権限を持っていても、ロールが一覧の一番下にある Bot は、実質的に何もできません。
例
ロールの一覧が、上から順に次のようになっているとします:
Owner
Administrator
Moderator
AlphaCloud <- the bot's role
Verified
Member
Bot にできること:
VerifiedとMemberを付与・削除する- 最上位のロールが
VerifiedまたはMemberのメンバーをモデレートする
Bot にできないこと:
Moderatorを付与する。そのロールが Bot より上にあるからです- モデレーターをキック、BAN、または名前変更する
- 管理者に手を出す
Bot にモデレーターロールを付与させたいなら、Bot のロールを Moderator より上にドラッグする必要があります。逆ではありません。
実践的なアドバイス
Bot のロールは、スタッフの最上位ロールのすぐ下に置きましょう。 このようにします:
Owner
Administrator
AlphaCloud <- here
Moderator
Verified
Member
こうすれば、Bot はリーダー層より下のすべてを管理でき、リーダー層そのものには手を出せません。ほとんどの場合、まさにそれが望んでいる形です。
順序は サーバー設定 の ロール から、ドラッグで変更できます。
それでもうまくいかない3つの特殊なケース
階層が完璧でも、Discord が Bot に決して許さないことが3つあります:
サーバーオーナーの名前変更やモデレート。 オーナーは階層の外にいます。どのロールも、どの権限も、それを変えられません。
同じ位置にあるロールの編集。 同じ高さにある2つのロールは、互いに触れられません。同じ高さではなく、本当に上にある必要があります。
@everyone ロールの付与。 全員が自動的に持っているもので、付与することはできません。
チャンネルの権限はサーバーの権限より優先される
2番目に多いケースはこうです。ロール上は Bot がメッセージを送ってよいことになっているのに、ある1つのチャンネルでだけ送らない。
Discord では、サーバーの権限に対して、チャンネルごとに例外を設けられます。あるチャンネルで、@everyone または Bot のロールのいずれかに対して メッセージを送信 が明示的に拒否されていれば、サーバーのロールがどうなっていても、そちらが優先されます。
これは直接確認できます。チャンネルの設定で 権限 を開き、上部で権限を確認する対象として Bot を選びます。すると Discord が、そのチャンネルで Bot に何が許されているのかを正確に表示してくれます。
何にどの権限が必要か
Bot にまとめて管理者権限を渡したくない場合は、次が現実的な一覧です:
| 作業 | 権限 |
|---|---|
| ロールを付与する | ロールの管理 |
| チケット、一時的なチャンネル | チャンネルの管理 |
| スパムを削除する | メッセージの管理 |
| ミュートする | メンバーをタイムアウト |
| 追い出す | メンバーをキック、メンバーを BAN |
| AFK チャンネルに移動させる | メンバーを移動 |
| ニックネームにプレフィックスを付ける | ニックネームの管理 |
| 誰が操作したかを知る | 監査ログを表示 |
多くの機能を使うなら、それでも管理者権限が現実的な選択です。 より安全だからではなく、そうしないと新しい機能のたびに、足りない1つの権限を探し回ることになるからです。いずれにしても、より重要なのは階層のほうです。
トラブルシューティング用の短いまとめ
何かがうまく動かないときは、次の4つの質問を順番に確認しましょう:
- Bot のロールは、対象のロールより上にありますか?
- Bot のロールは、対象のメンバーより上にありますか?
- Bot は、サーバー単位で該当する権限を持っていますか?
- その権限は、このチャンネルで明示的に拒否されていませんか?
10回中9回は、1つ目か2つ目の質問が原因です。
その他の記事
メンバーが実際に使うDiscordのチャンネルとカテゴリの組み方
チャンネルが多すぎると若いサーバーは廃れます。小さく始め、カテゴリにまとめ、カテゴリの権限を使えば同じ設定を二度する必要がなくなる方法を紹介します。
ガイドDiscordコミュニティサーバーとは?変化の内容と有効化の方法
コミュニティモードではアナウンスチャンネルやサーバーインサイトなどが使えるようになりますが、安全に関するルールも厳しくなります。何が得られ、何が必要で、自分のサーバーに必要かを解説します。
ガイドDiscordサーバーにボットを追加する方法と、本当に必要な権限
ボットの追加は1分ほどで終わります。大切なのは権限の設定です。サーバーを守るための手順と、信頼できないボットの見分け方を解説します。