Visual editor

Build a command or event by connecting nodes, choosing inputs, and testing its paths.

The visual editor builds your bot's behavior as a graph. The trigger starts a flow, connected nodes perform actions, and branches decide what happens next. Commands and events use the same editor.

Your first graph

  1. Open your bot and create a command. Give it a name such as hello and a description.
  2. Add Send Message and connect the trigger to it.
  3. Set Destination to Reply to trigger. Enter Hello {user}! Welcome to {server}. as the message.
  4. Save, deploy the bot, and run /hello in your server.
  5. Add an Embed after Send Message to extend that response with a title, description, or image.

Select a node to edit it in the inspector. Use the variable picker to insert values available to this flow. Connections control execution; visual position alone does not set the order.

Command access

Select the command's trigger node and use Who can use this command?. Choose Administrators only for an admin command, Everyone for a public command, or a named permission such as Manage Messages. Restricted presets turn off DM availability. Save and deploy to apply the change.

These are default server permissions; server admins can adjust command access in Discord's Integrations settings. Existing combined permission values remain available under Custom permissions (advanced). In JSON, admin-only uses "defaultMemberPermissions": "8" and "dmPermission": false.

Branches

If / Else exposes Yes and No paths. Connect the success actions to Yes and the alternative response to No. Keep actions for each outcome in their own branch.

Buttons, select menus, and modals have separate interaction branches. A button's click branch runs when someone clicks it, a select branch runs after a selection, and a modal's submit branch runs after submission. The ordinary continuation runs while the original message is being created. See components.

Commands and events

Commands can reply privately to the person invoking them. Gateway events such as a member joining have no private command response: use Send to channel or Direct message, with an explicit destination. Event variables depend on the selected event.

Use server settings for channels and roles that differ between servers. Use Data nodes for values that must survive another run. A value produced during one interaction is not automatically carried into a later button click.

Build with AI

Describe the trigger, inputs, required permissions, and desired responses. For example: “Create a hello command with a user option and an embed greeting that member.” Review the resulting graph, save, and test it.

For module actions, install and enable the module first. The AI builder receives the actions available to this bot, including what they do and their inputs and outputs.

Test and troubleshoot

  • Test both branches of each condition and each button or select action.
  • Check that every intended node is connected and its required fields are filled.
  • If a variable is blank, check its spelling, its trigger context, and whether a preceding node loads or produces it.
  • If Discord rejects an action, check the bot logs, channel permissions, and role order.
  • Save and deploy after changes before testing the live bot.

Find individual nodes in the node reference.