Universe’s proxy plugins sit at the network edge and act as a bridge between your proxy and the live cluster state. Rather than maintaining a static server list inDocumentation 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.
velocity.toml or config.yml, the proxy plugin periodically polls the Universe Master REST API for all ONLINE instances and registers them as backend servers automatically — no restarts required when instances scale up or down.
On top of dynamic server registration, both proxy plugins support an auto-connect feature that routes players to the right backend the moment they join, using one of three configurable selection strategies.
What Proxy Plugins Do
When a proxy plugin starts it performs the following:- Loads configuration from
plugins/Universe/config.yml, with system properties and environment variables taking precedence. - Starts an instance poller that calls
GET /api/instanceson the configured interval and registers or deregisters backend servers as instances come online and go offline. - Optionally registers an auto-connect listener that intercepts player join events and sends players to a server selected by the configured strategy.
- Registers the
/universecommand set for manual inspection and player routing.
Installation and Configuration
- Velocity (3.5.0)
- BungeeCord
The
minecraft-velocity plugin targets Velocity 3.5.0 and uses the Velocity event system and Incendo Cloud for commands. Its plugin descriptor (velocity-plugin.json) identifies it to the Velocity proxy:Configuration Reference
| 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 |
poll-interval-seconds | 10 | — | — | How often (in seconds) to poll the Master for instance changes |
api-key | (none) | universe.api.key | UNIVERSE_API_KEY | Optional Bearer token for Master API authentication |
auto-connect.enabled | false | — | — | Whether to auto-route players to a backend on join |
auto-connect.configuration-type | "lobby" | — | — | Only instances using this configuration name are eligible |
auto-connect.strategy | "least_populated" | — | — | Server selection strategy (see below) |
Instance Polling
The poller callsGET /api/instances on every tick. For each ONLINE instance returned:
- If a Velocity/BungeeCord server with the instance’s ID does not yet exist, the poller registers it using the
hostAddress:allocatedPortfromInstanceInfo. - If a previously registered server no longer appears in the response (or is not
ONLINE), the poller removes it from the proxy’s server list.
Auto-Connect Strategies
Whenauto-connect.enabled is true, the proxy intercepts the PlayerChooseInitialServerEvent (Velocity) or PostLoginEvent (BungeeCord) and selects a destination server from all ONLINE instances whose configurationName matches configuration-type.
| Strategy | Enum Value | Behavior |
|---|---|---|
least_populated | LEAST_POPULATED | Sends the player to the instance with the fewest current players. Best for even load distribution. |
most_populated | MOST_POPULATED | Sends the player to the instance with the most players that is not yet full (players < maxPlayers). Useful for consolidating players into fewer active game instances. |
random | RANDOM | Picks a random eligible instance from the list regardless of player count. |
configuration-type — the auto-connect listener does nothing and the player lands on the proxy’s configured fallback server.
/universe Proxy Commands
Both proxy plugins register the following commands. The send subcommand is unique to proxy plugins.
| Subcommand | Permission | Description |
|---|---|---|
/universe info | Operator | Shows the Master URL, connection status, and poll interval |
/universe send <player> <server> | Operator | Manually transfers <player> to the Universe instance named <server> |
The
<server> argument in /universe send maps to the instance ID as registered in the proxy’s server list. You can list all registered servers with the standard /server command built into Velocity and BungeeCord.