
How Brickr blocks work
Brickr builds Discord bots from small reusable blocks. Every trigger, condition, action, and logic step is visible in the flow, so users can understand exactly what their bot will do.
How blocks work
A Brickr template is a chain of separate blocks. Each block represents exactly one trigger, condition, action, or logic step. Nothing important should happen inside a block unless it is visible as that block's own responsibility.
Block basics
The builder should always split a request into the smallest useful steps. A block that gives a role should not also send a message. A block that creates a channel should not also log the action. Those are separate blocks connected in the flow.
- Good block: Send message.
- Good block: Give role.
- Good block: Check permission.
- Bad block: Give role and send message.
- Bad block: Create ticket and log action.
Quick start
Start every template by identifying the trigger first. Then add any conditions that must be checked. Finally connect the actions in the exact order the bot should execute them.
- 1
Choose the trigger
Decide what starts the flow, such as a slash command, button click, or member join.
- 2
Add conditions
Place checks before actions when the flow depends on roles, permissions, channels, or message content.
- 3
Chain one-action blocks
Add each action separately, in order, so there is no hidden logic inside a block.
Trigger blocks
A trigger block starts a flow. It should never perform actions by itself. If a slash command should give a role and send a confirmation, the slash command is only the trigger; the role and message are separate action blocks after it.
- Slash Command
- Button Click
- Select Menu
- Modal Submit
- Member Joins Server
- Message Received
- Reaction Added
Condition blocks
A condition block checks whether the flow should continue or branch. Conditions should not be built into action blocks, because users need to see every decision the bot makes.
- Has Role
- Has Permission
- Is In Channel
- Is Bot
- Is Administrator
- Account Age Check
- Message Contains Text
Action blocks
An action block performs one task. If the requested behavior needs multiple tasks, create multiple action blocks. This keeps templates readable, reusable, and easy to debug.
- Send Message
- Give Role
- Remove Role
- Create Channel
- Send DM
- Timeout User
- Add Reaction
Logic blocks
Logic blocks control the route through a flow. They should make structure visible instead of hiding behavior inside another block.
- If / Else branch
- Wait
- Stop Flow
- Run Another Flow
- Set Variable
- Check Variable
Flow order
Flows should read from top to bottom in the order Discord will execute them. Triggers come first, conditions come before the actions they protect, and actions are chained one at a time.
- Trigger: Slash Command
- Condition: Has Permission
- Action: Give Role
- Action: Send Message
Configuration
When a new block is needed, ask what settings it should support before building it. A block's configuration should match its single responsibility and avoid unrelated options.
- A Send Message block needs content, channel, embeds, and mention behavior.
- A Give Role block needs target user and role.
- A Temporary Role block needs target user, role, duration, and expiry behavior.
Reusable templates
Templates are saved combinations of reusable blocks. Before adding a new block to a template, check whether the block already exists in the block library. Only create a new block when the requested behavior is not supported yet.
Troubleshooting
If a template is confusing, split blocks smaller. Hidden side effects are the most common issue. The user should be able to point at the flow and explain exactly what happens at every step.