コマンドビルダーの概要と使い方
コマンドビルダーは、ブロック(ノード)を線でつなぐだけで、プログラミングの知識がなくてもオリジナルのスラッシュコマンドを組み立てられるビジュアルエディタです。Bot の「カスタムコマンド」から開きます。ユーザーがコマンドを実行すると、「スラッシュコマンド」ノードから線でつないだノードが順番に実行されます。
起点となる 2 つの固定ノード
エディタには最初から次の 2 つのノードが置かれており、移動・削除はできません。
| ノード | 役割 |
|---|---|
| 「スラッシュコマンド」 | コマンドのスタート地点です。コマンド名や権限などの設定はコマンドの基本設定をご覧ください |
| 「エラーハンドラー」 | コマンドの実行中にエラーが起きたときに動く、別の流れのスタート地点です |
ノードの追加方法
「ブロック」パネルのブロックをキャンバスへドラッグ&ドロップするか、ブロックをクリックしてキャンバスの中央付近に追加します。ブロックの接続線を空白へドロップすると、ブロックを検索して追加し、そのまま接続できます。ブロック本体へドロップした場合は、そのブロックに接続されます。1 つのコマンドに置けるブロックの数はプランごとの上限までで、上限を超えるブロックは追加されません(→上限の一覧)。
作成時に「空のコマンド」を選ぶと、「スラッシュコマンド」ノードに接続済みの「メッセージを送信」ブロック(本文は「コマンドを受け付けました!」)が置かれた状態から始まります(→コマンドの作成)。
どこからも線がつながっていないノードは実行されません。
保存されている配置が欠けていたり、ブロックが大きく重なっていたりするコマンドは、開いたときに自動で整列されます。整列した配置は、保存するまで保存内容に反映されません。
複製・削除とショートカット
| ショートカット | できること |
|---|---|
Delete | 選択中のブロックを削除する(Backspace では削除されません。Mac では fn + delete) |
Ctrl + Z | 直前の操作を元に戻す |
Ctrl + Y(または Ctrl + Shift + Z) | 元に戻した操作をやり直す |
Ctrl + Shift + F | キャンバスのブロックを名前・説明で検索する |
Ctrl + G | 選んだブロックをグループにまとめる |
/ | ブロックを検索して追加する(どこにも接続せずに置かれます) |
Mac では Ctrl の代わりに Command キーも使えます。
- ヘッダーの「最近の変更」から、選んだ時点まで一度に戻れます。「元に戻す」「やり直す」と「最近の変更」は、AI の提案をプレビューしている間は使えません。
- ブロックを右クリック(タッチ端末では長押し)すると、「複製」「ID をコピー」「親のブロックへ移動」「配下を折りたたむ」「削除」を選べます。キャンバスの余白では「ブロックを追加」「ブロックを整列」「ブロックを検索」を選べます。ブロックのタイトルはダブルクリックで名前を変更できます。
- 「配下を折りたたむ」は表示を切り替えるだけで、保存されません。グループの「カードに折りたたむ」はカード 1 枚に縮めた状態で保存されます。
- 右上の「選択ツール」に切り替えると、ドラッグで範囲を囲んだブロックをまとめて複製・グループ化・削除できます。まとめて複製すると、ブロック間の接続も複製され、変数名は重ならないように付け直されます。
固定ノードや、条件分岐・ループに自動で付いてくる枝(分岐の合流点など)は、単独では複製・削除できません。条件分岐やループの親ノードを削除すると、付いている枝もまとめて削除されます。
保存
編集内容は、ヘッダーの保存ボタンをクリックするまで保存されません。保存せずにページを離れると、編集内容は失われます。ヘッダーの「変更を破棄」は最後に保存した状態に戻す操作で、破棄した変更は元に戻せません。
- ヘッダーの「変更 N 件」で、保存前の変更(ブロックの追加・変更・移動・削除、接続の追加・削除、関数・権限・設定の変更)と、どこにも接続されていないブロックを確認できます。
- ほかのブロックが変数を使っているブロックを削除しようとすると、確認が表示されます。削除すると、その参照は未定義の変数になります。
- コマンドを開いたあとに、別のタブや別の人が同じコマンドを保存していた場合は、保存時に「ほかの画面で変更されています」と表示されます。「再読み込み」を選ぶとこの画面の未保存の変更が、「上書き保存」を選ぶとほかの画面で保存された変更が失われます。
左の「解析」パネルには、コマンド全体のエラー・警告が一覧で表示されます。保存を止めている問題があると保存できず、解析パネルが開いて最初の問題へ移動します。返信するブロック(メッセージ送信・モーダル表示・メッセージ編集・関数呼び出し)にたどり着かないコマンドには、警告「返信しないコマンド」が出ます。そのまま保存はできますが、Discord では実行したユーザーに「アプリケーションが応答しませんでした」と表示されます。実行後の結果は「ログ」パネルで確認でき、エラー種別の一覧はコマンドの基本設定にまとめています。
AI アシスタント
左の「AI アシスタント」パネルでは、編集中のコマンドの内容を読んだ状態の AI に相談できます。
- 「助言」モードでは作り方の相談に答え、エディタは変更しません。
- 「作成」モードでは、作りたいコマンドを言葉で説明すると雛形を組み立ててキャンバスにプレビューします。既存のコマンドを開いているときや未保存の変更があるときは、新しい雛形ではなく今のコマンドへの修正(ブロックの追加・設定変更・削除、接続の付け外し、ボタン・引数の追加、条件の変更・分岐の追加、永続変数の追加、整列)を提案します。
- 提案はプレビューで確認し、「適用」を選ぶとキャンバスに反映されます。AI が追加した永続変数は、適用した時点で Bot の変数一覧に保存されます。
- 適用待ちの提案があるときに「助言」モードへ切り替えると、その提案は破棄されます。
BotShader AI はどのプランでも使えます。使われるモデルの範囲はプランによって変わります。
上限とクールダウン
プランによらず共通の上限は次のとおりです。
| 項目 | 値 | 補足 |
|---|---|---|
| コマンド名 | 3〜32 文字 | 使える文字は英小文字(a-z)と数字(0-9)だけです。BotShade の組み込みコマンドやコマンドグループと同じ名前、同じグループ内のほかのコマンドと同じ名前は使えません |
| コマンドの説明 | 最大 100 文字 | これを超えると切り詰められます |
| 1 つのメッセージに付けられる埋め込み | 最大 10 個 | Discord の上限です。超えたぶんは送られません |
| 待機ブロックの待ち時間 | 最大 25 秒 | これを超える時間を指定しても 25 秒に抑えられます |
カスタム変数(BSVAR_)への書き込み | 1 回の実行で 50 回まで | 「変数を設定」「変数に演算を適用」と配列操作が数えられます。超えた分は書き込まれませんが、コマンドは止まらずに続きます |
次の上限はプランによって変わります。
| 項目 | Free | Plus | Pro | Max |
|---|---|---|---|---|
| 有効にできるカスタムコマンド数 | 5 | 20 | 50 | 100 |
| 1 コマンドに置けるブロック数 | 150 | 200 | 300 | 500 |
| コマンド 1 回の実行時間(秒) | 60 | 300 | 600 | 1,800 |
| 1 回の実行で処理できるステップ数 | 500 | 2,500 | 5,000 | 10,000 |
| ループのくり返し回数 | 100 | 500 | 2,500 | 5,000 |
| 一度に抽選できる個数 | 100 | 500 | 2,500 | 5,000 |
| 有効にできるコマンドグループ数 | 3 | 10 | 20 | 無制限 |
| 1 グループあたりのコマンド数 | 3 | 5 | 10 | 無制限 |
実行時間とステップ数を超えると、その時点で処理が打ち切られます。ステップ数にはループのくり返しも数えられます。待機ブロックを長く入れすぎたり、ループの中で重い処理を多くくり返したりすると、タイムアウトすることがあります。
コマンド数・グループ数の上限は「有効にした数」を数えるため、無効にしたコマンドは枠を消費しません(詳しくはカスタムコマンド一覧と管理)。
クールダウン
コマンドごとに、連続実行を防ぐクールダウンを設定できます(「スラッシュコマンド」ノードの「コマンドクールダウン」)。
- 「クールダウンの範囲」が「ユーザーごと」(既定)なら、誰かが実行してもほかのユーザーのクールダウンには影響しません。「サーバー全体」にすると、誰かが実行したあとはサーバーの全員がクールダウン明けまでそのコマンドを使えません。
- 「クールダウン中の返信」で、クールダウン中に返す文言を変えられます。空欄なら既定の文言で返信します。2,000 文字を超える部分は切り捨てられます。使える変数は
{cooldown_left}(残り時間。例:1時間1分5秒)と{cooldown_ends}(使えるようになる時刻を「5分後」のような相対表記で表示)の 2 つだけで、ほかの変数は展開されません。 - サーバーの管理者も例外にならず、ほかのユーザーと同じようにクールダウンの対象になります。
- ボタン・選択メニュー・モーダルの操作には適用されません。
- クールダウンは Bot を再起動するとリセットされます。
表示されるメッセージ
コマンドが実行されなかったときや、途中で止まったときには、本人にだけ見えるメッセージで理由が知らされます。
| 状況 | 表示されるメッセージ |
|---|---|
| 実行する権限がないとき | 実行できない理由が表示されます(例: このコマンドを実行するには、次のいずれかが必要です。 に続けて必要なロールや権限の一覧、このコマンドはこのサーバーでは無効になっています。 など)。理由を示せないときは Botの権限設定により、このコマンドを実行する権限がありません。 と表示されます。 |
| クールダウン中のとき | クールダウン中です。○に再び使えるようになります。(○ には「5分後」のような相対表記の時刻が入ります。実行したユーザーの Discord の言語が日本語以外なら英語で表示されます)。「クールダウン中の返信」を設定している場合はその文言です |
| DM で実行したとき | このコマンドはサーバー内でのみ使えます。(カスタムコマンドはサーバー内でのみ使え、DM のコマンド一覧には表示されません) |
| 処理が複雑すぎて上限に達したとき | ⛔ コマンドが複雑すぎます (ステップ上限 ○ 到達)。一部処理がスキップされました。(○ にはプランごとの上限値が入ります) |
| 実行時間が上限を超えたとき | コマンドの実行がタイムアウトしました。 |
| コマンドが利用できないとき | このコマンドは利用できません。 |
| 実行中に予期しないエラーが起きたとき | コマンドの実行中にエラーが発生しました。(原因の種類が分かる場合は、その内容に応じたメッセージが表示されます) |
メッセージ送信ブロックで「本人にだけ見える(エフェメラル)」設定にしたメッセージは、約 15 秒で自動的に消えます。
実行時の注意点
- ボタン・選択メニューには操作の期限があります。 一定時間ユーザーが操作しなかった場合は操作できなくなり、その先の処理は進みません。
- 永続変数(
BSVAR_)は、コマンドの実行開始時点の値を読み取り専用で使います。 コマンドの実行中に永続変数を新しく作ることはできません。 - 式の計算でエラーが起きた部分は、書いたままの文字として残ります。 コマンド全体は止まらずに続きます。
- 無効化したコマンドは、Discord のスラッシュコマンド一覧から外れます。
誰がコマンドを実行できるかはコマンド権限設定の使い方をご覧ください。条件分岐・ループ・オプション・変数の動きは、それぞれ次のページにまとめています。
次のステップ / 関連ページ
最終更新: