Bot 機能(モジュール)

ロール保持

ロール保持は、メンバーがサーバーを退出してから再び参加(再参加)したときに、退出前に持っていたロールを自動で復元する機能です。いわゆる「スティッキーロール(sticky roles)」と呼ばれる仕組みで、メンバーが抜けて入り直しても、ロールの付け直しを手作業で行う必要がなくなります。機能の有効化や、復元の対象から外したいロール(除外ロール)の指定は、ダッシュボードから設定できます。

この機能はベータ版の現在、無料で利用できます。サーバーごとに有効化して使います。

できること

  • メンバーが退出前に持っていたロールを、再参加時に自動で復元します。手作業でロールを付け直す必要がありません。
  • 除外ロールを指定することで、特定のロールだけは復元の対象から外せます(例: 期間限定のロールや、再付与したくない運営上のロール)。
  • 復元する/しないを、サーバーごとに有効/無効で切り替えられます。
  • /role-retention clear で、保存済みのロール記録を消去できます(プライバシー対応や、記録のリセットに使えます)。

仕組み(再参加時の自動復元)

ロール保持は「捕捉(キャプチャ)」と「復元(リストア)」の 2 段階で動作します。

段階起きること
捕捉(capture)メンバーがメッセージを送信したときに、背景でそのメンバーが現在持っているロールの集合を記録します。前回からの差分を見て、ロール構成に変化があったときだけ記録を更新します。
復元(restore)メンバーが再参加したことを検知すると、記録しておいたロールの中から復元対象を選び、まとめて付与します。

本 Bot はメンバー情報を常時キャッシュしない仕様のため、記録されるのは退出時点ではなくメッセージ送信時のロールです。機能を有効化した直後や、まだ一度も捕捉されていないメンバーは記録が存在しないため、再参加しても復元する対象がありません。しばらく運用して捕捉が進むことで、復元が機能するようになります。

設定画面の構成

ロール保持の設定は、Bot 全体に関わる設定と、サーバーごとの設定に分かれています。

Bot 全体設定(ダッシュボード)

項目役割
機能の有効化トグルロール保持機能そのものを使うかどうかの大本のスイッチです。
/role-retention setting の有効/無効と権限設定パネルを開くコマンドを利用可能にするか、また誰が使えるかを設定します。
/role-retention clear の有効/無効と権限記録を削除するコマンドを利用可能にするか、また誰が使えるかを設定します。

コマンドごとの権限の考え方は コマンドの権限設定 を参照してください。

サーバー別設定

項目役割
有効/無効そのサーバーでロール保持(捕捉と復元)を動かすかどうかを切り替えます。
除外ロール復元の対象から外したいロールを選びます。ロール選択 UI から指定でき、変更はリアルタイムで反映されます。

設定の手順

機能を有効化する

ロール保持の設定ページを開き、「機能の有効化」のトグルをオンにします。このトグルがオフのままだと、捕捉も復元も行われません。

サーバーでロール保持を有効にする

サーバー別設定で「有効/無効」をオンにします。ロール保持はサーバーごとに有効化して使うため、対象のサーバーで有効になっていることを確認してください。

除外ロールを指定する

復元の対象から外したいロールがある場合は、サーバー別設定の「除外ロール」のロール選択 UI から指定します。ここで指定したロールは、再参加時に復元されません。

コマンドの有効状態と権限を設定する(任意)

/role-retention setting/role-retention clear を、Bot 全体設定でそれぞれ有効/無効・権限を調整できます。これらのコマンドは manage_roles(ロールの管理)権限を必要とします。権限の詳しい考え方は コマンドの権限設定 を参照してください。

コマンド一覧

ロール保持では、Discord 上で次のスラッシュコマンドを利用できます。いずれもサーバー内専用で、manage_roles(ロールの管理)権限が必要です。

/role-retention setting

ロール保持機能の有効化と、除外ロールの設定パネルを開きます。このパネルから、サーバーでの有効/無効の切り替えや、復元対象から外す除外ロールの指定ができます。

  • 必要な権限: manage_roles(ロールの管理)
  • ダッシュボードの設定ページと同じ内容を、Discord 上から操作できます。

/role-retention clear

保存済みのロール記録を削除します。プライバシー対応や、記録をリセットしたいときに使います。

指定動作
member を指定する指定したメンバー分のロール記録だけを削除します。
member を省略するサーバー全体のロール記録を削除します。
  • 必要な権限: manage_roles(ロールの管理)

/role-retention clear でロール記録を削除すると、それ以降の再参加では復元が行われません。再び捕捉が進むまで(メンバーが発言するなどして記録され直すまで)、復元対象のないメンバーが出てきます。とくに member を省略したサーバー全体の削除は、元に戻せないため慎重に実行してください。

自動で除外されるロール

ダッシュボードで指定する除外ロールとは別に、次のロールは Discord の仕様や権限上の都合から、常に復元の対象外になります。これらは設定で除外を解除することはできません。

種類復元されない理由
Discord に管理される連携ロール(managed ロール)bot 連携や外部サービスとの連携で Discord が自動管理しているロールのため、Bot 側で付与できません。
@everyone ロール全メンバーが標準で持つロールであり、個別に付与・記録する対象ではありません。
Bot 自身の最上位ロールと同等以上のロールDiscord の権限の仕様上、Bot は自分のロールより上位(または同等)のロールを付与できません。

実際の動作と既定値

  • 付与できないロールの扱い: 付与できないロールはスキップされ、付与可能なロールだけがまとめて付与されます。復元全体が中止されるわけではありません。
  • 有効化の単位: Bot 全体設定のトグルと、対象サーバーの有効/無効が両方オンのときだけ、捕捉と復元が行われます。

注意点・うまくいかないとき

  • Bot のロールより上位のロールは復元できません: 復元したいロールがある場合は、サーバーの設定画面で Bot のロール位置を、復元したいロールよりも上に配置 してください。

次のステップ / 関連ページ

最終更新:

目次