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

# Message Counter

> Track and manage message statistics for server members

## Overview

The message counter system tracks how many messages each member sends in your server. View leaderboards, check individual stats, and manage message counts with administrative commands. Counts are updated in real-time and include both all-time and daily statistics.

<Info>
  Message counting must be enabled before any statistics are tracked. Use `messagecount on` to start tracking.
</Info>

***

## Commands

<AccordionGroup>
  <Accordion title="messagecount" icon="toggle-on">
    Enable or disable message counting for your server.

    <CodeGroup>
      ```bash Syntax theme={null}
      ~messagecount <on|off>
      ~messagecount
      ```

      ```bash Example theme={null}
      ~messagecount on
      ~messagecount off
      ~msgtoggle on
      ~msgcount
      ```
    </CodeGroup>

    **Parameters:**

    * **on** — Enable message counting
    * **off** — Disable message counting
    * No parameter — Show current status

    **What It Does:**

    * Controls whether messages are tracked
    * Shows current enabled/disabled status
    * Must be enabled before any tracking occurs

    **Aliases:** `msgtoggle`, `msgcount`\
    **Permissions:** Administrator
  </Accordion>

  <Accordion title="messages" icon="message">
    View message statistics for a user.

    <CodeGroup>
      ```bash Syntax theme={null}
      ~messages [@user]
      ```

      ```bash Example theme={null}
      ~messages
      ~messages @John
      ~m @User
      ```
    </CodeGroup>

    **Parameters:**

    * **@user** — Optional: User to check (defaults to yourself)

    **What It Shows:**

    * Total all-time messages in the server
    * Messages sent today
    * Real-time updated statistics

    **Aliases:** `m`\
    **Permissions:** None
  </Accordion>

  <Accordion title="messageleaderboard" icon="trophy">
    View the total message leaderboard for your server.

    <CodeGroup>
      ```bash Syntax theme={null}
      ~messageleaderboard
      ```

      ```bash Example theme={null}
      ~messageleaderboard
      ~mlb
      ```
    </CodeGroup>

    **What It Shows:**

    * Top message senders (all-time)
    * Paginated display (10 users per page)
    * Real-time updated counts
    * Navigation buttons for browsing

    **Aliases:** `mlb`\
    **Permissions:** None
  </Accordion>

  <Accordion title="dailyleaderboard" icon="calendar-day">
    View today's message leaderboard.

    <CodeGroup>
      ```bash Syntax theme={null}
      ~dailyleaderboard
      ```

      ```bash Example theme={null}
      ~dailyleaderboard
      ~mdl
      ```
    </CodeGroup>

    **What It Shows:**

    * Top message senders for today
    * Paginated display (10 users per page)
    * Real-time updated counts
    * Navigation buttons for browsing

    **Aliases:** `mdl`\
    **Permissions:** None
  </Accordion>

  <Accordion title="addmessages" icon="plus">
    Add messages to a user's count manually.

    <CodeGroup>
      ```bash Syntax theme={null}
      ~addmessages <@user> <amount>
      ```

      ```bash Example theme={null}
      ~addmessages @John 100
      ~msgadd @User 500
      ```
    </CodeGroup>

    **Parameters:**

    * **@user** — User to add messages to
    * **amount** — Number of messages to add (positive integer)

    **What It Does:**

    * Adds specified amount to total message count
    * Useful for importing data or corrections
    * Updates immediately

    **Aliases:** `msgadd`\
    **Permissions:** Manage Server
  </Accordion>

  <Accordion title="removemessages" icon="minus">
    Remove messages from a user's count manually.

    <CodeGroup>
      ```bash Syntax theme={null}
      ~removemessages <@user> <amount>
      ```

      ```bash Example theme={null}
      ~removemessages @John 50
      ~msgremove @User 200
      ```
    </CodeGroup>

    **Parameters:**

    * **@user** — User to remove messages from
    * **amount** — Number of messages to remove (positive integer)

    **What It Does:**

    * Removes specified amount from total count
    * Shows confirmation prompt
    * Cannot go below 0

    **Aliases:** `msgremove`\
    **Permissions:** Manage Server
  </Accordion>

  <Accordion title="setmessages" icon="pen">
    Set exact message count for a user.

    <CodeGroup>
      ```bash Syntax theme={null}
      ~setmessages <@user> <amount>
      ```

      ```bash Example theme={null}
      ~setmessages @John 1000
      ~msgset @User 5000
      ```
    </CodeGroup>

    **Parameters:**

    * **@user** — User to set count for
    * **amount** — Exact message count (non-negative integer)

    **What It Does:**

    * Sets total message count to exact value
    * Shows confirmation prompt
    * Replaces current count completely

    **Aliases:** `msgset`\
    **Permissions:** Manage Server
  </Accordion>

  <Accordion title="resetmessages" icon="rotate-left">
    Reset a user's message count to zero.

    <CodeGroup>
      ```bash Syntax theme={null}
      ~resetmessages <@user>
      ```

      ```bash Example theme={null}
      ~resetmessages @John
      ~msgreset @User
      ```
    </CodeGroup>

    **Parameters:**

    * **@user** — User to reset count for

    **What It Does:**

    * Removes all message data for the user
    * Shows confirmation prompt
    * Cannot be undone

    <Warning>
      This permanently deletes the user's message data.
    </Warning>

    **Aliases:** `msgreset`\
    **Permissions:** Manage Server
  </Accordion>

  <Accordion title="resetallmessages" icon="trash">
    Reset all message counts for the entire server.

    <CodeGroup>
      ```bash Syntax theme={null}
      ~resetallmessages
      ```

      ```bash Example theme={null}
      ~resetallmessages
      ~msgresetall
      ```
    </CodeGroup>

    **What It Does:**

    * Deletes ALL message data for the server
    * Shows confirmation prompt
    * Cannot be undone

    <Warning>
      This permanently deletes all message statistics for every user in your server.
    </Warning>

    **Aliases:** `msgresetall`\
    **Permissions:** Manage Server
  </Accordion>
