Build your own commands and events from connected blocks, with no code.
The command builder is a section of its own where you build your commands and events on a canvas, by dragging blocks and connecting them. Each block is one step: the trigger starts the flow, a condition splits it into two paths, and an action does something real. The bot walks the wire from the trigger to the last connected block, and runs only what you actually connected. What you have to work with: 50 blocks across eight groups, seven conditions, plus the trigger block and the option block.
An option is a block you attach to the trigger to collect an input from the member. There are eight kinds: text, number, yes or no, member, channel, role, choice, and attachment. Each option has a key you read its value with later by writing {option_key}, a label shown inside Discord, and a Required switch. The choice kind takes a list of preset choices you write yourself, and the number kind takes a minimum and a maximum. In slash the options appear as separate fields; in prefix they fill positionally, with the last text field swallowing the rest of the line.
These actions call your real bot systems, so what they do shows up in the logs and leaderboards and escalates like any manual action:
The open-a-form action shows a popup input with a title and fields. The ten kinds: text, select menu, radio group, checkbox group, single checkbox, member picker, role picker, channel picker, member or role, and file upload. Discord has no slider, so for a bounded numeric answer the alternative is a radio of preset steps, or a number field you validate with a following comparison block. A form has two paths on the canvas: on submit, and on cancel or timeout, so you answer each case. Form answers are read by writing {form_fieldKey}.
When a message block sends buttons or a menu, the block grows extra ports on the canvas, one per button, each captioned with its label. You drag from the Yes port to whatever should happen when it is clicked, and from No to another path. That is how you build a whole chain: button, then form, then condition, then a right or wrong reply. Only a link button gets no port, because it opens a URL and never comes back.
Every run is recorded: the flow, who ran it, and the outcome. A failing action is logged and does not stop the rest of the command, and a run that stops for exceeding a limit is logged with the reason it stopped. The commands page also shows, per command, how many times it ran and when it last ran.
The command builder gives you what other bots only give you with a developer: commands that exist for your server alone. You open a blank canvas, drop the trigger block, connect what should happen after it, and save. The command is live in Discord right away, as a slash command with proper fields, a plain prefix command, or both.
A flow walks one wire from the trigger to the last connected block. A block you do not connect never runs, and a condition splits the wire into two paths where you build a different answer on each. Buttons and menus sent by a message block open extra ports on that same block, one per button, so you keep building past the click: a form that collects answers, a condition that checks them, then a final reply. The result is a complete experience inside a single message.
Events are the same idea with nobody typing a command: the flow runs on its own when a member joins, a message arrives, a reaction lands, someone moves in voice, or simply on a schedule you set. Filters narrow it to certain channels, roles, or a given word, so the flow only fires where it belongs.
Whatever a block produces stays available inside the same run: the last action result reads back as {result}, form answers as {form_key}, and command inputs as {option_key}, so a reply builds on what the flow already collected with no setup beforehand. And the bot system actions wire your flows into the rest of the product: currency, XP, warnings, jail, and game points all call the real systems, so they show up in logs and leaderboards.