Blocks
These are the blocks that ship with Makecord. This page is generated from the blocks themselves, so it always matches the version you’re reading about.
Any text setting can contain variables.
Triggers
Start
Where the flow begins when its command or event fires.
No settings.
Actions
Reply
Replies to the command, button, menu or form that started the flow.
| Field | Type | Default | Description |
|---|---|---|---|
content | string | "" | Use variables like {{user.displayName}} |
message | string | "" | Sends a design from messages/ instead of the text above |
ephemeral | boolean | false |
Defer Reply
Tells Discord the answer is coming, for steps that take longer than 3 seconds.
| Field | Type | Default | Description |
|---|---|---|---|
ephemeral | boolean | false |
Send Message
Sends a message to a channel.
| Field | Type | Default | Description |
|---|---|---|---|
channelIdrequired | string | — | For example {{channel.id}} |
content | string | "" | Use variables like {{user.displayName}} |
message | string | "" | Sends a design from messages/ instead of the text above |
Send DM
Sends a direct message to a user. Fails if they don't accept DMs.
| Field | Type | Default | Description |
|---|---|---|---|
userId | string | "{{user.id}}" | For example {{options.user}} |
content | string | "" | Use variables like {{user.displayName}} |
message | string | "" | Sends a design from messages/ instead of the text above |
Update Message
Changes the message whose button or menu was used, like a vote count or a next page.
| Field | Type | Default | Description |
|---|---|---|---|
content | string | "" | Use variables like {{user.displayName}} |
message | string | "" | Sends a design from messages/ instead of the text above |
Add Reaction
Reacts to a message with an emoji.
| Field | Type | Default | Description |
|---|---|---|---|
emojirequired | string | — | A unicode emoji, or a custom one as name:id |
channelId | string | "{{channel.id}}" | |
messageId | string | "{{message.id}}" |
Delete Message
Deletes a message. The bot needs the Manage Messages permission for other people's messages.
| Field | Type | Default | Description |
|---|---|---|---|
channelId | string | "{{channel.id}}" | |
messageId | string | "{{message.id}}" |
Add Role
Gives a member a role. The bot needs the Manage Roles permission.
| Field | Type | Default | Description |
|---|---|---|---|
roleIdrequired | string | — | |
userId | string | "{{user.id}}" | For example {{options.user}} |
Remove Role
Takes a role away from a member. The bot needs the Manage Roles permission.
| Field | Type | Default | Description |
|---|---|---|---|
roleIdrequired | string | — | |
userId | string | "{{user.id}}" | For example {{options.user}} |
Kick Member
Removes a member from the server. They can join again with an invite.
| Field | Type | Default | Description |
|---|---|---|---|
userId | string | "{{user.id}}" | For example {{options.user}} |
reason | string | "" | Shown in the audit log |
Ban Member
Bans a user from the server.
| Field | Type | Default | Description |
|---|---|---|---|
userId | string | "{{user.id}}" | For example {{options.user}} |
reason | string | "" | Shown in the audit log |
deleteMessageHours | string | "0" | 0 to 168 |
Timeout Member
Mutes a member for a while. Use 0 minutes to lift a timeout.
| Field | Type | Default | Description |
|---|---|---|---|
userId | string | "{{user.id}}" | For example {{options.user}} |
minutes | string | "10" | Up to 40320 (28 days) |
reason | string | "" | Shown in the audit log |
Show Form
Opens a form (modal). Handle the answers in a Form submitted event flow with the same ID.
| Field | Type | Default | Description |
|---|---|---|---|
customIdrequired | string | — | Matches the Form submitted flow, e.g. feedback |
titlerequired | string | — | |
inputsrequired | string | — | One per line: id | Label | short or paragraph | required or optional. Up to 5 |
Reply to Message
Replies to a message in its channel, like a member would. Works in message events.
| Field | Type | Default | Description |
|---|---|---|---|
channelId | string | "{{channel.id}}" | For example {{channel.id}} |
messageId | string | "{{message.id}}" | For example {{message.id}} |
content | string | "" | Use variables like {{user.displayName}} |
message | string | "" | Sends a design from messages/ instead of the text above |
mention | boolean | true |
Edit Message
Changes a message the bot sent earlier.
| Field | Type | Default | Description |
|---|---|---|---|
channelId | string | "{{channel.id}}" | For example {{channel.id}} |
messageId | string | "{{message.id}}" | For example {{message.id}} |
content | string | "" | Use variables like {{user.displayName}} |
message | string | "" | Sends a design from messages/ instead of the text above |
Pin Message
Pins or unpins a message.
| Field | Type | Default | Description |
|---|---|---|---|
action | "pin" | "unpin" | "pin" | |
channelId | string | "{{channel.id}}" | For example {{channel.id}} |
messageId | string | "{{message.id}}" | For example {{message.id}} |
Delete Recent Messages
Deletes up to 100 recent messages in a channel. Messages older than 14 days are skipped.
| Field | Type | Default | Description |
|---|---|---|---|
channelId | string | "{{channel.id}}" | For example {{channel.id}} |
amount | string | "10" | 1 to 100 |
fromUser | string | "" | Leave empty to delete from everyone |
variable | string | "deleted" | Read it later as {{vars.name}} |
Remove Reactions
Removes reactions from a message: all of them, one emoji, or one person's.
| Field | Type | Default | Description |
|---|---|---|---|
channelId | string | "{{channel.id}}" | For example {{channel.id}} |
messageId | string | "{{message.id}}" | For example {{message.id}} |
emoji | string | "" | Leave empty to remove every reaction |
userId | string | "" | With an emoji, removes just this person's reaction |
Create Thread
Starts a thread in a channel, or on a message if you give one.
| Field | Type | Default | Description |
|---|---|---|---|
channelId | string | "{{channel.id}}" | For example {{channel.id}} |
messageId | string | "" | Optional. For example {{message.id}} |
namerequired | string | — | |
archiveAfter | "60" | "1440" | "4320" | "10080" | "1440" | |
variable | string | "threadId" | Read it later as {{vars.name}} |
Send Poll
Posts a Discord poll in a channel.
| Field | Type | Default | Description |
|---|---|---|---|
channelId | string | "{{channel.id}}" | For example {{channel.id}} |
questionrequired | string | — | |
answersrequired | string | — | One per line, up to 10. Start a line with an emoji to show it |
hours | string | "24" | 1 to 768 |
multiple | boolean | false |
Set Nickname
Changes a member's nickname in the server. Leave it empty to reset.
| Field | Type | Default | Description |
|---|---|---|---|
userId | string | "{{user.id}}" | For example {{options.user}} |
nickname | string | "" | Up to 32 characters |
reason | string | "" | Shown in the audit log |
Unban Member
Lifts a ban so the user can join again.
| Field | Type | Default | Description |
|---|---|---|---|
userIdrequired | string | — | |
reason | string | "" | Shown in the audit log |
Move in Voice
Moves a member to another voice channel, or disconnects them.
| Field | Type | Default | Description |
|---|---|---|---|
userId | string | "{{user.id}}" | For example {{options.user}} |
channelId | string | "" | Leave empty to disconnect |
Create Role
Creates a role in the server.
| Field | Type | Default | Description |
|---|---|---|---|
namerequired | string | — | |
color | string | "" | Hex, like #5865f2. Optional |
hoist | boolean | false | |
mentionable | boolean | false | |
variable | string | "roleId" | Read it later as {{vars.name}} |
Delete Role
Deletes a role from the server.
| Field | Type | Default | Description |
|---|---|---|---|
roleIdrequired | string | — | Right-click a role with Developer Mode on to copy its ID |
reason | string | "" | Shown in the audit log |
Create Channel
Creates a text, voice, announcement or forum channel, or a category.
| Field | Type | Default | Description |
|---|---|---|---|
namerequired | string | — | |
kind | "text" | "voice" | "category" | "announcement" | "forum" | "stage" | "text" | |
parentId | string | "" | Optional |
topic | string | "" | Optional |
private | boolean | false | |
variable | string | "channelId" | Read it later as {{vars.name}} |
Delete Channel
Deletes a channel or thread.
| Field | Type | Default | Description |
|---|---|---|---|
channelId | string | "{{channel.id}}" | For example {{channel.id}} |
reason | string | "" | Shown in the audit log |
Edit Channel
Renames a channel or changes its topic or slowmode. Empty fields stay as they are.
| Field | Type | Default | Description |
|---|---|---|---|
channelId | string | "{{channel.id}}" | For example {{channel.id}} |
name | string | "" | |
topic | string | "" | |
slowmode | string | "" | 0 to 21600. Empty keeps it |
Lock Channel
Stops @everyone from sending messages in a channel, or lets them again.
| Field | Type | Default | Description |
|---|---|---|---|
action | "lock" | "unlock" | "lock" | |
channelId | string | "{{channel.id}}" | For example {{channel.id}} |
reason | string | "" | Shown in the audit log |
Create Invite
Creates an invite link for a channel.
| Field | Type | Default | Description |
|---|---|---|---|
channelId | string | "{{channel.id}}" | For example {{channel.id}} |
hours | string | "24" | 0 never expires |
maxUses | string | "0" | 0 is unlimited |
variable | string | "invite" | Read it later as {{vars.name}} |
Set Bot Status
Sets the bot's online status and the activity under its name.
| Field | Type | Default | Description |
|---|---|---|---|
status | "online" | "idle" | "dnd" | "invisible" | "online" | |
activity | "none" | "custom" | "playing" | "listening" | "watching" | "competing" | "custom" | |
text | string | "" | For example {{client.servers}} servers |
Suggest Choices
Answers autocomplete with up to 25 suggestions for what the person is typing.
| Field | Type | Default | Description |
|---|---|---|---|
choicesrequired | string | — | One per line as Label | value, or a variable holding a list |
filter | boolean | true |
Logic
Condition
Compares two values and branches into true or false.
| Field | Type | Default | Description |
|---|---|---|---|
leftrequired | string | — | |
operator | "equals" | "notEquals" | "contains" | "greaterThan" | "lessThan" | "equals" | |
rightrequired | string | — |
Wait
Pauses the flow. In a command, longer waits defer the reply automatically.
| Field | Type | Default | Description |
|---|---|---|---|
seconds | string | "1" | Up to 900 |
Repeat
Runs the loop branch a number of times, then continues with done. Connect the end of the loop back to this block.
| Field | Type | Default | Description |
|---|---|---|---|
times | string | "3" | Up to 100 |
indexVariable | string | "i" | 1, 2, 3… as {{vars.i}} |
Has Role
Checks whether a member has a role.
| Field | Type | Default | Description |
|---|---|---|---|
userId | string | "{{user.id}}" | For example {{options.user}} |
roleIdrequired | string | — | Right-click a role with Developer Mode on to copy its ID |
Has Permission
Checks whether a member has a permission in the server.
| Field | Type | Default | Description |
|---|---|---|---|
userId | string | "{{user.id}}" | For example {{options.user}} |
permission | "Administrator" | "ManageGuild" | "ManageRoles" | "ManageChannels" | "ManageMessages" | "KickMembers" | "BanMembers" | "ModerateMembers" | "ManageNicknames" | "MentionEveryone" | "MoveMembers" | "ManageThreads" | "ManageMessages" |
For Each
Runs the loop branch once for every item in a list, then continues from done.
| Field | Type | Default | Description |
|---|---|---|---|
listrequired | string | — | A variable holding a list, like {{vars.items}}, or lines of text |
itemVariable | string | "item" | Read it later as {{vars.name}} |
indexVariable | string | "index" | Read it later as {{vars.name}} |
Cooldown
Lets a flow continue only once per period for each key, like per user.
| Field | Type | Default | Description |
|---|---|---|---|
seconds | string | "10" | |
key | string | "{{user.id}}" | {{user.id}} limits each person separately |
variable | string | "remaining" | Read it later as {{vars.name}} |
Data
Set Variable
Stores a value you can read later in the flow as {{vars.name}}.
| Field | Type | Default | Description |
|---|---|---|---|
namerequired | string | — | |
valuerequired | string | — |
Random Number
Picks a whole number between min and max, both included.
| Field | Type | Default | Description |
|---|---|---|---|
min | string | "1" | |
max | string | "6" | |
variable | string | "random" | Read it later as {{vars.name}} |
Math
Calculates with two numbers.
| Field | Type | Default | Description |
|---|---|---|---|
leftrequired | string | — | |
operator | "add" | "subtract" | "multiply" | "divide" | "modulo" | "power" | "min" | "max" | "add" | |
rightrequired | string | — | |
variable | string | "result" | Read it later as {{vars.name}} |
Text
Changes or measures a piece of text.
| Field | Type | Default | Description |
|---|---|---|---|
operation | "uppercase" | "lowercase" | "trim" | "length" | "replace" | "split" | "lowercase" | |
inputrequired | string | — | |
find | string | "" | For replace and split |
replaceWith | string | "" | For replace |
variable | string | "text" | Read it later as {{vars.name}} |
HTTP Request
Calls a web API. JSON answers can be read like {{vars.response.field}}.
| Field | Type | Default | Description |
|---|---|---|---|
method | "GET" | "POST" | "PUT" | "PATCH" | "DELETE" | "GET" | |
urlrequired | string | — | |
body | string | "" | For POST, PUT and PATCH |
variable | string | "response" | Read it later as {{vars.name}} |
Read Value
Reads a saved value into a variable. Saved values survive restarts.
| Field | Type | Default | Description |
|---|---|---|---|
keyrequired | string | — | For example xp:{{user.id}} |
fallback | string | "" | Used when nothing is saved under the key |
variable | string | "value" | Read it later as {{vars.name}} |
Save Value
Saves a value under a key, kept across restarts.
| Field | Type | Default | Description |
|---|---|---|---|
keyrequired | string | — | For example xp:{{user.id}} |
valuerequired | string | — |
Increase Value
Adds to a saved number (missing counts as 0) and stores the new total in a variable.
| Field | Type | Default | Description |
|---|---|---|---|
keyrequired | string | — | For example xp:{{user.id}} |
by | string | "1" | Negative numbers decrease it |
variable | string | "total" | Read it later as {{vars.name}} |
Delete Value
Removes a saved value.
| Field | Type | Default | Description |
|---|---|---|---|
keyrequired | string | — |
Log
Writes a line to the IDE's Run panel, or to the server console.
| Field | Type | Default | Description |
|---|---|---|---|
level | "debug" | "info" | "warn" | "error" | "info" | |
messagerequired | string | — |
Get Message
Loads a message and saves its text, author and link in a variable.
| Field | Type | Default | Description |
|---|---|---|---|
channelId | string | "{{channel.id}}" | For example {{channel.id}} |
messageId | string | "{{message.id}}" | For example {{message.id}} |
variable | string | "msg" | Read it later as {{vars.name}} |
Get Member
Loads a server member and saves their name, roles and dates in a variable.
| Field | Type | Default | Description |
|---|---|---|---|
userId | string | "{{user.id}}" | For example {{options.user}} |
variable | string | "member" | Read it later as {{vars.name}} |
Timestamp
Makes a time Discord shows in each reader's own time zone, like "in 2 hours".
| Field | Type | Default | Description |
|---|---|---|---|
time | string | "now" | now, an ISO date like {{member.joinedAt}}, or a Unix time |
addMinutes | string | "0" | Can be negative |
style | "relative" | "shortTime" | "longTime" | "shortDate" | "longDate" | "shortDateTime" | "longDateTime" | "relative" | |
variable | string | "time" | Read it later as {{vars.name}} |
Random Item
Picks one item from a list at random.
| Field | Type | Default | Description |
|---|---|---|---|
listrequired | string | — | One per line, or a variable holding a list |
variable | string | "pick" | Read it later as {{vars.name}} |