</AccordionGroup>

***

## How It Works

<Steps>
  <Step title="Enable Message Counting">
    Turn on the message counter for your server:

    ```bash theme={null}
    ~messagecount on
    ```
  </Step>

  <Step title="Messages Are Tracked">
    The bot automatically tracks:

    * Every message sent by members
    * Total all-time counts
    * Daily counts (resets at midnight UTC)
  </Step>

  <Step title="View Statistics">
    Check stats and leaderboards:

    ```bash theme={null}
    # Your stats
    ~messages

    # Someone else's stats
    ~messages @User

    # All-time leaderboard
    ~mlb

    # Today's leaderboard
    ~mdl
    ```
  </Step>
</Steps>

***

## Leaderboard Navigation

Both leaderboards support interactive navigation:

* **First** — Jump to first page
* **Previous** — Go to previous page
* **Stop** — Close the leaderboard
* **Next** — Go to next page
* **Last** — Jump to last page

<Note>
  Leaderboards show 10 users per page and auto-disable buttons after 60 seconds.
</Note>

***

## Permission Requirements

<CardGroup cols={2}>
  <Card title="Bot Permissions" icon="robot">
    No special permissions required beyond basic message reading and sending.
  </Card>

  <Card title="User Permissions" icon="user">
    Command Requirements:

    * **Administrator** — messagecount toggle
    * **Manage Server** — add/remove/set/reset commands
    * **None** — Viewing statistics and leaderboards
  </Card>
</CardGroup>

***

## Usage Examples

<Tabs>
  <Tab title="Setup">
    ```bash theme={null}
    # Enable message counting
    ~messagecount on

    # Check if it's enabled
    ~messagecount

    # Disable message counting
    ~messagecount off
    ```
  </Tab>

  <Tab title="Viewing Stats">
    ```bash theme={null}
    # Check your own messages
    ~messages

    # Check another user
    ~messages @John

    # View all-time leaderboard
    ~mlb

    # View today's leaderboard
    ~mdl
    ```
  </Tab>

  <Tab title="Manual Adjustments">
    ```bash theme={null}
    # Add messages
    ~addmessages @User 100

    # Remove messages
    ~removemessages @User 50

    # Set exact count
    ~setmessages @User 1000
    ```
  </Tab>

  <Tab title="Reset Data">
    ```bash theme={null}
    # Reset specific user
    ~resetmessages @User

    # Reset entire server
    ~resetallmessages
    ```
  </Tab>

  <Tab title="Importing Data">
    ```bash theme={null}
    # Import message counts from another bot
    ~setmessages @User1 5000
    ~setmessages @User2 3000
    ~setmessages @User3 2500

    # Or add to existing counts
    ~addmessages @User1 1000
    ```
  </Tab>
</Tabs>

***

## Common Use Cases

<AccordionGroup>
  <Accordion title="Track server activity" icon="chart-simple">
    ```bash theme={null}
    # Enable tracking
    ~messagecount on

    # Check most active members
    ~mlb

    # Check today's activity
    ~mdl
    ```

    Monitor who's most active in your community.
  </Accordion>

  <Accordion title="Reward active members" icon="gift">
    ```bash theme={null}
    # Check leaderboard
    ~mlb

    # Reward top 3 most active members
    # Give them special roles or perks
    ```

    Use statistics to recognize and reward engagement.
  </Accordion>

  <Accordion title="Import from another bot" icon="download">
    ```bash theme={null}
    # Set counts for all users
    ~setmessages @User1 10000
    ~setmessages @User2 8500
    ~setmessages @User3 7200
    ```

    Migrate message counts when switching bots.
  </Accordion>

  <Accordion title="Fresh start for events" icon="calendar">
    ```bash theme={null}
    # Reset everyone's counts
    ~resetallmessages

    # Start event tracking
    # Check daily leaderboard during event
    ~mdl
    ```

    Track activity during specific events or competitions.
  </Accordion>

  <Accordion title="Fix incorrect counts" icon="wrench">
    ```bash theme={null}
    # User's count is too high
    ~removemessages @User 500

    # User's count is too low
    ~addmessages @User 200

    # Set to correct value
    ~setmessages @User 1000
    ```

    Correct data errors or spam inflation.
  </Accordion>
</AccordionGroup>

***

## Important Notes

<Info>
  **Real-Time Updates**

  * All statistics update immediately
  * Leaderboards reflect current counts
  * Daily counts reset at midnight UTC
  * No caching delays
</Info>

<Warning>
  **Data Persistence**

  * Disabling message counting does NOT delete data
  * Existing statistics remain intact
  * Re-enabling will continue from current counts
  * Use reset commands to delete data
</Warning>

***

## Related Features

<CardGroup cols={2}>
  <Card title="Server Settings" icon="server" href="/server">
    Configure other server features and preferences
  </Card>

  <Card title="Role Management" icon="user-gear" href="/role">
    Create roles to reward active members
  </Card>
</CardGroup>
