> ## Documentation Index
> Fetch the complete documentation index at: https://docs.dogebot.net/llms.txt
> Use this file to discover all available pages before exploring further.

# Build a system

> Step by step recipes for whole systems, like an economy, levels, welcome, verification and tickets.

A **system** is a group of commands, events and variables that work **together**. One `/balance` command is nice. A `/work`, `/balance`, `/shop` and `/give` that all share the same coins is an **economy system**.

The pages in this part are **recipes**. Follow them step by step and you end up with a whole working system. Then change the words, numbers and colours to make it yours.

## The recipe for ANY system

Every system, big or small, is built from the same five questions. Answer them on paper first, then build.

<Steps>
  <Step title="What does my bot need to remember?">
    These become your **variables**. Coins? XP? A log channel? Make them first on the **Database** page. See [Variables](/variables).
  </Step>

  <Step title="What starts it?">
    * A person typing something: a **slash command**.
    * A person right-clicking a member or message: a **context command**.
    * Something happening in the server, like someone joining: an **event**.
    * A clock: a **timed event**.
    * A button or menu someone presses: the **button's own blocks**.
  </Step>

  <Step title="What should it check?">
    These become **Checks**. "Do they have enough coins?" is **Compare**. "Are they staff?" is a permissions or role check. "Lucky or not?" is **Random chance**.
  </Step>

  <Step title="What should it do?">
    These become **Steps**: send a message, give a role, change a variable, make a channel.
  </Step>

  <Step title="Does it work?">
    Test it in your server. If something is wrong, use **Replays** to watch it run block by block, and **Error Logs** to see what broke.
  </Step>
</Steps>

## How to find a block fast

All the recipes tell you which block to use. The quickest way to find one is the **search box at the top of the block list**. Type a word from what the block does, like `role`, `channel`, `button` or `maths`, and it shows up.

## The recipes

| System | What you get |
| - | - |
| [Economy](/build-a-system/economy) | Coins, `/balance`, `/work`, `/give`, a shop that sells roles, and an admin command. |
| [Levels and XP](/build-a-system/levels-and-xp) | XP for chatting, level-up messages and a `/rank` picture card. |
| [Welcome and goodbye](/build-a-system/welcome-and-goodbye) | A welcome message with a picture card, a join role, and a goodbye message. |
| [Verification](/build-a-system/verification) | A Verify button, a secret word pop-up, roles and a log. |
| [Tickets](/build-a-system/tickets) | An Open a ticket button that makes a private channel, and a Close button. |
| [Button roles](/build-a-system/button-roles) | Buttons people press to get or remove a role. |
| [Warnings and moderation](/build-a-system/warnings-and-moderation) | Staff-only `/warn` that counts warnings and times people out at 3. |
| [Scheduled messages](/build-a-system/scheduled-messages) | A message your bot posts by itself at a set time. |

For **WhatsApp**, start with [Your first flow](/whatsapp-bots/your-first-flow) and the ready-made flows on the Flows page.

<Check>
  **Tip:** Add **Note** blocks to your board as you build, like "this part takes the coins". When you come back in a month, you will thank yourself.
</Check>

## In this section

<Columns cols={2}>
  <Card title="Economy" icon="coins" href="/build-a-system/economy">
    Coins, /balance, /work, /give, a role shop and an admin command.
  </Card>

  <Card title="Levels and XP" icon="trending-up" href="/build-a-system/levels-and-xp">
    XP for chatting, level-ups and a /rank card.
  </Card>

  <Card title="Welcome and goodbye" icon="hand" href="/build-a-system/welcome-and-goodbye">
    Welcome new members with a message, a picture card and a role.
  </Card>

  <Card title="Verification" icon="shield-check" href="/build-a-system/verification">
    A Verify button with a secret word, roles and a log.
  </Card>

  <Card title="Tickets" icon="ticket" href="/build-a-system/tickets">
    An Open a ticket button that makes a private channel, with a Close button.
  </Card>

  <Card title="Button roles" icon="toggle-right" href="/build-a-system/button-roles">
    Buttons people press to get or remove a role.
  </Card>

  <Card title="Warnings and moderation" icon="gavel" href="/build-a-system/warnings-and-moderation">
    A staff-only /warn that counts warnings and times people out at 3.
  </Card>

  <Card title="Scheduled messages" icon="calendar-clock" href="/build-a-system/scheduled-messages">
    Make your bot post by itself, every day or every few minutes.
  </Card>
</Columns>


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.