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

# Commands and inputs

> Slash commands, right-click commands, and Inputs that ask for extra information.

A **command** is something a person does to make your bot react. There are two kinds: **slash commands** and **context (right-click) commands**.

## Making a new command

Open **Commands** in the sidebar and press **New command**. You get three choices:

| Choice | What it is |
| - | - |
| **Slash command** | Classic commands people type in chat, like `/ping`. |
| **Context command** | Runs from the right-click menu on a member or a message. On the Free plan you can have up to 5. |
| **Import from a share code** | Paste a `CMD-` code to copy someone's command. See [Folders, history and sharing](/building-with-blocks/folders-history-and-sharing). |

![A slash command open in the Command Builder](https://mintcdn.com/doge-bot/0C6-zgXTpDx1QOCe/images/guide/builder-command.png?fit=max\&auto=format\&n=0C6-zgXTpDx1QOCe\&q=85\&s=b7568b03c11d216dd65caf823f2b7d7a)

## The two kinds of commands

**Slash commands**

The person types **/** and the name, like `/daily`. Discord shows a list of your bot's commands while they type.

Slash commands can ask for extra things, called **Inputs**. See below.

> [!NOTE]
>
> Command names must be small letters with no spaces. Use a dash for two words, like `daily-coins`.

**Context (right-click) commands**

The person **right-clicks** (or long-presses on a phone) a **member** or a **message**, then picks **Apps**, then your command. In the builder you choose **User** or **Message**.

Context commands have no Inputs. Instead they know what was clicked:

* **User** commands get the **Target User** values, like `{context_user.name}`.
* **Message** commands get the message values, like `{context_message.reply.content}`.

See [Built-in variables](/variables/built-in-variables).

## Inputs

**Inputs** are the extra boxes a person fills in when they use a **slash command**.

> **Example: /give**
>
> `/give` asks **who** (a User input) and **how many** (a Number input).
>
> The person types: `/give @Sam 50`

> [!WARNING]
>
> Inputs only work in **slash commands**. Events and right-click (context) commands do not have them.

### The kinds of Inputs

| Input | What the person does | Example |
| - | - | - |
| **Text** | Types any text. | A reason for a warning. |
| **Number** | Types a number. | How many coins to give. |
| **User** | Picks a member of the server. | Who to give coins to. |
| **Channel** | Picks a channel. | Where to post an announcement. |
| **Role** | Picks a role. | Which role to give. |
| **Choice** | Picks **True** or **False**. | "Send it secretly?" |
| **Attachment** | Adds a file or picture. | A screenshot for a bug report. |

### How to add an Input

**1. Open your slash command**

Open your slash command in the builder.

**2. Open the Inputs tab**

In the block list, open the **Inputs** tab.

**3. Drag it in**

Drag the Input you want onto the board and join it under the first block.

**4. Name it**

Press it and give it a **name** (small letters, no spaces) and a **description**. People see the description in Discord.

**5. Required or optional**

Choose if the person **must** fill it in, or if it is optional.

### Using what the person filled in

Every Input gives you a value you can use in later blocks. Press the **\{ } Variables** button next to any text box and pick it from the list. You can use it in messages, in **Compare** checks and in **Do the maths**.

See [Daily coins](/build-real-systems/daily-coins) and [A shop with items](/build-real-systems/a-shop-with-items) for full examples.

## The Commands list

* **Search** your commands, and filter by **All**, **Slash** or **Right-click**.
* Each row has an **on/off switch**. A command that is off does not show in Discord.
* **Open** opens the builder.
* **⋯** has share code, duplicate, version history, tags, note, colour, move to folder and delete. See [Folders, history and sharing](/building-with-blocks/folders-history-and-sharing).
* Group commands into **folders**, like Moderation.

## If something breaks

Press the **first block** of a command. In its settings, **If something breaks** decides what your bot does if a block fails. See [Saving and fixing problems](/building-with-blocks/saving-and-fixing-problems).

## My command does not show in Discord

**1. Did you save?**

Press **Save** in the builder.

**2. Is it on?**

Check the command is switched **on** in the Commands list.

**3. Restart Discord**

Close Discord completely and open it again.

**4. Sync**

Still missing? In your bot's **Settings**, use **Sync Discord commands** to send all your commands to Discord again.

More help: [My command doesn't show up](/help/my-command-doesnt-show-up).


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