コマンドビルダーノード一覧

条件分岐

条件ブロックを置くと、「Else(それ以外)」と「条件後」が自動でいっしょに作られます。「条件ノードを追加」で作る一致の枝(If)と合わせて、次の 3 つの行き先に分かれます。

行き先通るとき
一致の枝(If)その条件が成り立ったとき
「Else(それ以外)」どの一致の枝も成り立たなかったとき。何もつながなければそのまま「条件後」へ進みます
「条件後」どの枝を通ったあとでも、最後に必ず通ります

「Else(それ以外)」と「条件後」は単独では削除できず、条件ブロックを削除するといっしょに消えます。

分岐の内側で「モーダルを送信」を使った場合、「条件後」の先の処理はユーザーが送信を完了する前に走ります。送信完了を待ってから何かしたいときは、「モーダルを送信」の直下につないでください。

複数の一致の枝

1 つの条件ブロックには一致の枝を複数作れます。キャンバス上の条件ブロックの「+」(「分岐を追加」)からも足せます。枝は線をつないだ順に上から判定され、最初に成り立った枝だけを通ります。{option_command} == "ban" / == "kick" のような振り分けも、枝を並べるだけで書けます。

ただし、一致の枝がすべて「確率による条件分岐」のときだけは、重み付き抽選で決まります。

セレクトメニューの選択肢ごとの分岐は、メニューの設定から自動で作れます。詳しくは動作(アクション)ノードをご覧ください。

判定の共通ルール

  • 判定できないときは「成り立たなかった」扱いです。値が解決できない・形式が不正などの場合は「Else(それ以外)」へ進みます。誤って一致することはありません。
  • 判定中にエラーが起きても、コマンドは止まりません。その条件は成り立たなかった扱いになり、ユーザーにエラーメッセージは表示されません。
  • 値の中の変数は判定の直前に展開されます。コマンドのオプション・途中で作った変数・永続変数のいずれも使えます。変数の書き方は 変数の使い方 をご覧ください。
  • 曜日・時刻・日時は Bot のタイムゾーンで判定します。設定していない場合は Asia/Tokyo(日本時間)です。

実行者・実行チャンネルを入力欄に直接書くときは {Command.channel} / {Command.user} を使います(カスタムイベントでは {Event.channel} / {Event.user})。以前の CURRENT_CHANNEL / COMMAND_USER は非推奨です。保存済みの定義は自動で読み替えられますが、新しく書くときは {Command.*} をお使いください。

条件の種類

比較による条件分岐

「基準値」と「比較する値」を比べます。

比較演算子一致する条件
等しい (==) / 等しくない (!=)両方が数値として読めれば数として、そうでなければ文字列として比較します。文字の 5 と数値の 5 は等しくなります
より大きい (>) / より小さい (<) / 以上 (>=) / 以下 (<=)両方が数値のときだけ判定できます。どちらかが数値に変換できなければ成り立ちません
含む (contains) / 含まない (not contains)基準値の文字列の中に、比較する値が含まれるかどうか

確率による条件分岐

「確率」に 0〜100 の数値を入れます。

  • 枝が 1 つだけのときは、毎回その確率で成り立ちます。0 以下なら常に成り立たず、100 以上なら常に成り立ちます。数値として読めない値は成り立ちません。
  • 一致の枝がすべて確率の枝のときは、各枝の確率を持ち分とした 1 回の抽選でどれか 1 つに進みます。たとえば 30% と 20% の枝を置くと、残りの 50% は「Else(それ以外)」へ進みます。確率 0 の枝は抽選から外れます。
  • 「確率を均等に配分」は、「Else(それ以外)」も 1 枠に数えて 100% を整数で分けます。割り切れない分は最初の分岐に足します。値に変数を使っている分岐は変わりません。条件ブロックの「+」で確率の枝を足したときも、同じ配分で全枝の確率が書き換わります。
  • 確率の合計は 100% 以下にしてください。合計が 100% を超えるときは一致の枝を追加できません。超えた場合、後ろの枝は選ばれません。
  • 確率の枝と、ほかの種類の枝を同じ条件ブロックに混ぜると、抽選ではなく上から順の「先勝ち」判定になります。

