⚙️ Running on Velocity
Velocity requires a MySQL driver to be installed.
You can download a prebuilt plugin here if needed:
🔗 MySQLDriver (Jenkins)
💾 Database Requirement
All proxy methods require MySQL, with every server — including the proxy — pointing to the same database.
The proxy manages vote forwarding, user vote totals, and synchronization between servers.
Backend servers handle all rewards, milestones, and streaks locally.
📨 Votifier Configuration
Votifier (or VotifierPlus/NuVotifier) only needs to run on the proxy.
VotingPlugin automatically handles forwarding votes to backend servers.
VotingPlugin supports multiple communication methods between your proxy (BungeeCord/Velocity) and backend servers.
Each method provides the same core functionality — sending votes from the proxy to backend servers — but differs in setup and infrastructure requirements.
| Method | Description |
|---|---|
| PLUGINMESSAGING | Easiest option — drop and play. No extra setup needed beyond placing the plugin on all servers. |
| REDIS | Uses a Redis server for fast, reliable network-wide message passing. |
| MQTT | Relies on an MQTT broker for cross-server vote forwarding (ideal for distributed environments). |
| SOCKETS | Uses direct TCP socket connections (requires open ports between servers). |
| MYSQL | Shares vote data directly through the common MySQL database. |

When a player votes:
The proxy acts as the central controller for vote tracking and forwarding.
Backend servers focus on reward delivery and gameplay logic.
VotingPlugin’s proxy integration provides full network-wide support for:
GlobalData setting)For networks with multiple proxies, VotingPlugin supports PLUGINMESSAGING or REDIS synchronization across proxies.
⚠️ Note: Multi-proxy setups are experimental but functional in current releases.
See the full guide here:
🔗 Multi-Proxy Setup
The proxy receives and manages votes from Votifier before forwarding them to backend servers.
GlobalData is enabled (queues votes safely).BungeeManageTotals: true — updates MySQL totals (daily, weekly, monthly, all-time, and points).VoteUpdate / VoteBroadcast.| Key | Description |
|---|---|
BungeeManageTotals |
Enables proxy-managed totals. |
SendVotesToAllServers |
Sends votes to all servers or only player’s current server. |
AllowUnJoined |
Ignores votes from players who never joined if false. |
WaitForUserOnline |
Queues votes until player logs in. |
GlobalData |
Enables global data/time sync and vote queueing. |
MultiProxySupport |
Allows votes to sync between multiple proxies. |
PrimaryServer |
Marks the main proxy handling totals. |
For a deeper technical breakdown, see the implementation in
VotingPluginProxy.java.