# Custom commands

> Make your own Kick chat commands like !discord or !socials with KickBot, pick who can use each command, add cooldowns and use variables for live data.

Source: https://kickbot.com/docs/chat-bot/custom-commands

A custom command is a chat command you make yourself. When a viewer types it in your Kick chat, for example `!discord`, KickBot posts the reply you saved. You make and change Kick chat commands on the [Custom commands](https://kickbot.com/dashboard/commands) page of the KickBot dashboard, under **Chat bot**.

You need a KickBot account with your Kick channel connected, and KickBot must be a [moderator in your channel](https://kickbot.com/docs/getting-started/add-kickbot-as-moderator).

![The Custom commands page with two of your own commands and the six built-in commands](https://kickbot.com/docs/images/chat-bot/custom-commands/01-commands-page.webp "Your own commands are at the top. Built-in commands are in their own list below.")

The page has two lists:

- **Your commands**: the commands you made. You choose the name, the reply and every setting.
- **Built-in commands**: six ready-made commands, like `!followage` and `!lurk`. They do not count toward the Free limit. See [built-in commands](https://kickbot.com/docs/chat-bot/built-in-commands).

## Add a command

1. Open [kickbot.com/dashboard/commands](https://kickbot.com/dashboard/commands).
2. Click **Add command**. A panel opens on the right.
3. In **Command**, type the name without the `!`. KickBot adds it for you. For example, `discord` makes the command `!discord`.
4. In **Reply**, type the message KickBot posts. You can add [variables](https://kickbot.com/docs/chat-bot/command-variables) with **Insert a variable**.
5. Pick **Who can use it** and set a **Cooldown** if you need one.
6. Click **Save**.

The **In Kick chat** box at the top shows how the command looks in chat while you type. Variables show sample values there. Only you see this preview.

![The New command panel with the command discord, a reply with a variable, and the preview in Kick chat](https://kickbot.com/docs/images/chat-bot/custom-commands/02-new-command.webp "The preview at the top shows the reply with sample values.")

## Settings

| Setting | What it does | Limits and default |
| --- | --- | --- |
| **Command** | The word viewers type after `!`. | 1 to 20 characters, no spaces. Capital letters do not matter: `!Discord` and `!discord` run the same command. |
| **Reply** | The message KickBot posts. | Up to 500 characters. Can hold [variables](https://kickbot.com/docs/chat-bot/command-variables). |
| **Who can use it** | **Everyone**, **Subs**, **VIPs**, **Mods**, or a mix. | Default **Everyone**. |
| **Each viewer waits** | User cooldown: how long one viewer waits before using the command again. | 0 to 300 seconds, in steps of 5. Default 0. |
| **Everyone waits** | Global cooldown: how long the whole chat waits after anyone uses the command. | 0 to 300 seconds, in steps of 5. Default 0. |
| **Command is on** | Turns the command on or off without deleting it. | On for new commands. |

## Who can use a command

**Everyone** lets every viewer use the command. When **Everyone** is on, the other groups do not matter.

Turn **Everyone** off and pick one or more groups to limit the command. For example, **Subs** and **Mods** lets only subscribers and moderators use it. Other viewers get no reply.

You (the streamer) can always use every command. If you turn off every group, nobody except you can use it, and the panel shows a warning.

![The Who can use it buttons with Subs and Mods on, and the two cooldown fields](https://kickbot.com/docs/images/chat-bot/custom-commands/03-who-cooldown.webp "Subs and Mods selected. The cooldowns are below.")

> **Mod-only commands:** A command for **Mods** only is a good way to keep tools like a shout-out command away from regular viewers. The built-in `!so` command is set to **Mods** for this reason. For Kick's own moderator commands like `/ban` and `/timeout`, see [moderation](https://kickbot.com/docs/chat-bot/moderation#kicks-own-moderator-tools).

## Cooldowns

A cooldown stops spam when many viewers type the same command.

- **Each viewer waits** applies to one viewer. With 30 seconds, a viewer can use `!discord` once every 30 seconds. Other viewers can still use it.
- **Everyone waits** applies to the whole chat. With 10 seconds, KickBot answers `!discord` at most once every 10 seconds, no matter who types it.

You and your moderators are not slowed down by cooldowns.

## Edit, turn off or delete a command

- Use the switch on a row to turn a command on or off. The change saves at once.
- Click a row to open it. Change any field and click **Save**.
- To delete a command, open it and click **Delete**, then **Delete command**. You cannot undo this.

Built-in commands cannot be deleted. You can turn them off or change their reply.

## The Free limit

> **Note:** On the Free plan, up to 5 custom commands can be on at the same time. You can make more, but the extra ones stay off. Built-in commands do not count toward this limit. Premium has no limit.

## Examples of useful commands

Copy these and change them for your channel. Text like `discord.gg/your-server-code` is a placeholder.

| Command | Reply |
| --- | --- |
| `!discord` | `Join the Discord: discord.gg/your-server-code` |
| `!socials` | `Follow @{{streamer.username}} on X: x.com/yourhandle` |
| `!schedule` | `Live Tue, Thu and Sat at 7pm ET.` |
| `!tip` | `Support the stream: kickbot.com/tips/yourchannel` |
| `!title` | `Today: {{stream.title}}` |
| `!dice` | `@{{sender.username}} rolled a {{randomRange(1,6)}}` |
| `!8ball` | `{{randomItem("Yes","No","Ask again later")}}` |
| `!hug` | `{{sender.username}} hugs {{taggedUser.username}}` (viewers type `!hug @name`) |

For the full list of variables and what each one posts, see [command variables](https://kickbot.com/docs/chat-bot/command-variables). If you want ideas for your channel, the guide [Kick chat commands every channel should have](https://kickbot.com/guides/grow/kick-chat-commands) has more.

## Troubleshooting

If a command does not post in chat:

- **KickBot is not a moderator.** This is the most common cause. See [add KickBot as a moderator](https://kickbot.com/docs/getting-started/add-kickbot-as-moderator).
- **The command is off.** Check the switch on its row. On the Free plan, a new command starts off when 5 commands are already on.
- **The viewer is not in a group that can use it.** For example, a command for **Subs** only does not answer regular viewers.
- **A cooldown is still running.** Wait for the cooldown, or test as the streamer.
- **The name is used by another feature.** When the [clip command](https://kickbot.com/docs/chat-bot/clip-command) is on, `!clip` always makes a clip, so a custom `!clip` command does not run.

## FAQ

**How do I add commands on Kick?**

Use a chat bot. With KickBot, open [kickbot.com/dashboard/commands](https://kickbot.com/dashboard/commands), click **Add command**, type a name and a reply, and click **Save**. Viewers can then type the command in your chat.

**Can my moderators make KickBot commands?**

Yes. Add them to your team in KickBot with the **Custom commands** permission. They can then sign in and change commands for your channel. See [team](https://kickbot.com/docs/account/team).

**How many commands can I have?**

There is no limit on how many commands you make. On the Free plan, 5 custom commands can be on at the same time. Premium has no limit. Built-in commands do not count.

**Can a command show the viewer's name or how long they have followed?**

Yes. Put variables like `{{sender.username}}` or `{{sender.followage}}` in the reply. KickBot puts in the live value when the command runs. See [command variables](https://kickbot.com/docs/chat-bot/command-variables).
