Minecraft version
Cluster-wide, not per-world — every world shares one proxy and one lobby (players hop between them), so they all have to speak the same protocol version. A client on a newer version than the cluster's target simply can't connect to any world, not just one.
Saving only changes the target for new worlds. "Migrate" pushes it to every currently-running world and restarts each one so it re-downloads the right jar.
Declare a world
Broadcast message
Delivered via the proxy directly to connected players (same path as the Discord chat bridge) — reaches everyone even if a world's RCON happens to be unreachable. Takes effect within a few seconds, no restart involved.
Worlds
| Name | Type | Phase | Version | Host | Address | Access |
|---|
Add a host
Issues a short-lived join token, then run folia-host-join.sh on the target host with it.
Hosts
| Name | Status | CPU (used/cap) | Memory GB (used/cap) | Address |
|---|
Add a catalog entry
Writes to the operator override file, which always wins over the bundled catalog for this id — no mgmt release needed to add a plugin, bump a download URL to a new version, or flip verified once you've actually checked the download. A world that already declares this plugin picks up the change on its next restart (folia-nexa-node re-fetches the manifest every time — see PLAN.md §9).
For commercial/licensed plugins with no shareable download link — uploads the jar to this mgmt instance and hosts it at a private URL for worlds to fetch, and fills in id/version/download_url/sha256 below from the jar's own plugin.yml where possible. Review the fields, then Save as usual.
Curated plugin catalog
Vetted external plugins (pinned versions) plus in-house plugins, bundled with mgmt and extendable via an operator override file. Select these by id in a world's plugin list — see PLAN.md §14.
| Id | Category | Source | Version | Status | Homepage |
|---|
Curated data pack catalog
Vanilla data packs (e.g. Matcha) staged into a world's save folder before first boot, bundled with mgmt and extendable via an operator override file. Select these by id in a world's data pack list.
| Id | Category | Source | Version | Status | Homepage |
|---|
Server list MOTD & icon
Shown in the multiplayer server list before joining. Polled by the proxy every few seconds — no restart needed.
Discord chat bridge
Bridges in-game chat with Discord, world-aware — a message can go to its own world's channel and/or one combined server-wide channel. Requires folia-nexa-bot running for the Discord→game direction (needs the message_content intent enabled); the proxy handles game→Discord on its own via plain webhooks.
Discord role gate
When enabled, access tracks live membership of one Discord role — granted and revoked automatically as players' roles change. Applies cluster-wide, to every world.
Manual allowlist
Minecraft usernames added here are always allowed, on every world, independent of Discord — use for admins, testers, or anyone without a linked Discord account. Never affected by the Discord role gate above.
Access requests
Discord-authenticated requests (or players added directly above) — approved players are pushed to the proxy's access gate and any world with its whitelist enabled.
| Discord user | Minecraft user | Status |
|---|
Create operator account
Users
| Username | Role |
|---|