
MultiProxySync
Solve inconsistent player counts across multiple Velocity proxies.
!MultiProxySync banner
🚀 MultiProxySync
Synchronize player counts and player lists across multiple Velocity proxies.
📖 About
MultiProxySync is a plugin for distributed Velocity proxy networks.
It uses Redis to synchronize player counts and player lists across multiple Velocity proxies, allowing different proxy entry points to share a consistent global online count and player state.
MultiProxySync combines periodic synchronization, Redis Pub/Sub updates, and proxy health tracking to keep synchronized data accurate when proxies restart, disconnect, or crash unexpectedly.
If your network uses multiple Velocity proxies and players may connect through different entry points, MultiProxySync keeps their player data and displayed online count synchronized across the network.
📷 Preview
!Image displaying server MOTD information
✨ Features
-
Multi-Proxy Player Synchronization Synchronizes player counts and player lists across multiple Velocity proxies.
-
Consistent Global Player Count Handles
ProxyPingEventso different proxy entry points can display the same network-wide online count. -
Redis Pub/Sub Quickly propagates player count changes when players join, leave, or proxy state changes.
-
Proxy Health Tracking Uses Redis ZSET heartbeats to track active proxies and automatically remove stale nodes.
-
Automatic Recovery Proxies that stop updating for more than 30 seconds are treated as offline and removed from the active proxy list.
-
Redis Server Time Heartbeat timestamps use Redis server time to avoid inconsistencies caused by different proxy system clocks.
-
MiniPlaceholders Support Automatically registers a global player count placeholder when MiniPlaceholders is installed.
-
Public API Provides read-only access to synchronized proxy and player data for other plugins.
-
Update Checker Checks for newer MultiProxySync versions and notifies administrators when updates are available.
-
bStats Includes anonymous usage metrics and proxy network size statistics.
📦 Requirements
- Velocity 3.x+
- Redis
Optional
- MiniPlaceholders
🛠️ Installation
- Set up a Redis server.
- Download the latest
multiproxysync-plugin. - Place it in the
pluginsdirectory of every Velocity proxy. - Start the proxies and edit the generated
config.yml. - Make sure all MultiProxySync instances connect to the same Redis server.
📄 Configuration
plugin:
serverName: Proxy-01
enabled: true
redis:
host: 127.0.0.1
port: 6379
password: YourPassword
Notes
serverNamemust be unique for every proxy.- All proxies must connect to the same Redis instance.
enabledcontrols whether MultiProxySync is initialized.
🔤 MiniPlaceholders
When MiniPlaceholders is installed, MultiProxySync automatically registers:
<multiproxysync_global_player_count>
Example:
Global online: <multiproxysync_global_player_count>
The placeholder returns the synchronized global online player count.
🗺️ Version Roadmap
2.3.x
The 2.3.x release line focuses on player count and player list synchronization.
Future 2.3.x releases will mainly provide maintenance, bug fixes, stability improvements, and changes directly related to the existing synchronization functionality.
3.0.0+
Starting with 3.0.0, MultiProxySync will expand beyond player synchronization and introduce additional features.
If you only need player count and player list synchronization, you can continue using the 2.3.x release line.
🔧 For Developers
MultiProxySync provides a public read-only API for accessing synchronized proxy and player data.
Starting with 2.3.0, the API uses:
Maven Group ID: net.time-cloud
Java Package: net.timecloud
API method signatures remain unchanged from previous versions.
For dependency examples and usage documentation, see the GitHub repository:
https://github.com/User-Time/MultiProxySync
💬 Feedback
If you encounter any issues or have suggestions, feedback is always welcome:
https://github.com/User-Time/MultiProxySync/issues