チャンネルによる条件分岐

比較元を「コマンドを実行したチャンネル」「チャンネルID」「チャンネル変数」から選び、「等しい (==)」または「等しくない (!=)」で比較します。ID・変数名を空にすると、コマンドを実行したチャンネルが比較元になります。

チャンネルは、変数・<#123...> 形式のメンション・数字の ID・サーバー内のチャンネル名のいずれでも指定でき、この順でチャンネルの数字 ID に解決してから比較します。どちらかが ID に解決できなければ成り立ちません。

権限による条件分岐

対象ユーザーが「基準となる権限」(複数選択可)を持っているかで判定します。

条件タイプ一致する条件権限を 1 つも選んでいないとき
すべての権限を持っている指定した権限をすべて持っている常に一致
すべての権限を持っていない指定した権限をどれも持っていない常に一致
いずれか1つ以上の権限を持っている指定した権限のうち 1 つでも持っている常に不一致

対象ユーザーが管理者(administrator)権限を持っていると、どの権限も「持っている」と判定されます。管理者を別扱いにしたいときは、ロールやユーザーによる条件分岐と組み合わせてください。

サーバー内での利用が前提です。対象ユーザーをサーバーのメンバーとして特定できないときは成り立ちません。

ロールによる条件分岐

対象ユーザーが指定したロールを持っているかで判定します。一致の枝で「持っている」「持っていない」を切り替えられます。ロールは ID またはロール変数で指定し、ロールの数字 ID に解決できない値(存在しないロール名など)は成り立ちません。

ユーザーによる条件分岐

対象ユーザーと比較相手のユーザー ID どうしを比べます。一致の枝で「である」「ではない」を切り替えられます。ID の比較だけで判定するため、DM でも使えます。どちらかの ID が特定できないときは成り立ちません。

時刻による条件分岐

現在の曜日・時刻・日時を、判定の共通ルールのタイムゾーンで比べます。

比較対象使える演算子形式と注意
曜日いずれかである / いずれでもない複数選択できます
時刻より前 / より後 / 等しい / 等しくない / 範囲内 / 範囲外HH:MM または HH:MM:SS(HH は 0〜23、MM・SS は 0〜59)。範囲の終了が開始より小さいとき(例: 22:00〜02:00)は深夜をまたぐ範囲になります
日時時刻と同じISO 8601 形式(例: 2026-06-01T21:00)。タイムゾーンを書かない日時は Bot のタイムゾーンの時刻として、Z や +09:00 付きの日時はその時刻として比べます。範囲は深夜またぎにならないため、終了は開始より後にしてください

形式が不正な値(25:00 や 10:60 など)は成り立ちません。

ブーストによる条件分岐

「判定する内容」で次のどちらかを選びます。DM で実行されたときは成り立ちません。

判定する内容一致する条件
サーバーのブーストレベル(既定)サーバーのブーストレベル(0〜3)が「必要なブーストレベル」以上
ユーザーがサーバーをブーストしているか対象ユーザーがこのサーバーをブーストしている

対象ユーザーは ID・メンション・変数で指定します。省略すると実行者(コマンドでは {Command.user}、イベントでは {Event.user})です。サーバーを退出済みのユーザーや、スケジュール実行のように実行したメンバーがいないイベントでは成り立ちません。

上限

条件の判定も、コマンド 1 回の実行時間とステップ数の上限に含まれます。ループの中の条件は、繰り返すたびにステップ数を消費します。上限値は 上限とクールダウン をご覧ください。

うまく分岐しないとき

  • 常に「Else(それ以外)」に進む: チャンネル・ロール・ユーザーの ID や変数が解決できていないか、時刻・日時の形式が正しくない可能性があります。ID は数字で指定してください。時刻の条件は Bot のタイムゾーンの設定もご確認ください。
  • 確率の枝の一部が選ばれない: 確率の合計が 100% を超えていないか、確率の枝とほかの種類の枝を混ぜていないかをご確認ください。

関連ページ

最終更新:

目次