Chat command
Members type the command with the prefix. The flow answers in the channel it was called from.
A flow starts from a command or event, follows connected nodes, and can interact with members, data and external services.
Flows need Tier 2.
Flows run several steps: messages, buttons, forms, roles and conditions. You build them in the editor.
The trigger (chat command or schedule) is configured in the Trigger section below the canvas. Drag from the handle on the right to pick the first step.
Drag to pan · wheel to zoom · Shift + drag to select · Delete removes
Publish this version? Members will run it from now on.
Flows run several steps: messages, buttons, forms, roles and conditions. You build them in the editor.
Members type the command with the prefix. The flow answers in the channel it was called from.
The flow runs on a schedule, with no member involved. Steps that need a member are not available.
Runs when someone joins the server. Pick the channel where the flow should post.
Runs when someone leaves the server. The person is gone, so roles, DMs and warnings are not available.
Runs when a member reaches a new level. Optionally only from a minimum level.
Runs when a member reacts with this emoji. Leave message and channel empty to match every message.
Runs when a message contains this keyword. Leave the channel empty to watch every channel.
The bot posts a fixed message with buttons into the channel. Each button starts the flow at the step you choose.
Choose a node from the editor palette, connect it to the next step, then publish when the path is complete.
reply
Reply
Replies to the command or interaction that started the flow.
send_message
Send message
Posts a message in the selected channel and can branch through buttons.
send_dm
Send DM
Sends a direct message to the member who started the flow.
send_card
Send card
Posts a formatted Discord card with optional title, colour, footer and image.
add_reaction
Add reaction
Adds an emoji reaction to the Discord message that started the flow.
create_thread
Create thread
Creates a thread for the flow message and can post opening text.
log
Write to mod log
Writes a message to the server’s configured moderation log.
form
Open form
Runs only from a Discord interaction and opens a modal whose submitted fields are available to later steps.
select_menu
Select menu
Shows a select menu; each option sends the flow to its own branch.
wait_for_message
Wait for a message
Waits for a member message, with a separate branch when time runs out.
condition
Condition
Checks a rule and continues through its yes or no branch.
set_var
Set variable
Stores a value in a variable for the current run.
random
Random
Picks a random number or list value and stores it in a variable.
delay
Wait
Pauses the run before continuing with the next step.
end
End flow
Stops the flow immediately, optionally with a reason for the run log.
run_flow
Run another flow
Starts an independent fire-and-forget child run; target admission and cooldown are checked again.
ai_generate
Generate text (AI)
Generates text from a prompt for use in later steps.
store_record
Save record
Saves mapped values as a record in a selected collection.
find_record
Find record
Looks up a collection record and branches depending on whether it exists.
update_record
Update record
Updates a record of the triggering member and can branch when none is found.
delete_record
Delete record
Removes the triggering member’s records from a selected collection.
send_mail
Send e-mail
Uses a verified mail provider. A single recipient needs a stored recipient record; collection and broadcast recipients must be confirmed and unsubscribe-safe.
http_request
Call API
Calls only a configured provider and relative path, never an arbitrary URL; at most three requests, with a delay after each.
add_role
Add role
Gives the triggering member the selected Discord role.
remove_role
Remove role
Removes the selected Discord role from the triggering member.
add_coins
Give coins
Adds coins to the triggering member’s balance.
spend_coins
Charge coins
Charges coins from the triggering member and branches if funds are insufficient.
add_xp
Give XP
Adds experience points to the triggering member.
warn
Warn member
Creates a moderation warning for the triggering member.
timeout
Time out member
Temporarily times out the triggering member for the chosen duration.
Use these ready-to-copy Maid Script examples for common automations.
The diagram is only a visual guide. Each script compiles safely into a linear flow.
formOpen formstore_recordSave recordsend_mailSend e-mailreplyReplysend "Community reminder"
delay 60m
send "Please check the update."
end
set greeting = "Welcome, {user.name}!"
send "{var.greeting}"
card "Start with the server rules."
end
If true · If false
Placeholders: {user.name}, {user.mention}, {user.id}, {server.name}, {server.members}, {channel.name}, {channel.mention}, {args}, {args.1} to {args.9}, {now.date}, {now.time}, plus {form.<key>} and {record.<key>} during a run.
{user.name}{server.name}{channel.mention}
{args.1}{form.email}{record.id}
{var.name}{ai.text}{http.status}
Maid Script compiles to a safe, linear flow. It never executes arbitrary code.
Applying replaces the entire draft and resets the canvas layout, labels and regions.
Only reply, send, card, set, random, delay and end are available. There is no JavaScript, loops, HTTP access or file access.
set greeting = "Welcome"
random mood from "calm" "curious" "happy"
reply "{var.greeting}, {user.name}!"
card "Mood: {var.mood}"
end