Corestone

CoreStatus

CoreStatus keeps one message in a Discord channel up to date with the state of your Minecraft server: online or offline, players, TPS, uptime and more. It also posts short messages when the server starts or stops, when a player joins or leaves, and when the TPS stays low. Everything goes through Discord webhooks. There is no bot to host and no account to create.

On a Velocity or BungeeCord proxy it keeps one combined message about the whole network.

Polski: przewodnik po polsku

Requirements

  • One jar for Paper, Purpur, Folia, Spigot, Velocity and BungeeCord (Waterfall too).
  • Servers: Minecraft 1.20.6 to 26.3. Proxies: Velocity 3.5 or newer, BungeeCord or Waterfall.
  • Java 21 or newer, on proxies too. Your server version may need a newer Java: Minecraft 26.x needs Java 25.
  • A Discord channel where you may create a webhook (the "Manage Webhooks" permission).
  • A server that can reach discord.com over HTTPS.

Tested on Paper 1.21.4 and 26.3, Folia 26.3, Spigot 26.2, Velocity 3.5.1 and Waterfall 1.21 build 615, each with a real server and a stand-in for Discord.

Install

  1. Download CoreStatus-1.0.0.jar.
  2. Put it in the plugins folder of the server, or of the proxy.
  3. Start the server. CoreStatus writes plugins/CoreStatus/config.yml and says in the console that no webhook address is set. Nothing is sent to Discord yet.
  4. Create a webhook (next section) and paste its address into the config.
  5. Run /corestatus reload, or restart the server.

Create a webhook

  1. In Discord, open the settings of the channel that should show the status.

  2. Go to Integrations, then Webhooks, then New Webhook.

  3. Pick a name and a picture if you like, then choose Copy Webhook URL.

  4. Open plugins/CoreStatus/config.yml and paste the address into status.webhook:

    status:
      webhook: "https://discord.com/api/webhooks/123/abc…"
    

    The address above is made up. Use your own.

  5. Run /corestatus reload. The status message appears in the channel within a few seconds.

  6. Run /corestatus test to check that every webhook works.

The status and the start and stop messages suit a public channel. For the low-TPS warning (and the join and leave messages), create a second webhook in a staff channel and put it in low-tps.webhook (join-leave.webhook): see More than one webhook.

A webhook address is a secret: anyone who has it can post in your channel. Do not share config.yml with the address inside, and do not post the address in a support channel. If it leaks, delete the webhook in Discord and create a new one. CoreStatus never writes the whole address in the console: the token is hidden.

On a proxy

On Velocity and BungeeCord the first start writes a different config.yml, for the network message. Paste the address into network.webhook, set network.enabled to true, list your servers under network.servers, then run /corestatus reload. See Network mode.

The servers behind the proxy can run CoreStatus too, each with its own status message and its own config.

Files

CoreStatus keeps its files in plugins/CoreStatus on every platform, Velocity included.

File What it is
config.yml The settings. Written on the first start.
data.yml What CoreStatus remembers between runs: the id of each status message it edits, and when the server was last seen running. Do not edit it.
messages_en.yml, messages_pl.yml Optional. Your own texts. CoreStatus does not create them: see Changing the texts.

Privacy

  • No telemetry. CoreStatus does not collect or send statistics, and it does not check for updates.
  • Connections go only to the webhook addresses that you set in config.yml, on discord.com.
  • The status shows up to 10 player names by default. To turn the list off, set status.show.player-list: 0. The join and leave messages (join-leave.enabled) also name players; they are off by default.
  • Players in vanish (the vanished metadata used by SuperVanish, PremiumVanish and EssentialsX) are left out of the count, the list and the join and leave messages.

In this guide