Skip to main content

Server Status

The Server Status module posts a single Discord embed that updates itself with live server metrics. Rather than spamming new messages, the bot edits one embed in place every minute with the current player count, TPS, and uptime.

Overview

Server Status maintains exactly one status message in a channel of your choice. On each tick it edits that message to reflect current server health: players online, max players, TPS, and uptime. The bot stores the message ID so the same embed is updated indefinitely rather than reposted.

Configuration

All keys live under features.server-status in plugins/XDiscordUltimate/config.yml.
features:
  server-status:
    enabled: true
    channel-id: "123456789012345678"
    update-interval: 60
    message-id: ""

Key behavior

  • channel-id — The Discord channel where the status embed lives. Use a dedicated, read-only channel for the cleanest result.
  • update-interval — Seconds between embed refreshes (default 60). Lower values give fresher data at the cost of more API calls.
  • message-id — The ID of the embed the bot edits. Leave empty initially; the plugin populates it after the first post and reuses it on every subsequent tick. You should not normally edit this by hand.
A core Discord slash command /status is also available for on-demand snapshots outside the auto-updating embed.

How It Works

On each update-interval tick, the bot:
  1. Reads the current server metrics — online players, max players, TPS, uptime.
  2. Builds an embed with those values.
  3. Looks up message-id. If it exists, the bot edits the existing message. If not (first run, or the message was deleted), the bot posts a new embed and stores the returned message ID back into message-id.
The result is a single, ever-current status panel — no duplicate messages, no manual cleanup.

Setup

1

Create a read-only channel

In Discord, create a dedicated channel for the status embed (for example, #server-status) and deny Send Messages for @everyone so only the bot can post there. A clean, single-purpose channel works best.
2

Set the channel ID

Copy the channel ID and paste it into channel-id in features.server-status, then restart or reload the plugin.
features:
  server-status:
    enabled: true
    channel-id: "123456789012345678"
    update-interval: 60
    message-id: ""
3

Let it post once

On the first tick after enabling, the bot posts the initial embed and writes its message ID back into message-id. From this point on, the embed is edited in place every update-interval seconds.
4

It self-manages from here

No further configuration is required. If the embed is ever deleted, the bot simply posts a fresh one on the next tick and re-seeds message-id. To move the panel to a new channel, update channel-id and clear message-id.

Next Steps

Player Stats

Track and surface per-player activity and statistics.

Configuration

Reference for every module and key in config.yml.