-
-
Notifications
You must be signed in to change notification settings - Fork 82
Proxy Setups
βοΈ Running on Velocity
Velocity requires the JDBC driver selected by
DbType. Install the MySQLDriver build when the platform does not already provide the required driver.
πΎ Database Requirement
All VotingPlugin proxy methods require a shared SQL database, with the proxy and every participating backend using compatible connection and table settings.
With the released default
BungeeManageTotals: true, the proxy manages user vote totals and points. If it is false, each backend adds its own totals; the 7.1.1 default configuration describes that layout as unsupported.Backend servers process rewards, milestones, streaks, and other gameplay behavior according to their own settings.
π¨ Votifier Configuration
In the standard layout, VotifierPlus/NuVotifier runs on the proxy and VotingPlugin handles forwarding to backends. Custom Votifier routing can differ, but each vote must enter VotingPlugin only once to avoid duplicate processing.
VotingPlugin supports multiple communication methods between your proxy (BungeeCord/Velocity) and backend servers. Select one BungeeMethod and configure it consistently on the proxy and participating backends.
| Method | Description |
|---|---|
| PLUGINMESSAGING | Uses the proxy plugin-message channel; this is the 7.1.1 release default. |
| REDIS | Uses a private Redis service for cross-server messages. |
| MQTT | Uses an MQTT broker for cross-server messages. |
| SOCKETS | Uses direct TCP socket connections and requires explicit peer addresses, secrets, and firewall rules. |
| MYSQL | Uses the shared database as the communication path; the 7.1.1 defaults do not recommend this method. |
This diagram shows the typical single-proxy network layout. Multi-proxy setups and custom Votifier routing may use a different topology. The supported communication methods converge through one selected/configured path to the backend servers.
When a player votes:
- The proxy receives the vote from VotifierPlus/NuVotifier.
- VotingPlugin validates and records the vote; it updates totals when
BungeeManageTotals: true. - The proxy forwards or caches the vote using the configured
BungeeMethod. - The selected backend server or servers process rewards and gameplay behavior according to
SendVotesToAllServers,ProcessRewards, server restrictions, and reward settings.
With
BungeeManageTotals: true, the proxy is the central controller for vote tracking and forwarding. Backend servers focus on reward delivery and gameplay logic.
VotingPluginβs proxy integration provides network-wide support for:
- π Global or per-server rewards
- π Proxy-wide or individual server vote parties
- β° Global time synchronization (via the experimental
GlobalDatasetting) - π§± Server blocklist/allowlist controls
- π Multi-proxy synchronization
- π Centralized vote totals and logging when
BungeeManageTotals: true - βοΈ Local reward and streak logic on backend servers
Development builds only: A dedicated voting proxy is not available in VotingPlugin 7.1.1. Development builds containing merged PRs #1550 and #1551 can run VotingPlugin on one central proxy while separate regional proxies carry players.
See Dedicated Voting Proxy for the architecture, prerequisites, routing behavior, configuration, security model, migration, and validation steps.
For networks with multiple proxies, MultiProxyMethod supports SOCKETS or REDIS synchronization between proxies. This is separate from the backend BungeeMethod selected for communication between a proxy and its backend servers.
β οΈ Note: The 7.1.1 bundled configuration labels multi-proxy support as work in progress. Test vote delivery and duplicate prevention before using it in production.See Multi-Proxy Setup.
The proxy receives and manages votes from Votifier before forwarding them to backend servers.
- π¨ Receives votes from VotifierPlus/NuVotifier in the standard layout.
- π Handles time-change conditions when
GlobalDatais enabled. - π§© Resolves UUIDs and supports configured Bedrock prefixes.
- πΎ Manages totals when
BungeeManageTotals: true. - π Updates vote-party progress and routes configured vote broadcasts.
- π Forwards or caches votes depending on player presence and configuration.
- π Supports multi-proxy synchronization when explicitly enabled and configured.
- Executes rewards, milestones, and streak processing when enabled.
- Handles in-game logic and GUI-related features.
- Adds its own totals only when
BungeeManageTotals: false.
| Key | File/location | Description |
|---|---|---|
BungeeManageTotals |
Proxy bungeeconfig.yml
|
Enables proxy-managed totals; true is the supported 7.1.1 default. |
SendVotesToAllServers |
Proxy bungeeconfig.yml
|
Sends votes to all eligible backends or only the playerβs selected/current server. |
AllowUnJoined |
Proxy bungeeconfig.yml
|
When false, the proxy validates that the player has joined before accepting the vote. Capitalization is significant. |
AllowUnjoined |
Backend Config.yml
|
When true, a backend accepts forwarded votes without repeating the proxyβs joined-player check. |
WaitForUserOnline |
Proxy bungeeconfig.yml
|
Queues votes until the player logs in. |
ProcessRewards |
Backend Config.yml
|
Controls whether that backend processes rewards for forwarded votes. |
GlobalData |
Proxy bungeeconfig.yml and backend BungeeSettings.yml
|
Enables experimental global time/reset coordination; align it on all participating instances. |
MultiProxySupport |
Proxy bungeeconfig.yml
|
Enables synchronization between multiple proxies. |
PrimaryServer |
Proxy bungeeconfig.yml
|
Marks the primary proxy for supported multi-proxy responsibilities. |
This compact version preserves the older proxy-flow overview. The detailed architecture near the top of this page is the authoritative reference for communication methods and shared storage.
For the release implementation, see VotingPluginProxy.java at tag 7.1.1.
- Vote Milestones
- Vote Streak System
- Vote Reminders β Current System
- Legacy Vote Reminding
- Vote Broadcast System
- Vote Logging
- Webhooks
- Time Changes
- Month Date Totals
- VoteShop
- Rewards Overview β Start Here
- Special Rewards
- Reward System Concepts
- Reward File Format
- Where to Set Rewards
- All Reward Possibilities
- AdvancedPriority Rewards
- Reward Examples
- Delayed Reward Command
- World Example
- VotingPlugin-Specific Rewards
- Commands & Permissions
- Signs
- API
- PlaceholderAPI Placeholders
- Minecraft Server Lists
- Bedrock Player Support
- Transferring Data Storage