Skip to content

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) ​

yaml
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) ​

yaml
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 back

The 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.

VanillaMine is a fork of PocketMine-MP, maintained by Luxury Nodes. Not affiliated with the PMMP team or Mojang.