Server approval
Since 2.0.0 the plugin asks an AlphaStudio panel whether your server may run it. This page explains the flow and exactly what is sent.
On this page
How it works
- First start. AlphaLevels sends a short report about your server to the AlphaStudio panel. The panel registers the server as
pending, and the plugin disables itself. - Approval. An AlphaStudio admin approves the server in the panel. Give them the server id the console printed (see Server id).
- Restart. The server has to be restarted once after approval. The plugin only checks at startup while it is still locked, so it does not turn itself on later.
- Running. While the plugin runs, it checks again every 10 minutes. If an admin blocks the server, or switches off just this plugin, AlphaLevels disables itself on the next check. No restart needed for that direction.
An admin can approve or block a whole server, or switch off a single plugin on an approved server. Every Alpha plugin on the same server shares one entry.
Server id
The first Alpha plugin to start creates a random id and stores it in plugins/.alphastudio-server-id. Every other Alpha plugin on that server reads the same file, which is how the panel shows one server with all its plugins. If that folder is not writable the id goes in the plugin's own data folder (plugins/AlphaLevels/), and if neither works the plugin uses a temporary id for that run and logs a warning.
.alphastudio-server-id when you update or move the server. A new id makes the panel see a new, unapproved server.What the plugin sends
Each check is one HTTPS request. This is the complete list of what it contains:
| Field | Example |
|---|---|
| Product | alphalevels |
| Plugin version | 2.0.0 |
| Server id | the random id above |
| Request nonce | random, used to verify the answer |
| MOTD | your server list message, as plain text |
| Port | 25565 |
| Server software | name and version, for example Paper |
| Minecraft version | for example 1.21.11 |
| Online mode | true or false |
| Players | how many are online, and the slot limit |
| Java version | for example Java 21.0.5 |
| Operating system | the name only, for example Linux |
Player names, UUIDs, chat, worlds, configuration files and the list of your other plugins are not sent. Like any web request, the panel also sees the IP address the request comes from, which is how an admin can tell servers apart.
How answers are trusted
The panel's answer is signed with an Ed25519 key. The matching public key is built into the plugin jar, and the plugin checks the signature, the product, the server id and the nonce before it believes an answer. A cached or edited file on disk cannot approve a server.
When the panel is unreachable
- A server the panel has never answered about keeps running. The plugin logs one warning per outage and retries after 60 seconds, then every check interval.
- The last signed
pendingorblockedanswer is remembered on disk, so an explicit lock survives an outage. - The first check at startup waits up to 12 seconds for the panel, which covers a panel that is waking from sleep.
Configuration
panel:
api-url: "https://alphastudio-licensing.onrender.com"
check-interval-minutes: 10
| Key | Default | Meaning |
|---|---|---|
panel.api-url | the AlphaStudio panel | Base URL, without a trailing slash. Only change it if AlphaStudio gave you another address. A value that does not start with http:// or https:// is ignored and the default is used. |
panel.check-interval-minutes | 10 | How often a running plugin checks again. The minimum is 5, anything lower is raised to 5. |
Console messages
| You see | Meaning |
|---|---|
AlphaLevels is disabled — this server is waiting for approval. | The server is pending. The line after it prints your server id. Send it to AlphaStudio, wait for approval, then restart. |
AlphaLevels is disabled — this server is not allowed to run it. | The server, or this plugin on it, was blocked. The admin's reason is printed on the next line when there is one. |
[Panel] Could not reach the panel (…) | Network problem or the panel is down. The plugin continues unless the server was already pending or blocked. |
[Panel] The panel's answer failed verification (…) | The answer did not carry a valid AlphaStudio signature. Check that nothing between your server and the panel rewrites responses. |
[Panel] The embedded public key is missing from this jar | The jar was repacked or damaged. Download it again. |
[Panel] Could not store a server id on disk | The server cannot write to plugins/. Fix the folder permissions. |
