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

# Quickstart

> From an empty server to a properly configured one in about ten minutes.

This page is the short version. Each step links to the page that explains it properly — skip ahead whenever you want more detail.

<Steps>
  <Step title="Invite the bot" icon="plus">
    Use the [invite link](https://mira.party/invite) and pick your server.

    Keep **Administrator** ticked unless you have a specific reason not to. Most of the bot works without it, but the parts that don't — antinuke reverting a role deletion, VoiceMaster creating channels, ticket categories — fail in ways that are annoying to debug. You can always trim permissions later.

    <Warning>
      After inviting, drag mira's role **near the top of your role list**. Discord will not let any bot manage a role that sits above its own, so a low-positioned bot silently fails at half the things you ask of it. This is the single most common setup problem.
    </Warning>
  </Step>

  <Step title="Set a prefix" icon="terminal">
    The default is `!`. If another bot already uses it, change it:

    ```javascript theme={null}
    !prefix set ;
    ```

    You can also run `!prefix add` to keep more than one, or set a [personal prefix](/getting-started/prefixes#your-own-personal-prefix) that works in every server you're in.
  </Step>

  <Step title="Turn on antinuke" icon="shield-halved">
    Do this before anything else. Antinuke watches for destructive admin actions and punishes whoever performs too many of them too quickly.

    ```javascript theme={null}
    !antinuke ban on --threshold 3 --duration 1h
    !antinuke channel on --threshold 3
    !antinuke role on --threshold 3
    !antinuke bot on
    !antinuke punishment ban
    ```

    Then whitelist the people who are *supposed* to do bulk work:

    ```javascript theme={null}
    !antinuke whitelist @headadmin
    ```

    Full walkthrough → [Antinuke](/security/antinuke)
  </Step>

  <Step title="Set up moderation roles" icon="gavel">
    `mute` and `jail` need roles and channel overwrites to exist. One command explains and creates what's missing:

    ```javascript theme={null}
    !setup
    ```

    Then, so that punishments escalate on their own:

    ```javascript theme={null}
    !warn threshold add 3 timeout 1h
    !warn threshold add 5 ban
    ```

    More → [Punishments](/moderation/punishments) and [Warnings](/moderation/warnings)
  </Step>

  <Step title="Point logging at a channel" icon="scroll">
    ```javascript theme={null}
    !logging enable #server-logs message member role channel
    ```

    Events are grouped into categories, so you can enable a whole category at once or pick individual events. Splitting them across multiple channels works too.

    More → [Logging](/setup/logging)
  </Step>

  <Step title="Greet new members" icon="door-open">
    ```javascript theme={null}
    !welcome add #general {content: welcome {user.mention} :)}
    ```

    That's the plain version. The `{...}` syntax is the [scripting language](/scripting/overview) — it's how you build embeds, buttons and containers for every customisable message in the bot.

    More → [System messages](/setup/system-messages)
  </Step>

  <Step title="Add the fun bits" icon="sparkles">
    Whatever your server actually needs:

    <CardGroup cols={2}>
      <Card title="Levels" icon="chart-line" href="/setup/levels">
        `!level toggle on`
      </Card>

      <Card title="Starboard" icon="star" href="/setup/starboard">
        `!starboard add #starboard ⭐`
      </Card>

      <Card title="VoiceMaster" icon="microphone" href="/setup/voicemaster">
        `!voicemaster setup`
      </Card>

      <Card title="Tickets" icon="ticket" href="/setup/tickets/overview">
        `!tickets setup`
      </Card>

      <Card title="Social feeds" icon="rss" href="/social/feeds">
        `!tiktok add #feed username`
      </Card>

      <Card title="Reposter" icon="link" href="/social/reposter">
        `!reposter status on`
      </Card>
    </CardGroup>
  </Step>
</Steps>

## Checking your work

Two commands give you a full picture of what's currently configured:

<CodeGroup>
  ```javascript Everything theme={null}
  !configuration
  ```

  ```javascript Per-module theme={null}
  !antinuke settings
  !antiraid settings
  !level settings
  !confessions settings
  !disboard settings
  !vanity settings
  ```
</CodeGroup>

`!configuration` (alias `!config`) is the overview — it walks every module and shows what's on, what's off, and which channels things are pointed at. It's the fastest way to spot something you forgot.

<Tip>
  Once you're happy with the setup, run `!backup` to snapshot it. If someone wrecks the server later, restoring from a backup is a lot faster than doing all of this again.
</Tip>
