Universe’s server plugins are placed in a game server’sDocumentation Index
Fetch the complete documentation index at: https://mintlify.com/universeclouddev/Universe/llms.txt
Use this file to discover all available pages before exploring further.
plugins/ directory just like any other Bukkit plugin. On startup each plugin registers the server as an ONLINE instance with the Universe Master, begins a recurring heartbeat, and registers the /universe command set. On shutdown the plugin reports OFFLINE state before the process exits.
Every flavor — Modern Paper, Legacy Spigot, and Folia — shares the same configuration file layout and command surface. The only differences are the platform APIs used internally and the chat formatting library (MiniMessage on modern platforms, legacy & codes on Spigot and BungeeCord).
What Server Plugins Do
When a server plugin loads it performs four actions:- Resolves the Master URL from the system property, environment variable,
config.yml, or the defaulthttp://localhost:6000— in that order. - Resolves the instance ID from
universe.instance.id/UNIVERSE_INSTANCE_ID/instance-idinconfig.yml. Without an instance ID the plugin logs a warning and skips registration. - Reports
ONLINEstate to the Master REST API atPUT /api/instances/{id}/state. - Starts a heartbeat task on the configured interval (default 30 seconds) that sends current player count, max players, and TPS to the Master.
Installation and Configuration
- Modern Paper (1.21.11+)
- Legacy Spigot (1.8.8)
- Folia (1.21+)
The
minecraft-modern plugin targets Paper 1.21.11+ and uses the Incendo Cloud annotation parser for commands and MiniMessage for all chat output.Place the JAR in plugins/
Copy
minecraft-modern-<version>-all.jar into your Paper server’s plugins/ directory.config.yml Reference
The following table describes every key inplugins/Universe/config.yml. All values can be overridden by the corresponding system property or environment variable listed alongside them.
| Key | Default | System Property | Env Var | Description |
|---|---|---|---|---|
master-url | http://localhost:6000 | universe.master.url | UNIVERSE_MASTER_URL | Base URL of the Universe Master REST API |
instance-id | (none) | universe.instance.id | UNIVERSE_INSTANCE_ID | ID of this server instance registered in Universe |
api-key | (none) | universe.api.key | UNIVERSE_API_KEY | Optional Bearer token for Master API authentication |
heartbeat-interval-seconds | 30 | — | — | How often (in seconds) to report player count and TPS |
Heartbeat Reporting
Every interval the plugin sends aPUT /api/instances/{id}/state request to the Master containing:
- Players — current online player count (
server.onlinePlayers.size) - Max players — configured server max players
- TPS — server ticks-per-second (reported in the
/universe tpscommand and included in heartbeat data) - Last heartbeat — epoch milliseconds of the last successful report
lastHeartbeat to detect stale instances. If a server crashes without a clean shutdown the Master will eventually mark it OFFLINE when the heartbeat stops arriving.
/universe Commands
All three server plugins register the same top-level /universe command. Each subcommand is available to operators by default.
| Subcommand | Description |
|---|---|
/universe info | Displays the instance ID, Master URL, connection status, and current state |
/universe players | Shows the current player count and the configured maximum |
/universe tps | Reports the current server TPS (ticks per second) |