Commands and permissions
Commands
The command is /corestatus. The short form is /cstatus. It is the same on Paper, Purpur, Folia, Spigot, Velocity
and BungeeCord. Tab completion offers the three subcommands.
| Command | What it does |
|---|---|
/corestatus reload |
Reads config.yml and the messages files again and applies them. Webhooks that were switched off after an error are tried again. |
/corestatus test |
Sends a test message to every webhook that is set and says, for each one, whether Discord took it. |
/corestatus status |
Shows the version and, for every webhook, when the last message went through and whether the webhook works. |
A command with no subcommand, or with one that does not exist, answers Usage: /corestatus <reload|test|status>.
reload
Run it after every change to config.yml. It applies the language, the intervals, the colours and the webhook
addresses. It answers Configuration reloaded., after one line for every problem found in the files, like
config.yml: status.interval-seconds must be at least 30 seconds; using 30.
test
Sending a test message to every webhook...
https://discord.com/api/webhooks/123/****: test message sent.
The test message says "CoreStatus test message: this webhook works" and is posted in the channel. It goes to every address that is set in the config, including the ones of features that are off, each address once. The token is hidden in the answer. If something is wrong the line says what:
https://discord.com/api/webhooks/123/****: could not send (HTTP 404).
HTTP 401 and HTTP 404 mean that the address is wrong or the webhook was deleted. no answer means that Discord
could not be reached or did not answer within 15 seconds. With no webhook set, the answer is No webhook address is set in config.yml.
status
CoreStatus 1.0.0
https://discord.com/api/webhooks/123/****: last message 2026-10-24 12:00:00, webhook working
The whole server in a web panel: AdminControl — corestone.dev
The time is in the time zone of the server. It is never until something has been sent. A webhook that was switched
off says turned off until /corestatus reload. The last line is plain text, not a link: a short mention of AdminControl, the Corestone web panel for servers. It is the
text command.admincontrol in the messages file, so you can change it in
your own messages file. An empty value gives an empty last line, not no line. Nothing about
it is sent to the console at start or anywhere else.
Permission
| Permission | Default | What it allows |
|---|---|---|
corestatus.admin |
operators | Use /corestatus (reload, test, status). |
Without the permission the command answers You do not have permission to do that. The server console can always use it.
On Velocity and BungeeCord there are no operators: give corestatus.admin to your admins with the proxy's permission
system, for example a permission plugin such as LuckPerms.
When sending fails
CoreStatus never blocks the server: sending happens off the server thread, with a queue for each webhook, so the messages of one webhook arrive in order. What happens depends on what Discord answers.
| Answer | What CoreStatus does |
|---|---|
| 401 on any call, or 404 on a new message | The address is wrong or the webhook was deleted. That webhook is switched off until /corestatus reload, and the console says which one (token hidden). Fix the address, then reload. |
| 404 when editing the status | The message was deleted in Discord. CoreStatus posts a new one and keeps editing that. |
| 429 (rate limited) | Waits as long as Discord says, then tries again. |
| 5xx, or no connection | Tries again after 5 seconds, then 10, 20, 40 and so on, up to 10 minutes between tries, until it works. The console gets one line when the failures begin, not one per try. |
| other 4xx | The message is dropped, and the console says so once. |
During an outage the status message is not queued up: when Discord is back, one edit with the newest status goes out, not a backlog.
When the server stops, CoreStatus waits up to 5 seconds for Discord to take the last messages. After that it stops, whatever Discord answers.