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

# Custom Commands: Build Your Own !Commands in Discord

> Create !trigger commands on the dashboard that reply with text, assign roles, or both — with random responses, cooldowns, and per-channel restrictions.

Custom commands let you build your own `!trigger` shortcuts on the dashboard — no code required. Use them for anything your community reaches for repeatedly: `!rules` to post your server rules, `!socials` to share your links, `!lfg` to hand out a looking-for-group ping role, or `!8ball` for a rotating list of sarcastic answers. Commands go live immediately after you save — no sync, no restart needed. Free servers get up to 10 custom commands; Premium raises that limit to 30.

## Setting it up

<Steps>
  <Step title="Name your command">
    On the dashboard, open your server and go to the **Custom commands** tab. Give the command a name — that's the word members will type after `!`. For example, naming it `rules` means members type `!rules` to trigger it.
  </Step>

  <Step title="Choose what it does">
    Pick the action: reply with text, grant a role, remove a role, or combine a reply and a role in one go. For text replies, choose where the response goes — the same channel it was typed in, a specific channel you nominate, or a DM directly to the member.
  </Step>

  <Step title="Add multiple responses for variety">
    Write more than one response line and Newt picks one at random each time the command fires. This is how you build a `!quote` command that cycles through different quotes, or an `!8ball` that never gives the same answer twice.
  </Step>
</Steps>

## Worth knowing

**Anyone can use custom commands by default.** Members can run `!rules`, `!socials`, or anything else you create without needing a special role. If you want to restrict a command, expand the **Advanced** section on its dashboard card and tick the roles or channels it should be limited to. Leave everything unticked and there is no restriction.

**Use placeholders to personalise responses.** `{user}` pings whoever typed the command, and `{server}` inserts your server's name. Typing `@everyone` into a response will never ping the whole server — that's intentional, because a single typo on a popular command would otherwise be very loud.

**Role commands follow strict safety rules.** A role with dangerous permissions, a role that sits above Newt in the role list, or a role managed by an integration can never be attached to a custom command. Newt checks this both when you save and every time the command runs, so you can't accidentally hand out elevated permissions. There's no such restriction on the *who-can-use-it* list — restricting a command to your moderator role is exactly what that setting is for.

**Newt confirms role-only and redirected replies.** When a command grants or removes a role without posting a visible reply, or when the reply is sent to a different channel, Newt adds a ✅ reaction to the triggering message so the member knows it worked. You can also switch on automatic deletion of the triggering message — this requires Newt to have the **Manage Messages** permission in that channel.

**Cooldowns keep commands from being spammed.** Set a cooldown per channel, per person, or across the whole server. Regardless of what you configure, each command can fire at most once every few seconds per channel, so nobody can use a custom command to flood the bot with repeated replies.

**Free servers get 10 commands; Premium raises the limit to 30.** If you are approaching the free limit, upgrading to Premium gives you room for up to 30 commands in total.
