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

# Types of variables

> Text, Number, True / False, User, Channel, Collection and Object.

Every box holds one **kind** of thing. A box for coins holds a number. A box for a nickname holds words. This kind is called the **type**.

Picking the right type matters, because it decides what you can do with the box. You can only do maths on a **Number**, for example.

## All the types

| Type | What goes inside | Good for | Example value |
| - | - | - | - |
| **Text** | Words, letters and symbols. | A welcome message, a server rule, a password word. | `Welcome to the club!` |
| **Number** | A number you can do maths with. | A counter, a price, a total. | `250` |
| **True / False** | Only **true** or **false**, like a light switch. | "Is the shop open?", "Is giveaway mode on?" | `true` |
| **User** | **A different value for every member.** You also pick what each member stores. | Coins, XP, level, warnings. | Sam: `250`, Alex: `90` |
| **Channel** | A channel. | The log channel, the welcome channel. | `#welcome` |
| **Collection** | A list: many values in a row. | A list of banned words, a list of prizes. | `apple, banana, cherry` |
| **Object** | A box with **smaller named boxes** inside. | A shop with prices, a profile with many parts. | `coins: 250, gems: 3` |

## The most important one: User

This is the type you will use the most. Here is why.

If you make a **Number** variable called `coins`, there is **one** box. If Sam gets 100 coins, then **everyone** has 100 coins, because they all share one box. That is not what you want!

If you make a **User** variable called `coins`, **every member gets their own box**. Sam's box can have 250 and Alex's box can have 90.

When you pick **User**, DogeBot asks one more question: **what does each member store?** You can pick any of the other types:

* **User → Number**: every member has their own number. Use this for **coins, XP, levels, warnings**.
* **User → Text**: every member has their own text. Use this for **a bio or a favourite colour**.
* **User → True / False**: every member has their own switch. Use this for **"has verified"** or **"has claimed the starter pack"**.
* **User → Object**: every member has their own box of smaller boxes. Use this for **a full profile** with coins, gems and level all together. See [Objects and Collections](/variables/objects-and-collections).

## Which type should I pick?

Ask yourself these questions:

1. **Does every person need their own value?** Pick **User**, then pick what they store.
2. **Will I do maths with it?** Pick **Number**.
3. **Is it just on or off?** Pick **True / False**.
4. **Is it a channel?** Pick **Channel**.
5. **Is it a list of things?** Pick **Collection**.
6. **Does it have many named parts?** Pick **Object**.
7. **None of the above?** Pick **Text**.

<Warning>
  You cannot do maths on a Text variable, even if it has a number in it. If you want to add and take away, always use **Number**.
</Warning>


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