English | 中文
A WaterdogPE plugin that synchronizes player counts and transfers players across multiple proxy instances.
- Aggregated Player Count - Combines player counts from multiple WaterdogPE proxies and displays the total in MOTD/Query responses
- Player Transfer on Shutdown - Automatically transfers connected players to other online proxies when the current proxy shuts down, using round-robin distribution
- Remote Proxy Monitoring - Periodically queries remote proxies via the Minecraft Bedrock UDP MOTD protocol to track their status and player counts
- Public Address Translation - Supports replacing localhost addresses with a public IP for player transfer packets in NAT environments
- Java 17+
- WaterdogPE 2.0.4-SNAPSHOT or compatible
mvn clean package
The compiled JAR will be at target/ProxySync-1.0.0-SNAPSHOT.jar.
- Build the plugin or download the JAR
- Place the JAR in the
plugins/directory of your WaterdogPE proxy - Start the proxy to generate the default configuration
- Edit
plugins/ProxySync/config.ymlto configure remote proxy addresses - Restart the proxy
plugins/ProxySync/config.yml:
# Remote WDPE proxy addresses (IP:port) remote-proxies: - "192.168.1.10:19132" - "192.168.1.11:19132" # Query interval (seconds) query-interval: 30 # Aggregate online player count (true=sum of all proxies, false=local only) aggregate-player-count: false # Aggregate max player count (true=sum of all proxies, false=local config only) aggregate-max-players: false # Transfer players to other online proxies on shutdown transfer-on-shutdown: true # Public IP for client transfer (replaces 127.0.0.1 in transfer packets) # Leave empty to use the address as-is public-address: ""
| Option | Type | Default | Description |
|---|---|---|---|
remote-proxies |
List | - | List of remote WaterdogPE proxy addresses in IP:port format |
query-interval |
Integer | 30 | Interval in seconds between remote proxy queries |
aggregate-player-count |
Boolean | false | Add remote player counts to MOTD/Query responses |
aggregate-max-players |
Boolean | false | Add remote max player slots to MOTD/Query responses |
transfer-on-shutdown |
Boolean | true | Transfer players to online remote proxies on shutdown |
public-address |
String | "" | Public IP to replace localhost in transfer packets |
- On startup, the plugin parses configured remote proxy addresses (automatically skipping the local proxy's own address)
- A scheduled task periodically sends UDP MOTD query packets to each remote proxy and caches the results (online count + max count)
- When
aggregate-player-countoraggregate-max-playersis enabled, the plugin interceptsProxyPingEventandProxyQueryEventto add remote counts to the response - On proxy shutdown (if
transfer-on-shutdownis enabled), connected players are distributed to online remote proxies viaTransferPacketusing round-robin