Supported software
Install the plugin
1
Install the proxy plugins
Download Server Connection from GitHub and place it in the proxy template’s
plugins/ folder. Standard SimpleCloud templates already include simplecloud-api; add it through the target’s Plugins setting or the CLI if you use a custom template.2
Generate the configuration
Start a matching proxy. The plugin creates
config.yml, commands.yml, and messages.yml under plugins/simplecloud-connection/.3
Match your lobby servers
The default connection matches proxy registration names that start with
lobby. If your lobby group uses another name, change the lobby connection and keep its name consistent in network-join-targets, fallback, and commands.yml.4
Keep the configuration in the template
For a group proxy, copy
plugins/simplecloud-connection/ from the running proxy to the same path in its template before the proxy stops. See Templates for the complete workflow.5
Restart and test the proxy
Restart after changing registration or player command settings. Join the network to test the initial route, then run
/lobby from another backend to test the generated navigation command. The proxy uses the same connection when it needs a fallback server.Configuration
config.yml
The main configuration file controls server registration, connections, network join routing, and fallback behavior.Subdomain routes
Theaddress.routes section selects a connection from the hostname a player uses to join the proxy. Each subdomain must be the complete, exact hostname. For example, use new.example.com, not only new.
The target-connection value references a name from the connections list. It does not reference a server directly. The connection’s server-name-matcher then selects an available server.
play.example.com are sent to an available lobby server. Players joining through new.example.com are sent to the persistent server registered as smp-2026.
Point every routed hostname to the proxy with an A, AAAA, or CNAME DNS record. If the proxy does not use Minecraft’s default port, configure an appropriate Minecraft SRV record as well.
Routing behavior
- Config version: Subdomain routing requires version 2. Let the plugin migrate an existing version 1 file before you add routes because the migration does not retain them.
- Exact matching: Specify the complete hostname. Wildcard routes such as
*.example.comare not supported. - Default target: If no route matches, its target connection does not exist, or no matching server is available, the plugin continues with
network-join-targets. - Connection rules: Subdomain routes do not evaluate connection rules. A permission rule on the target connection does not restrict players joining through that hostname. Use prioritized
network-join-targetswhen routing should depend on a permission.
Matcher operations
Theserver-name-matcher supports the following operations:
Set
negate: true to invert any operation. For example, it can match all servers that do not start with lobby.
Connection rules
Connections can have rules that must pass before a player is allowed to use them. If a rule fails, the connection is skipped and the next priority is tried. There are two rule types: Permission rule Checks whether a player has a specific permission.bypass-permission applies, the entire connection is skipped.
Priority and fallback resolution
Bothnetwork-join-targets and fallback support multiple target connections with priorities:
- Target connections are tried highest priority first
- If multiple targets share the same priority, one is picked randomly among them
- If a target connection has no available server, the next lower priority is tried automatically
- The optional
fromlist on fallback targets restricts them to players coming from specific servers
commands.yml
Configures player navigation commands.network-join-targets and fallback.
Changes to connection matching, rules, join targets, fallback targets, and messages can be loaded with:
commands.yml. The reload reads the file, but already registered proxy commands keep their previous settings. Also restart after changing registration.additional-servers or registration name patterns so the proxy rebuilds its registered server list.
Permissions
Troubleshooting
Players join the proxy but no server is selected
Players join the proxy but no server is selected
Confirm that
network-join-targets.enabled is true, its connection names exist, and each matcher selects at least one registered server. The default matcher expects registration names beginning with lobby.An external backend disappeared from the proxy
An external backend disappeared from the proxy
Add it under
registration.additional-servers and restart. When registration is enabled, Server Connection rebuilds the proxy’s registered server list at startup.A subdomain route always uses the normal join target
A subdomain route always uses the normal join target
Use the complete hostname in
address.routes, point that hostname to the proxy, and confirm that target-connection names an existing connection with an available server. Wildcards and connection rules do not apply to subdomain routes.