> ## 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.

# Verification

> A Verify button with a secret word, roles and a log.

New members can only see a **verify** channel. They press **Verify**, type a secret word, and get the **Verified** role so they can see the whole server. This stops simple spam bots.

## Before you start

In your Discord server, make two roles:

* **Unverified**: can only see the verify channel.
* **Verified**: can see everything.

Move your bot's role **above** both of them in the role list.

## Step 1: Make a counter

On the **Database** page, make `verified_count`: type **Number**, scope **Server Specific**, starting value `0`.

## Step 2: Give Unverified on join

1. Make a new **event** for **when a member joins**.
2. Add **Give roles** and pick **Unverified**.
3. Save and switch it on.

## Step 3: The panel command

1. Make a slash command called `verify-panel`.
2. Add a check on the **permissions** of the person using it (search `permission`) and pick **Manage Server**, so only staff can post the panel.
3. On the **yes** path, add a message block that has a **button** (search `button`). Write a title like `Welcome!` and text like `Press Verify to get in.` Add one green button called **Verify**.
4. On the **else** path: **Reply**: `Only staff can post the panel.`

## Step 4: What the Verify button does

Every button has its **own blocks** that run when someone presses it. Under the Verify button:

1. Add a check on the **roles** of the person who pressed it (search `role`): do they already have **Verified**? On the **yes** path, **Reply** privately: `You're already verified.`
2. On the **else** path, add a **pop-up form** (search `pop-up`) with one short text box: `Type the word doge to get in`.
3. After the pop-up, add **Compare**: is the answer (pick it with { } **Variables**) equal to `doge`?
4. On the **yes** path:
   * **Give roles**: **Verified**.
   * The block that **removes roles** (search `remove`): **Unverified**.
   * **Do the maths** on `verified_count`: `+ 1`.
   * **Reply** privately: `You're in! You are verified member number {DBVAR_verified_count}.`
   * A message to your **log channel**: `{user_name} verified.`
5. On the **else** path: **Reply** privately: `That's not the word. Try again!`
6. Save.

## Step 5: Post the panel

Go to your verify channel and type `/verify-panel`. Done!

<Info>
  Want it even easier for members? Skip the pop-up and Compare, and give the role straight away when they press the button.
</Info>


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