Linking servers
Each VanillaMine server behind the proxy is a backend. The proxy connects to it over a private TCP link (pm-link): the backend sends a challenge that the proxy signs with its key, and every player arrives with a ticket signed by the proxy. A backend only accepts proxies whose public key it lists.
On each backend (pocketmine.yml)
network:
proxy:
enabled: true
listen: "127.0.0.1:19200" # TCP address the proxy connects to. Firewall it: only the proxy may reach it.
server-name: "lobby-1" # must equal the server's name in the proxy's config.yml
public-keys:
- "<the key printed by VanillaGate at startup>"With enabled: true the server opens no RakNet or NetherNet port: players can only join through the proxy. With several proxies, list the key of every proxy. The proxy checks Xbox Live logins (online-mode) and the ticket carries the verified identity.
On the proxy (config.yml)
servers:
lobby-1:
address: "127.0.0.1:19200" # network.proxy.listen of that backend
survival-1:
address: "10.0.0.12:19200"
groups:
lobby: [lobby-1]
survival: [survival-1]
join-priority: [lobby] # where players go when they join
fallback-groups: [lobby] # where they go when their server stops or sends them backThe key under servers must be the backend's server-name. A group sends players to its server with the fewest players. Apply changes with the console command reload (no restart needed).
Moving players
- Players:
/server survival-1,/hub. - Staff:
/send <player|*> <server|group>. - Plugins:
ProxyNetwork::transfer(). - Admin API:
POST /api/send.
See Commands & admin API.
