アクション(動作ノード)リファレンス
「アクション(動作)」は、Bot が実際に行う処理を表すノードです。メッセージの送信や編集、チャンネル・ロールの操作、サーバー管理(Ban や Kick など)、外部サービスとの連携まで、Bot にさせたいことのほとんどはこの動作ノードで組み立てます。
このページでは、コマンドビルダーで使えるすべての動作ノードを機能グループ別に解説します。各ノードを追加・接続する基本手順は共通なので、まずは「アクションノードの使い方」を読んでから、目的のグループへ進んでください。
Ban・Kick・Timeout・メッセージの一括削除・チャンネル削除・ロール削除などは、サーバーに大きな影響を与える破壊的な操作です。一度実行すると元に戻せないものもあります。だれがそのコマンドを実行できるか(権限設定)を必ず確認してから使ってください。
アクションノードとは
アクションノードは、コマンドの流れ(フロー)の中に置く「Bot にやらせたい処理」のひとかたまりです。たとえば次のように組み合わせます。
- スラッシュコマンドが実行されたら → 「メッセージを送信」する
- ボタンがクリックされたら → 「ロールを付与」する
- 条件に合致したら → 「メンバーのBAN」を実行する
アクションノードはコマンドビルダーのキャンバス上で青色のノードとして表示され、前のノードから線(エッジ)でつなぐことで「この処理の次にこの処理を行う」という順番を作ります。
アクションノードの使い方
どの動作ノードでも、追加・設定の流れは共通です。
「動作」タブからノードを追加する
コマンドビルダー画面のサイドバーにある「動作」のグループから、使いたいアクション(例:「メッセージを送信」)をキャンバスにドラッグして配置します。
前のノードから線をつなぐ
スラッシュコマンドの入口ノードや、ひとつ前の動作ノードの出力点(ハンドル)から、追加したアクションノードへ線をドラッグしてつなぎます。これで「前の処理のあとにこのアクションを実行する」という順番が決まります。
ノードをクリックして設定する
配置したノードをクリックすると、画面右側に設定パネルが開きます。ここで送信先・メッセージ内容・対象ユーザーなど、そのアクション固有の項目を入力します。
必要に応じてコンポーネントや対象を指定する
メッセージにボタンや選択メニューを付けたい場合は「メッセージを送信」の設定パネルから追加します。Ban や Kick などの管理操作では、対象となるユーザーをオプションや変数で指定します。
ほとんどの入力欄では、固定の文字や ID のかわりに変数を使えます。入力欄の横に変数ボタンがある項目では、コマンドのオプションや前のノードで作った変数(例: {option_user} や {msg_1})を差し込めます。変数の書き方は 変数と式の使い方 を参照してください。
すべてのノードに共通する「ノードタイトル」
ほぼすべての動作ノードの設定パネルの最後には「ノードタイトル」という入力欄があります。ここに名前を入れると、キャンバス上でそのノードに表示されるタイトルを自由に変更できます。コマンドの動作には影響しませんが、複雑なフローを作るときにノードの役割がひと目で分かるようになり、読みやすくなります。
メッセージ応答
ユーザーや指定したチャンネルに向けて、Bot からメッセージを送り出すノードです。
メッセージを送信
最もよく使うアクションです。テキストや埋め込み(Embed)を送信でき、ボタンや選択メニューを付けることもできます。送信したメッセージの ID を変数に保存して、あとから編集・削除・ピン留めの対象にもできます。
送信先と表示の設定
| 設定項目 | 説明 |
|---|---|
| 変数 | 送信したメッセージのメッセージ ID を保存する変数名。あとで「メッセージを編集」などの対象にできます。 |
| メッセージの送信先 | 「コマンド実行と同じチャンネル」/「特定のチャンネル」/「コマンド実行者のDM」から選びます。 |
| チャンネルIDまたは変数 | 送信先で「特定のチャンネル」を選んだときに表示。送信先チャンネルの ID または変数を入力します。 |
| チャンネルが見つからない場合にエラーを無視 | 「特定のチャンネル」のとき表示。指定したチャンネルが見つからなくてもエラーにせず処理を続けます。 |
| ユーザーのDMが開けない場合にエラーを無視 | 「コマンド実行者のDM」のとき表示。相手の DM が開けなくてもエラーにせず処理を続けます。 |
| Botからの応答をプライベートメッセージにするか | 送信先が「コマンド実行と同じチャンネル」のときに表示。「はい」にすると、コマンドの実行者本人にだけメッセージが見え、他のメンバーには表示されません。 |
「Botからの応答をプライベートメッセージにするか」は、コマンド実行と同じチャンネルへの応答にのみ適用されます。DM や特定チャンネルへの送信には効果がありません。
送信先で「コマンド実行者のDM」を選ぶと、DM は常にコマンドを実行した本人へ送られます。送信先のユーザーを ID や変数で指定して任意のユーザーへ DM を送る機能(任意ユーザー宛て DM 送信)は未実装です。設定パネルでも、現状は常に実行者本人へ送信される旨の注記が表示されます。
メッセージ形式を選ぶ
メッセージの作り方を 2 形式から選べます(既定は「通常 (本文 + Embed)」)。
| メッセージ形式 | 説明 |
|---|---|
| 通常 (本文 + Embed) | 本文と埋め込み(Embed)を使う従来の形式です。本文・Embed の編集と、ボタン/選択メニューの追加が使えます。 |
| Components V2 (高度なレイアウト) | 「コンテナ」「セクション」「テキスト」などの部品を組み合わせて自由にレイアウトできる新形式です。 |
「Components V2 (高度なレイアウト)」を選ぶと、本文・Embed・スタンプ・投票は使えなくなります(通常形式とは排他です)。さらに、実際に Components V2 で送信したメッセージは通常形式へ戻せません(不可逆)。形式を切り替える前によく確認してください。
本文や Embed をすでに入力した状態で「メッセージ形式」を「通常 (本文 + Embed)」から「Components V2 (高度なレイアウト)」へ切り替えようとすると、入力済みの本文・Embed が送信時に無視される旨の確認ダイアログが表示されます。「キャンセル」を選ぶと「通常 (本文 + Embed)」のまま据え置かれます。なお、本文・Embed の設定自体はエディタ上に保持されるため、「通常 (本文 + Embed)」に戻せば再び使えます。
Components V2 の詳しい組み立て方は Components V2(高度なレイアウト) を参照してください。
実行時の挙動として、本文・埋め込み・コンポーネントのいずれも空のまま「メッセージを送信」を実行すると、Bot は何も送信せずに次の処理へ進みます(エラーにはなりません)。送信先が「コマンド実行と同じチャンネル」のときはコマンドの応答として、特定チャンネルや DM のときは Bot の通常メッセージとして表示されます。
メッセージ内容(本文と埋め込み)を編集する
以下の「メッセージビルダー」は、メッセージ形式が「通常 (本文 + Embed)」のときに表示されます。「メッセージ内容」の項目にある「メッセージビルダー」ボタンから、専用の編集画面(モーダル)を開きます。ここで本文と埋め込み(Embed)を作成し、右側のプレビューで Discord 上での見た目を確認しながら編集できます。
- メッセージ本文: 左上の入力欄に通常のテキストを入力します(最大 2000 文字)。Discord のマークダウン記法が使えます。
- 埋め込み(Embed): 「Embed追加」ボタンで枠付きのリッチなメッセージを追加できます。1 つの埋め込みには著者(Author)・タイトル・説明文・カラー・画像 URL・サムネイル URL・フッター・タイムスタンプ表示などを設定できます。設定は「基本設定」「著者 (Author)」「画像設定」「フッター」「フィールド」のタブに分かれています。
- フィールド(Field): 各埋め込みの「フィールド」タブにある「フィールドを追加」ボタンで項目を追加できます。名前(Name)と値(Value)を入力し、「Inline」をオンにすると横並びになります。フィールドは 1 つの埋め込みにつき最大 25 個です。
埋め込み(Embed)は 1 つのメッセージに最大 10 個まで追加できます。本文・埋め込みの各欄には変数を差し込めるので、ユーザー名や数値などを動的に表示できます。
ボタンや選択メニューを追加する
「コンポーネントの追加」セクションは、メッセージ形式が「通常 (本文 + Embed)」のときに表示されます。ここで、メッセージにインタラクション部品を付けられます。
- 「ボタンを追加」をクリックすると、ボタンのノードが子として追加・接続されます。
- 「選択メニューを追加」をクリックすると、選択メニュー(ドロップダウン)のノードが追加・接続されます。
追加されたボタン・選択メニューのノードをクリックすると、それぞれの設定パネルが開きます(設定内容は後述の「ボタンの設定」「選択メニューの設定」を参照)。
さらに「インタラクションモード」で、ボタンやメニューがクリックされたあとの挙動を選べます。
| インタラクションモード | 説明 |
|---|---|
| 分岐モード (デフォルト) | 各ボタン/メニューの選択が即座に次のフローへ進みます。 |
| フォームモード (Confirm で確定) | 選択メニューの選択をいったん保留し、確定(Submit)ボタンがクリックされたタイミングでまとめて確定します。選択メニューと確定/キャンセルボタンの両方が付いていないと機能しません。 |
ボタン/セレクトの永続化を設定する
ボタンや選択メニューの寿命を決める「ボタン/セレクトの永続化」は、インタラクションモード(分岐/フォーム)とは独立して設定できます。
「永続」で送ると、ボタンや選択メニューが Bot を再起動したあとでも反応し続けるようになります。これにより、ロールパネル(押すとロールが付くボタン)や常設の応募パネルのような「ずっと貼っておくボタン」を、カスタムコマンドで自分で作れます(/ticket や /reminder などの常設パネルと同じ仕組みです)。一方で「一時的」は、約 5 分でクリックできなくなり、Bot を再起動すると失効します。一度きりの確認や、その場限りの操作はこちらが向いています。
| 設定項目 | 説明 |
|---|---|
| ボタン/セレクトの永続化 | ボタン/セレクトの寿命を選びます。「一時的 (約5分・Bot再起動で失効)」は約 5 分でクリックできなくなり、Bot を再起動すると失効します。「永続 (再起動後も操作できるパネル)」は Bot を再起動したあとでも操作できるパネルになります。 |
| 操作できるユーザー | 永続を選んだときに表示。永続パネルのボタン/セレクトを「全員」が操作できるか、「コマンド実行者のみ」が操作できるかを選びます。 |
| セッション有効期限(秒) | 永続を選んだときに表示。永続セッションの有効期限を秒で指定します(非負の整数のみ)。0 または空欄で無期限です。期限切れ後のクリックには「期限切れ」と応答します。 |
「永続」から「一時的」に戻すと、「操作できるユーザー」「セッション有効期限(秒)」の設定は自動的にクリアされます。
永続パネルの内部方式(データベースを使うかどうか)は自動的に判定されます。ボタンのみで状態を持たない場合は軽量な方式(データベース不使用)になり、選択メニューを含む場合や後続のノードで変数を保存する場合はデータベースを使うセッションになります。なお、永続の選択メニューは「自分で選択肢を定義する文字列セレクト」のみ対応で、ユーザー/ロール/チャンネルの選択メニューは永続に対応していません。
ボタンの設定
「ボタンを追加」で作られたボタンノードの設定です。
| 設定項目 | 説明 |
|---|---|
| ボタンのラベル | ボタンに表示する文字。 |
| 絵文字 | ボタンに表示する絵文字(省略可)。 |
| ボタンのスタイル | 「青色 (PRIMARY)」/「灰色 (SECONDARY)」/「緑色 (SUCCESS)」/「赤色 (DANGER)」/「リンク (LINK)」から選びます。 |
| URL | スタイルが「リンク (LINK)」のときに表示。クリックしたときに開く URL を入力します。 |
| ボタンをデフォルトで無効にするか | オンにすると、最初からクリックできない状態で表示します。 |
親の「メッセージを送信」がフォームモードのときは、追加で「フォーム動作」を選べます。「確定 (Submit)」は選択メニューの選択値を確定して次のフローへ進め、「キャンセル (Cancel)」はフォームを破棄します。
選択メニューの設定
「選択メニューを追加」で作られた選択メニュー(ドロップダウン)ノードの設定です。
| 設定項目 | 説明 |
|---|---|
| プレースホルダー | 何も選ばれていないときに表示する案内文(最大 150 文字)。 |
| メニュータイプ | 「デフォルト(任意の選択肢を自前で定義)」/「ロール」/「チャンネル」/「ユーザー」から選びます。 |
| チャンネル種別 | メニュータイプが「チャンネル」のとき表示。「テキストチャンネル」「ボイスチャンネル」「カテゴリー」「アナウンスチャンネル」「ステージチャンネル」「フォーラム」「メディアチャンネル」から、候補に出すチャンネルの種別を選びます。 |
| 選択肢 | メニュータイプが「デフォルト」のとき表示。各選択肢に「ラベル (表示名)」「値 (内部値)」「説明 (任意)」を設定します(最大 25 件)。 |
| 複数選択を許可 (マルチセレクター) | オンにすると複数の項目を選べます。 |
| 最小選択数 / 最大選択数 | 複数選択を許可したときに表示。選べる個数の下限(0〜25)・上限(1〜25)を設定します。 |
| 保存する変数名 | 選んだ結果を後続ノードで参照するための変数名。複数選択の場合は配列で格納されます。 |
メニュータイプを「ロール」「チャンネル」「ユーザー」にすると、サーバー内のロール・チャンネル・メンバーから Discord が用意した一覧で選ばせる形になります。自分で選択肢を作り込みたい場合は「デフォルト」を選んでください。
モーダルを送信
実行者に**ポップアップの入力フォーム(モーダル)**を表示し、入力された値を変数として後続のノードで使えるようにします。スラッシュコマンドのオプション(引数)だけでは足りない複数項目の入力(応募フォーム、設定ウィザードなど)を、ひとつのフォームでまとめて受け取れます。
| 設定項目 | 説明 |
|---|---|
| 変数名 (Modal 全体) | 送信されたモーダル全体を識別するための変数名。各フィールドの変数名はモーダルビルダー内で個別に指定します。 |
| モーダルビルダー | 「モーダルビルダー」ボタンから開く編集画面で、モーダルのタイトルと入力フィールド(最大 5 つ)を設定します。 |
モーダルの起動経路
モーダル(入力フォーム)は、フローの中での「モーダルを送信」の置き場所によって、次の 2 通りで表示されます。
- エントリ起動: コマンドの最初のアクションが「モーダルを送信」のとき、コマンドを実行した瞬間に最初の応答としてモーダルが表示されます。たとえばスラッシュコマンドを実行すると、すぐに入力フォームがポップアップで開きます。
- ボタン起動: フローの途中でも、ボタンの出力から「モーダルを送信」へ線をつなぐと、そのボタンをクリックしたタイミングでモーダルが開きます。先にメッセージやボタンを送ってから、ボタン操作に応じてフォームを出す、といった流れを作れます。
どちらの場合も、入力フィールドに設定した変数に値が入り、モーダル送信後の後続ノードからその値を参照できます。
モーダルビルダーで入力フィールドを作る
「モーダルビルダー」ボタンから開く編集画面では、右側の「プレビュー」で Discord 上での見た目を確認しながらフォームを組み立てられます。編集は「基本設定」「フィールド」「変数」の 3 つのタブに分かれています。
- 基本設定: 「モーダルタイトル」(最大 45 文字)を入力します。フォーム上部に表示される見出しです。
- フィールド: 「フィールドを追加」ボタンで入力欄を追加します(最大 5 個)。各フィールドには「ラベル」「説明 (任意)」「必須」(「はい」/「いいえ」)、後続ノードで参照する「変数名」を設定します。
- 変数: 追加した各フィールドの変数名と、その値が「文字列」で返るか「配列」で返るか(複数選択のフィールドは配列)を一覧で確認できます。
各フィールドは「フィールド種別」で次のいずれかを選べます。
| フィールド種別 | 説明 |
|---|---|
| テキスト入力 | 自由入力欄です。「入力スタイル」で「1行テキスト」/「複数行テキスト」を選べます。「プレースホルダー (任意)」「デフォルト値 (任意)」も設定できます。 |
| 選択メニュー(固定の選択肢) | 自分で用意した選択肢から選ばせるドロップダウンです。「選択肢」で「表示ラベル」「送信値 (空ならラベルと同じ)」「補足説明 (任意)」を設定します(最大 25 件)。 |
| ラジオボタン(単一選択) | 選択肢から 1 つだけ選ばせます。選択肢は 2〜10 件で指定します。 |
| ユーザー選択(Discord) | サーバー内のメンバーから選ばせます。 |
| ロール選択(Discord) | サーバー内のロールから選ばせます。 |
| メンション選択(ユーザー/ロール) | ユーザーまたはロールから選ばせます。 |
| チャンネル選択(Discord) | サーバー内のチャンネルから選ばせます。「選択できるチャンネル種別 (任意)」(「テキスト」「ボイス」「カテゴリ」「アナウンス」「ステージ」「フォーラム」「スレッド」)で候補をしぼれます(未選択なら全種別)。 |
選択メニュー・ユーザー/ロール/メンション/チャンネル選択では「複数選択」を「複数選択」にすると複数の項目を選べ、「最小選択数 (任意)」「最大選択数 (任意)」も指定できます。ラジオボタンは単一選択のみです。
モーダルの各入力欄では変数を差し込めます。ラベルやプレースホルダー・デフォルト値に変数を入れて、コマンドのオプションや前のノードで作った値を初期表示できます。各フィールドに設定した変数名は、後続ノードで波かっこで囲んで参照します(複数選択のフィールドは配列として返ります)。
メッセージ操作
すでに送信されたメッセージに対して、ピン留め・リアクション・編集・削除などを行うノードです。多くは「メッセージ変数」(「メッセージを送信」で保存した変数)または「メッセージID」で対象を指定します。
メッセージのピン留め
指定したメッセージをチャンネルにピン留めします(パレットでは「メッセージをピン止めする」)。
| 設定項目 | 説明 |
|---|---|
| ピン留めするメッセージ | 「メッセージ変数」または「メッセージID」で対象の指定方法を選びます。 |
| メッセージ変数名 | 「メッセージ変数」を選んだとき表示。使用する変数名を入力します。 |
| メッセージID | 「メッセージID」を選んだとき表示。対象メッセージの ID を入力します。 |
リアクションを追加
指定したメッセージに絵文字リアクションを付けます(パレットでは「メッセージにリアクションする」)。
| 設定項目 | 説明 |
|---|---|
| リアクションを追加するメッセージ | 「メッセージ変数」または「メッセージID」で対象を指定します。 |
| メッセージ変数名 / メッセージID | 選んだ指定方法に応じて入力します。 |
| 絵文字の種類 | 「デフォルト絵文字」(絵文字ピッカーから選択)または「カスタム絵文字」(サーバーのカスタム絵文字)を選びます。 |
| リアクション / カスタム絵文字 | 「デフォルト絵文字」なら絵文字を選択、「カスタム絵文字」なら ID を入力します(形式: emoji_name:123456789012345678)。 |
メッセージの編集
Bot が過去に送信したメッセージの本文や埋め込みを編集します(パレットでは「メッセージを編集」)。
| 設定項目 | 説明 |
|---|---|
| 編集するメッセージ | 「メッセージ変数」または「メッセージID」で対象を指定します。 |
| メッセージ変数名 / メッセージID | 選んだ指定方法に応じて入力します。 |
| 新しいメッセージ内容 | 「メッセージビルダー」ボタンから、編集後の本文と埋め込みを設定します(「メッセージを送信」と同じビルダーです)。 |
編集できるのは Bot 自身が送信したメッセージだけです。他のユーザーが送ったメッセージは編集できません。
メッセージの削除
指定したメッセージを削除します(パレットでは「メッセージを削除」)。
| 設定項目 | 説明 |
|---|---|
| 削除するメッセージ | 「メッセージ変数」または「メッセージID」で対象を指定します。 |
| メッセージ変数名 / メッセージID | 選んだ指定方法に応じて入力します。 |
メッセージ一括削除
チャンネル内のメッセージをまとめて削除します(パレットでは「メッセージの消去」)。
| 設定項目 | 説明 |
|---|---|
| メッセージを削除するチャンネル | 「コマンドが実行されたチャンネル」または「特定のチャンネル」を選びます。 |
| チャンネルID | 「特定のチャンネル」を選んだとき表示。対象チャンネルの ID を入力します。 |
| 削除するメッセージの数 | まとめて削除する件数を入力します(1〜100 件)。 |
メッセージの一括削除は元に戻せない破壊的な操作です。削除する件数とチャンネルをよく確認してから実行してください。
実行時の挙動:
- 削除できる件数は 1 回につき 100 件までです。100 を超える値を入れても自動的に 100 件に丸められます。
- コマンドの応答メッセージなど、実行中に投稿された新しいメッセージは削除対象から自動的に除外されます。コマンド自身の応答を巻き込んで消してしまうことはありません。
- 投稿から 14 日以内のメッセージは Discord の一括削除でまとめて高速に消されます。14 日より古いメッセージは 1 件ずつ削除されるため、処理に時間がかかります。
- テキストチャンネルとスレッドでのみ動作します(ボイスチャンネルやカテゴリーでは動作しません)。
チャンネル操作
サーバーのチャンネルを作成・編集・削除するノードです。
チャンネル作成
新しいチャンネルを作成します(パレットでは「チャンネルを作成」)。作成したチャンネルの ID を変数に保存できます。
| 設定項目 | 説明 |
|---|---|
| チャンネル変数 | 作成されたチャンネルの ID を保存する変数名。ほかのブロックで使えます。 |
| チャンネル名 | 作成するチャンネルの名前。 |
| チャンネルタイプ | 「テキストチャンネル」/「ボイスチャンネル」/「カテゴリーチャンネル」/「ニュースチャンネル」から選びます。 |
| チャンネルトピック | チャンネルのトピック(説明)。 |
| チャンネルカテゴリー | 親カテゴリーの ID。なければ空欄のままにします。 |
| NSFW | オンにすると NSFW(年齢制限)チャンネルになります。 |
| スローモード | スローモードの秒数。 |
| 権限(権限を追加) | 「権限を追加」ボタンで、ロールやメンバーごとに「許可する権限」「拒否する権限」を細かく設定できます。 |
権限を 1 件追加するごとに、対象の「ID」と「タイプ」(「ロール」/「メンバー」)、許可・拒否する権限を選びます。不要になった権限は「権限を削除」で外せます。
チャンネル編集
既存のチャンネルの設定を変更します(パレットでは「チャンネルを編集」)。
| 設定項目 | 説明 |
|---|---|
| 編集するチャンネル | 「コマンドが実行されたチャンネル」/「チャンネル変数」/「チャンネルID」から指定方法を選びます。 |
| チャンネル変数名 / チャンネルID | 選んだ指定方法に応じて入力します。 |
| チャンネル名 | 新しい名前。 |
| チャンネルトピック | 新しいトピック。 |
| チャンネルカテゴリー | 移動先カテゴリーの ID。 |
| NSFW | NSFW(年齢制限)設定のオン/オフ。 |
| 最大ユーザー数 | ボイスチャンネルに参加できる人数の上限(ボイスチャンネルのみ)。 |
| 理由 | 監査ログに記録される編集理由。 |
| 権限の統合 | オンにすると以下の権限設定を既存の権限と統合し、オフにすると既存の権限を上書きします。 |
| 権限(権限を追加) | チャンネル作成と同じ形式で、ロール/メンバーごとの権限を設定します。 |
チャンネル削除
指定したチャンネルを削除します(パレットでは「チャンネルを削除」)。
| 設定項目 | 説明 |
|---|---|
| 削除するチャンネル | 「チャンネル変数」または「チャンネルID」で対象を指定します。 |
| チャンネル変数名 / チャンネルID | 選んだ指定方法に応じて入力します。 |
削除されたチャンネルは復元できません。ボイスチャンネルを削除すると、接続中のユーザーは切断されます。この操作には Bot にチャンネル管理の権限が必要です。
ロール操作
メンバーへのロールの付与・はく奪、ロールの作成・編集・削除を行うノードです。
ロール追加(付与)
指定したユーザーにロールを付与します(パレットでは「ロール付与」)。
| 設定項目 | 説明 |
|---|---|
| だれにロールを付与するか | 「コマンドを実行したユーザー」/「インタラクションを実行したユーザー」/「特定のユーザー」から選びます。 |
| ユーザーID | 「特定のユーザー」を選んだとき表示。対象ユーザーの ID を入力します。 |
| 付与するロールID | 付与したいロールの ID を入力します。 |
ロール削除(はく奪)
指定したユーザーからロールを取り除きます(パレットでは「ロールはく奪」)。
| 設定項目 | 説明 |
|---|---|
| だれからロールを削除するか | 「コマンドを実行したユーザー」/「インタラクションを実行したユーザー」/「指定したユーザー」から選びます。 |
| ユーザーID | 「指定したユーザー」を選んだとき表示。対象ユーザーの ID を入力します。 |
| 削除するロールID | はく奪したいロールの ID を入力します。 |
ロール作成
新しいロールを作成します(パレットでは「ロール作成」)。作成したロールの ID を変数に保存できます。
| 設定項目 | 説明 |
|---|---|
| ロール変数 | 作成されたロールの ID を保存する変数名。ほかのブロックで使えます。 |
| ロール名 | 作成するロールの名前。 |
| カラー | ロールの色を 16 進数で入力します(例: #FF5733)。空欄ならデフォルト色。 |
| オンラインメンバーとは別で表示 | オンにすると、ロールがメンバー一覧で独立して表示されます。 |
| メンション可能 | オンにすると、@ロール名 でメンションできます。 |
| 権限 | 「権限の設定」で、このロールに付与する権限を選びます。 |
| 理由 | 監査ログに記録される理由(任意)。 |
ロール編集
既存のロールの設定を変更します(パレットでは「ロール編集」)。
| 設定項目 | 説明 |
|---|---|
| 編集するロールID | 編集対象のロールの ID。 |
| 新しいロール名 | 変更後のロール名。 |
| 理由 | 監査ログに記録される理由(任意)。 |
| 位置 | ロールの並び順の位置。 |
| カラー | 新しい色を 16 進数で入力します(例: #FF5733)。 |
| オンラインメンバーとは別で表示 | メンバー一覧での独立表示のオン/オフ。 |
| メンション可能 | メンションを許可するかのオン/オフ。 |
| 権限 | 「権限の設定」で、ロールの新しい権限を選びます。 |
ロール削除
指定したロールを削除します(パレットでは「ロール削除」)。
| 設定項目 | 説明 |
|---|---|
| 削除するロールID | 削除するロールの ID を入力します。 |
削除されたロールは元に戻せません。ロールが付与されていたメンバーからはそのロールが一斉に外れます。
サーバー操作
メンバーへのモデレーション(Ban・Kick・Timeout)やニックネーム変更、招待リンクの作成を行うノードです。
Ban・Kick・Timeout はメンバーに直接影響するモデレーション操作です。対象ユーザーの指定を誤ると、意図しないメンバーに処分が下る恐れがあります。対象指定と実行できる人の権限を必ず確認してください。
メンバーのBAN
指定したユーザーをサーバーから Ban します(パレットでは「メンバーのBAN」)。
| 設定項目 | 説明 |
|---|---|
| だれをBANするか | 「コマンドを実行したユーザー」/「インタラクションを実行したユーザー」/「特定のユーザー」から選びます。 |
| ユーザーID | 「特定のユーザー」を選んだとき表示。対象ユーザーの ID を入力します。 |
| BANする理由 | Ban の理由を入力します。 |
| 削除するメッセージの期間(オプション) | 過去何日分のメッセージを削除するか(0〜7 の範囲)。空欄(0)ならメッセージは削除されません。 |
削除するメッセージの期間は 0〜7 日の範囲です。範囲外の値を入れても自動的にこの範囲に丸められます。Ban されたユーザーはサーバーから退出させられ、Ban を解除しない限り再参加できません。すでに Ban 済みのユーザーに対して再度実行しても変化はなく、エラーにもなりません。
メンバーのKick
指定したユーザーをサーバーから追放します(パレットでは「メンバーのKick」)。Ban と異なり、再参加自体は防げません。
| 設定項目 | 説明 |
|---|---|
| キックするユーザー | 「コマンドを実行したユーザー」または「特定のユーザー」から選びます。 |
| ユーザーID | 「特定のユーザー」を選んだとき表示。対象ユーザーの ID を入力します。 |
| キックの理由 | Kick の理由を入力します。 |
メンバーのTimeout
指定したユーザーを一時的にタイムアウト(発言・反応を一定時間できない状態)にします(パレットでは「メンバーのTimeout」)。
| 設定項目 | 説明 |
|---|---|
| だれをタイムアウトするか | 「コマンドを実行したユーザー」または「特定のユーザー」から選びます。 |
| ユーザーID | 「特定のユーザー」を選んだとき表示。対象ユーザーの ID を入力します。 |
| タイムアウトの期間 | 期間を入力します(例: 10m = 10 分、1h = 1 時間、1d = 1 日)。 |
| タイムアウトの理由 | タイムアウトの理由を入力します。 |
タイムアウト中のメンバーは、チャンネルを閲覧できますが、メッセージの送信・リアクション・ボイスの利用ができなくなります。メンバー一覧では薄く表示され(グレーアウト)、プロフィールにタイムアウト中の表示が出ます。期間は Discord の上限である 28 日までです。28 日を超える期間を指定した場合は 28 日に丸められます。すでにより長いタイムアウトが設定されているメンバーに、より短いタイムアウトを設定しても変化はなく、エラーにもなりません。
メンバーのニックネーム編集
指定したユーザーのサーバー内ニックネームを変更します(パレットでは「メンバーのニックネーム編集」)。
| 設定項目 | 説明 |
|---|---|
| だれのニックネームを変更するか | 「コマンドを実行したユーザー」/「インタラクションを実行したユーザー」/「特定のユーザー」から選びます。 |
| ユーザーID | 「特定のユーザー」を選んだとき表示。対象ユーザーの ID を入力します。 |
| 新しいニックネーム | 設定する新しいニックネームを入力します(最大 32 文字)。空にするとニックネームが解除され、ユーザー名に戻ります。 |
| 理由(オプション) | 変更の理由を入力します。 |
ニックネームは Discord の上限である 32 文字までです。32 文字を超える文字列を指定すると Discord 側で拒否され、コマンドはエラーになります。
インスタント招待の作成
サーバーへの招待リンクを作成します(パレットでは「インスタント招待の作成」)。
| 設定項目 | 説明 |
|---|---|
| 招待リンクを作成するチャンネル | 「コマンドが実行されたチャンネル」または「特定のチャンネル」から選びます。 |
| チャンネルID | 「特定のチャンネル」を選んだとき表示。対象チャンネルの ID を入力します。 |
| 招待リンクの有効期限(日数) | 有効期限を日数で指定します。0 を指定すると無期限。デフォルトは 1。 |
| 招待リンクの最大使用回数 | 使える回数の上限。0 を指定すると無制限。デフォルトは 1。 |
| 一時的なリンク | オンにすると、このリンクで参加し、かつロールを持たないユーザーは 24 時間後に自動的に Kick されます。 |
| 招待リンクの変数 | 作成した招待リンクを格納する変数名。指定しない場合は invite_link という名前で保存されます。 |
有効期限は最長 7 日までです。7 日を超える日数を指定しても 7 日に丸められます。作成した招待リンクは指定した変数(既定では invite_link)に URL として保存され、後続の「メッセージを送信」でそのまま差し込めます。カテゴリーチャンネルには招待リンクを作成できません。
API操作
外部サービスと連携するためのノードです。
「APIリクエストを行う」を使うと、外部のサービスと自由に連携できます。送信先 URL・ヘッダー・トークンなど秘匿情報を扱う場合は、第三者に漏れないよう取り扱いに十分注意してください。
APIリクエストを行う
外部の API に HTTP リクエストを送り、そのレスポンスを変数に保存して後続のノードで使います。
このノードは現在開発中です。設定の保存はできますが、現時点では Bot 側で実行されません(設定パネル上にも開発中の案内が表示されます)。
| 設定項目 | 説明 |
|---|---|
| APIリクエスト名 | レスポンスを受け取る変数の名前。これは必須項目で、入力すると下の「リクエストビルダーを開く」ボタンが使えるようになります。 |
| リクエストビルダー | 「リクエストビルダーを開く」ボタンから、URL・メソッド・パラメータ・ヘッダー・ボディを設定します。 |
「APIリクエスト名」を入力すると、レスポンスを参照するための変数が設定パネルに表示されます(apiReqName が myApi の場合の例)。
| 変数 | 説明 |
|---|---|
{myApi.response} | API レスポンス本文(オブジェクト)。 |
{myApi.status} | HTTP ステータスコード(数値)。 |
{myApi.text} | レスポンス本文の文字列表現。 |
IFTTTトリガーを実行する
IFTTT の Webhooks サービスを通じて、指定したイベントで IFTTT のアプレットをトリガーします。
このノードは現在開発中です。設定の保存はできますが、現時点では Bot 側で実行されません(設定パネル上にも開発中の案内が表示されます)。
利用するには、設定パネルの「IFTTTアカウントと連携」ボタンから、あらかじめ IFTTT アカウントと BotShade アカウントを連携しておく必要があります。
変数操作について
変数を作る・計算する・消す操作(変数の設定、変数への演算の適用、変数の削除)も動作ノードの一種ですが、変数の仕組みや式の書き方とあわせて理解したほうが分かりやすいため、別ページにまとめています。詳しくは 変数と式の使い方 を参照してください。
ここでは、変数操作の実行時の挙動だけ簡単に押さえておきます。
- **永続変数(
BSVAR_で始まる変数)**は、コマンドの実行をまたいで値が保存されます。サーバー単位・ユーザー単位・サーバー内のユーザー単位のいずれかの範囲で保持され、次回以降のコマンド実行でも値が引き継がれます。これらは事前にダッシュボードの「Storage(保管)」から登録しておく必要があり、登録していないBSVAR_変数に値を入れようとしても、その代入は無視され値は変わりません(エラーにはなりません)。 - **一時変数(
BSVAR_で始まらない変数)**は、そのコマンドの 1 回の実行中だけ有効で、実行が終わると消えます。 - 「変数の削除」で値を消せるのは永続変数(
BSVAR_)だけで、消去すると登録時に決めた既定値に戻ります。一時変数に対して実行しても何も起きません。 - 「変数への演算の適用」では、永続変数(
BSVAR_)に対しては安全な更新が行われます。同じ変数を複数のコマンドが同時に書き換えても、一方の更新が消えてしまう(更新の取りこぼし)ことがないよう、内部で順番に処理されます。
実際の動作と既定値
各アクションを実行したときの効果と、設定を省略したときに使われる既定値をまとめます。多くのアクションは、すでにその状態になっている場合(例:すでに付与済みのロールを再度付与)には何もせず、エラーにもなりません。
何も指定しないときに使われる既定値
| アクション | 項目 | 既定値 |
|---|---|---|
| メッセージを送信 | 送信先 | コマンド実行と同じチャンネル |
| メッセージの削除/編集/ピン留め/リアクション | 対象の指定方法 | メッセージ変数(直前の「メッセージを送信」で保存した ID) |
| メッセージ一括削除 | 対象チャンネル | コマンドが実行されたチャンネル |
| メンバーのBAN | 削除するメッセージの期間 | 0 日(削除しない) |
| メンバーのTimeout | 対象ユーザー | コマンドを実行したユーザー |
| メンバーのニックネーム編集 | 対象ユーザー | コマンドを実行したユーザー |
| チャンネル作成 | チャンネルタイプ | テキストチャンネル |
| チャンネル作成 | 保存先の変数名 | created_channel_id |
| チャンネル編集 | 対象の指定方法 | コマンドが実行されたチャンネル |
| ロール作成 | 保存先の変数名 | created_role_id |
| インスタント招待の作成 | 有効期限 | 1 日 |
| インスタント招待の作成 | 最大使用回数 | 1 回 |
| インスタント招待の作成 | 一時的なリンク | オフ |
| インスタント招待の作成 | 保存先の変数名 | invite_link |
| 変数の設定 | 値の型 | 文字列(BSVAR_ 変数は登録時の型を使用) |
「すでにその状態」のときの挙動(何もしない)
次の操作は、対象がすでに目的の状態になっている場合、何も変更せずにそのまま次の処理へ進みます。エラーにはなりません。
- すでに持っているロールを「ロール追加」しても、何も起きません。
- 持っていないロールを「ロール削除」しても、何も起きません。
- すでに Ban / Kick された、あるいはサーバーから退出済みのユーザーに対して同じ操作をしても、何も起きません。
- すでに削除されたメッセージ・チャンネル・ロールを再度削除しても、何も起きません。
- すでにピン留め済みのメッセージを再度ピン留めしても、何も起きません。
- 「メッセージの編集」で本文も埋め込みも空のまま実行した場合は、誤ってメッセージを空にしてしまわないよう、何も変更しません。
ID の保存と引き継ぎ
- 「メッセージを送信」で変数名を指定すると、送信したメッセージの ID がその変数に保存され、後続の「メッセージの編集」「リアクションを追加」「メッセージのピン留め」「メッセージの削除」で対象として使えます。
- 「チャンネル作成」「ロール作成」は、作成したチャンネル・ロールの ID を変数に保存します。これを使って「チャンネル編集/削除」「ロール追加/削除/編集/削除」につなげられます。
- ロール ID やチャンネル ID の欄には、メンション(
<@&...>や<#...>)・ID・変数・サーバー内の名前のいずれでも指定できます。名前で指定した場合、同じ名前のロールやチャンネルが複数あると、最初に見つかったものが使われます。
上限と丸め込み
各アクションには Discord 由来の上限があります。上限を超える値を入力した場合、多くは自動的に上限値へ丸められ、コマンドは止まりません(ニックネームのみ Discord 側で拒否されエラーになります)。
| 項目 | 上限 | 超えたときの挙動 |
|---|---|---|
| メッセージ一括削除の件数 | 1 回 100 件まで | 100 件に丸められます |
| 埋め込み(Embed)の数 | 1 メッセージ 10 個まで | 超過分は送信されません |
| 埋め込みのフィールド数 | 1 埋め込み 25 個まで | Discord の上限です |
| BAN で削除するメッセージの期間 | 0〜7 日 | 範囲内に丸められます |
| Timeout の期間 | 28 日まで | 28 日に丸められます |
| 「待機」の時間 | 25 秒まで | 25 秒に丸められます |
| ニックネームの長さ | 32 文字まで | Discord に拒否されエラーになります |
| チャンネルのスローモード | 21600 秒(6 時間)まで | 上限に丸められます |
| 招待リンクの有効期限 | 7 日まで | 7 日に丸められます |
| 監査ログの理由 | 512 文字まで | 超過分は切り詰められます |
「待機」アクションでコマンドの実行を一時停止できますが、コマンド全体の実行時間には上限(約 30 秒)があるため、待機できるのは最長 25 秒までです。25 秒を超える待機を指定しても 25 秒に丸められます。待機中はユーザーには何も表示されず、待機が終わってから次のアクション(メッセージ送信など)が実行されます。
表示されるメッセージ
アクションの実行中に、Bot がユーザーに見せる文言は限られています。多くの「すでにその状態」「対象が見つからない」といったケースは、エラーを出さずに静かにスキップされます。
- 操作の途中で Bot に必要な権限がなかった場合(例:
Ban Members権限がないのに BAN を実行)など、処理が失敗したときは、共通のエラー文An error occurred while executing the command.が表示されます。具体的な失敗理由はサーバー側の記録に残りますが、ユーザーには出ません。 - ロール・チャンネル・サーバー管理などの操作は、Discord の監査ログに記録されます。コマンドビルダー経由の操作には
CmdBuilder: /コマンド名のような理由が付与されるため、あとから「どのコマンドが何をしたか」を管理者が確認できます。
注意点・うまくいかないとき
破壊的な操作(BAN・Kick・メッセージやチャンネル・ロールの削除など)は元に戻せません。対象の指定と、コマンドを実行できる人の範囲を必ず確認してください。
- 権限が足りないと失敗します。 各アクションには対応する Bot 権限が必要です(メッセージ操作は
Manage Messages、ロール操作はManage Roles、BAN はBan Members、Kick はKick Members、Timeout はModerate Members、チャンネル操作はManage Channels、招待はCreate Inviteなど)。権限がないと、共通のエラー文が表示されて処理が止まります。 - ロールの上下関係に注意してください。 Bot は、自分の最上位ロールより上にあるロールを付与・削除・編集できません。また、自分より上の立場のメンバーに対するロール操作やモデレーションもできず、失敗します。「ロール作成」で作られるロールは、Bot の最上位ロールのすぐ下に配置されます。
- 実行中のチャンネルを削除しないでください。 「チャンネル削除」でコマンドを実行しているそのチャンネルを削除すると、それ以降のメッセージ送信が失敗します。チャンネルを削除する処理は、後続でメッセージを送る処理の前に置かないようにしてください。
- ニュースチャンネルの作成にはコミュニティサーバーが必要です。 コミュニティ機能が有効でないサーバーでニュースチャンネルを作成しようとすると失敗します。
- ボイスチャンネルにはトピックや NSFW を設定できません。 チャンネルタイプに合わない項目は反映されません。
- カスタム絵文字が見つからないとリアクションは付きません。 「リアクションを追加」でカスタム絵文字を指定しても、その絵文字が Bot から参照できない場合、リアクションは付かずにスキップされます(エラーにはなりません)。形式は
emoji_name:123456789012345678です。 - 編集できるのは Bot 自身のメッセージだけです。 他のユーザーが送ったメッセージは「メッセージの編集」では変更できません。
- 「中断」「次の繰り返しへ」は繰り返しの中だけで使えます。 これらは繰り返し(ループ)の内部に置く必要があり、繰り返しの外に置くとエラーになります(ビルダー側でも配置を防いでいます)。「中断」で抜けるときはループの後処理が 1 回実行され、「次の繰り返しへ」では後処理は実行されません。
- DM ではサーバー操作はできません。 チャンネル作成やロール操作など、サーバーが前提のアクションは、DM での実行時には何もせずスキップされます。
アクション一覧
コマンドビルダーで使えるアクションの一覧です。詳細は各セクションを参照してください。
| グループ | アクション(パレット表記) | 主な役割 |
|---|---|---|
| メッセージ応答 | メッセージを送信 | テキスト・埋め込み・コンポーネントを送信し、メッセージ ID を保存 |
| メッセージ応答 | モーダルを送信 | 入力フォーム(モーダル)を表示し、入力値を変数に保存 |
| メッセージ操作 | メッセージをピン止めする | メッセージをチャンネルにピン留め |
| メッセージ操作 | メッセージにリアクションする | メッセージに絵文字リアクションを追加 |
| メッセージ操作 | メッセージを編集 | Bot 自身のメッセージの本文・埋め込みを編集 |
| メッセージ操作 | メッセージを削除 | 指定したメッセージを削除 |
| メッセージ操作 | メッセージの消去 | チャンネルのメッセージを一括削除(最大 100 件) |
| チャンネル操作 | チャンネルを作成 | 新しいチャンネルを作成し、ID を保存 |
| チャンネル操作 | チャンネルを編集 | 既存チャンネルの設定を変更 |
| チャンネル操作 | チャンネルを削除 | チャンネルを削除 |
| ロール操作 | ロール付与 | メンバーにロールを付与 |
| ロール操作 | ロールはく奪 | メンバーからロールを削除 |
| ロール操作 | ロール作成 | 新しいロールを作成し、ID を保存 |
| ロール操作 | ロール編集 | 既存ロールの設定を変更 |
| ロール操作 | ロール削除 | ロールを削除 |
| サーバー操作 | メンバーのBAN | ユーザーを Ban |
| サーバー操作 | メンバーのKick | ユーザーを Kick |
| サーバー操作 | メンバーのTimeout | メンバーを一時的にタイムアウト |
| サーバー操作 | メンバーのニックネーム編集 | メンバーのニックネームを変更 |
| サーバー操作 | インスタント招待の作成 | 招待リンクを作成し、URL を変数に保存 |
| API操作 | APIリクエストを行う(開発中) | 外部 API へ HTTP リクエスト |
| API操作 | IFTTTトリガーを実行する(開発中) | IFTTT のアプレットをトリガー |
| 変数操作 | 変数の設定 | 変数に値を代入 |
| 変数操作 | 変数への演算の適用 | 変数の値を計算して更新 |
| 変数操作 | 変数の削除 | 永続変数を既定値に戻す |
| 制御フロー | 中断 / 次の繰り返しへ | 繰り返し(ループ)の制御 |
現在 BotShade はベータ版のため、本来プレミアム向けの機能も含め、すべての機能をすべてのユーザーが無料で利用できます(全員にプレミアムが付与されています)。アクションの利用にプレミアム加入は必要ありません。
次のステップ / 関連ページ
- コマンドビルダーの概要と使い方 — キャンバスとノードの基本操作
- オプション — コマンドに入力欄(引数)を追加する
- 条件分岐 — 状況に応じてフローを分ける
- 制御フロー — 待機・繰り返し・分岐合流など
- 変数と式の使い方 — 変数の参照と計算
- ノードの種類リファレンス — 全ノードの一覧