Conditions
36 conditions blocks, generated from the live catalogue.
A condition inspects the current context and routes the run to its yes or no output. Chain several, or combine them with logic gates.
Note
This page is generated from the bot's block catalogue — 36 blocks at the time of this build.
Has role?
condition.hasRole — True if the member has the selected role.
Outputs: yes / no.
| Setting | Type | Required | Notes |
|---|---|---|---|
| Role | role | yes |
Has permission?
condition.hasPermission — True if the member holds the selected server permission.
Outputs: yes / no.
| Setting | Type | Required | Notes |
|---|---|---|---|
| Permission | one of: Administrator, ManageGuild, ManageChannels, ManageRoles, ManageMessages, KickMembers, BanMembers, ModerateMembers, MentionEveryone | yes |
Is specific user?
condition.userIs — True if the user who triggered the workflow is this exact user.
Outputs: yes / no.
| Setting | Type | Required | Notes |
|---|---|---|---|
| User ID | user ID | yes | 17–20 digit ID |
Is booster?
condition.isBooster — True if the member is currently boosting the server.
Outputs: yes / no.
No settings.
Account older than?
condition.accountAge — True if the user's Discord account is at least N days old.
Outputs: yes / no.
| Setting | Type | Required | Notes |
|---|---|---|---|
| Minimum age (days) | number (0–3650) | yes |
Member longer than?
condition.memberSince — True if the member joined this server at least N days ago.
Outputs: yes / no.
| Setting | Type | Required | Notes |
|---|---|---|---|
| Minimum membership (days) | number (0–3650) | yes |
In voice?
condition.inVoice — True if the member is currently connected to voice (optionally a specific channel).
Outputs: yes / no.
| Setting | Type | Required | Notes |
|---|---|---|---|
| Specific voice channel | voice channel | no |
In channel?
condition.inChannel — True if the event happened in the selected channel.
Outputs: yes / no.
| Setting | Type | Required | Notes |
|---|---|---|---|
| Channel | text channel | yes |
Text matches?
condition.textMatches — True if the message content matches (contains / starts with / regex).
Outputs: yes / no.
| Setting | Type | Required | Notes |
|---|---|---|---|
| Mode | one of: contains, startsWith, equals, regex | yes | |
| Text / pattern | text (≤ 300) | yes | |
| Case sensitive | yes / no | no |
Message length?
condition.messageLength — True if the message length is within the given range.
Outputs: yes / no.
| Setting | Type | Required | Notes |
|---|---|---|---|
| Minimum characters | number (0–4000) | no | |
| Maximum characters | number (0–4000) | no |
Has attachment?
condition.hasAttachment — True if the message has a file attached (optionally images only).
Outputs: yes / no.
| Setting | Type | Required | Notes |
|---|---|---|---|
| Images only | yes / no | no |
Contains link?
condition.hasLink — True if the message contains an http(s) URL.
Outputs: yes / no.
No settings.
Mentions the bot?
condition.mentionsBot — True if the message @mentions this bot.
Outputs: yes / no.
No settings.
Mentions users?
condition.mentionsUsers — True if the message @mentions at least N users.
Outputs: yes / no.
| Setting | Type | Required | Notes |
|---|---|---|---|
| Minimum mentions | number (1–50) | yes |
Random chance
condition.chance — True with the given probability — great for occasional easter eggs.
Outputs: yes / no.
| Setting | Type | Required | Notes |
|---|---|---|---|
| Chance (%) | number (0–100) | yes |
Time of day?
condition.timeOfDay — True if the current server time is between the two hours (wraps past midnight).
Outputs: yes / no.
| Setting | Type | Required | Notes |
|---|---|---|---|
| From hour (0–23) | number (0–23) | yes | |
| To hour (0–23) | number (0–23) | yes |
Level at least?
condition.levelAtLeast — True if the member's levelling rank is ≥ N.
Outputs: yes / no.
| Setting | Type | Required | Notes |
|---|---|---|---|
| Minimum level | number (1–1000) | yes |
Balance at least?
condition.balanceAtLeast — True if the member's wallet holds ≥ N coins.
Outputs: yes / no.
| Setting | Type | Required | Notes |
|---|---|---|---|
| Minimum coins | number (0–1000000000) | yes |
Is a bot?
condition.isBot — True if the user is a bot account.
Outputs: yes / no.
No settings.
Has nickname?
condition.hasNickname — True if the member set a server nickname.
Outputs: yes / no.
No settings.
Is timed out?
condition.isTimedOut — True if the member currently has an active timeout.
Outputs: yes / no.
No settings.
Role count?
condition.roleCount — True if the member has at least N roles (excluding @everyone).
Outputs: yes / no.
| Setting | Type | Required | Notes |
|---|---|---|---|
| Minimum roles | number (0–250) | yes |
Channel type?
condition.channelType — True if the event channel is of the selected type.
Outputs: yes / no.
| Setting | Type | Required | Notes |
|---|---|---|---|
| Type | one of: text, thread, announcement, voiceText | yes |
Is a reply?
condition.isReply — True if the message replies to another message.
Outputs: yes / no.
No settings.
Has embed?
condition.hasEmbed — True if the message carries an embed (link preview, bot card…).
Outputs: yes / no.
No settings.
Uses custom emoji?
condition.hasCustomEmoji — True if the message contains a custom (server) emoji.
Outputs: yes / no.
No settings.
Mentions a role?
condition.mentionsRole — True if the message pings a role (optionally a specific one).
Outputs: yes / no.
| Setting | Type | Required | Notes |
|---|---|---|---|
| Specific role | role | no |
Mentions @everyone?
condition.mentionsEveryone — True if the message pings @everyone or @here.
Outputs: yes / no.
No settings.
Word count?
condition.wordCount — True if the message has at least N words.
Outputs: yes / no.
| Setting | Type | Required | Notes |
|---|---|---|---|
| Minimum words | number (1–1000) | yes |
Mostly caps?
condition.allCaps — True if ≥ N % of the letters are uppercase (and there are at least 6 letters).
Outputs: yes / no.
| Setting | Type | Required | Notes |
|---|---|---|---|
| Uppercase threshold (%) | number (50–100) | yes |
Day of week?
condition.dayOfWeek — True on the selected day (server time).
Outputs: yes / no.
| Setting | Type | Required | Notes |
|---|---|---|---|
| Day | one of: 1, 2, 3, 4, 5, 6, 0, weekend, weekday | yes |
Server size?
condition.memberCount — True if the server has at least N members.
Outputs: yes / no.
| Setting | Type | Required | Notes |
|---|---|---|---|
| Minimum members | number (1–10000000) | yes |
People in voice?
condition.voiceCount — True if the member's current voice channel has at least N people.
Outputs: yes / no.
| Setting | Type | Required | Notes |
|---|---|---|---|
| Minimum people | number (1–99) | yes |
Bought an item?
condition.hasPurchased — True if the member has ever bought something in the shop.
Outputs: yes / no.
No settings.
Has open ticket?
condition.hasOpenTicket — True if the member currently has an open support ticket.
Outputs: yes / no.
No settings.
Moderation history?
condition.caseCount — True if the member has at least N moderation cases on record.
Outputs: yes / no.
| Setting | Type | Required | Notes |
|---|---|---|---|
| Minimum cases | number (1–1000) | yes |
