βοΈ VotingPlugin Performance & Optimization Guide
This page provides a brief overview of configuration options in VotingPlugin that can help improve performance, reduce background processing, and fine-tune MySQL load handling.
(This page is still a work in progress β more sections will be added soon.)
ποΈ MySQL Settings
These settings control how VotingPlugin interacts with your MySQL database.
Increasing connections can improve responsiveness slightly, but using more than 2 connections rarely provides any benefit.
MaxConnections: 1
β
Recommended: 1 or 2
β οΈ Avoid setting this too high β it only increases resource usage.
π TopVoter Settings
The TopVoter system tracks player totals across daily, weekly, monthly, and all-time categories.
Disabling categories you donβt use reduces memory and SQL usage β especially helpful on large networks.
# Enable only what you need
LoadTopVoter:
AllTime: true
Monthly: true
Weekly: false
Daily: false
To further reduce background load, lower the number of players processed:
# Maximum number of players to show on top voter
# Set to -1 for no limit
MaxiumNumberOfTopVotersToLoad: 1000
β Recommendation: Limit to a few hundred for large player bases.
π Background Task Settings
VotingPlugin performs various background updates (for cooldowns, reminders, placeholders, signs, etc.).
The options below let you balance performance vs. feature richness.
Per-Site Cooldowns
PerSiteCoolDownEvents: false
When enabled, allows per-site cooldown rewards and reminders β but increases CPU usage.
Disable if not needed.
Global Cooldown Checks
DisableCoolDownCheck: false
When
true, disables all cooldown checking.
Has no effect on reminders, but removes cooldown logic completely.
Interact Events
DisableInteractEvent: false
When
true, disables processing of PlayerInteractEvent (used for signs/skulls).
Slightly improves performance if you donβt use vote signs or heads.
Vote Streaks & Totals
UseVoteStreaks: true
UseHighestTotals: true
Disable these if you donβt use vote streaks or best totals.
This lowers SQL queries and speeds up player data saving.
JavaScript Placeholders
UseJavascriptPlaceholders: false
β οΈ Has significant performance impact, even if no JavaScript is actively used.
Only enable for advanced math or logic placeholders.
AlwaysUpdate
AlwaysUpdate: false
Forces background updates to run on every interval, even if no changes occurred.
π§ Not recommended β increases unnecessary database activity.
Update With Players Online Only
UpdateWithPlayersOnlineOnly: false
When enabled, only runs background updates if at least one player is online.
Recommended for smaller servers to reduce idle activity.
Delay Between Background Updates
DelayBetweenUpdates: 3
Interval (in minutes) between background checks like sign updates or top voter sync.
3β10 minutes is ideal for most setups.
Longer = lower background activity, slower updates after votes.
Extra Background Update
ExtraBackgroundUpdate: false
Performs additional player data checks across servers.
Only needed in multi-server setups where updates donβt trigger correctly.
Tab Completion Optimization
DisableAdvancedTab: false
Disables checking permissions for tab completion.
May improve command responsiveness slightly for large permission setups.
π§© Placeholder Settings
Default PlaceholderAPI options are already optimized.
You can learn more on the dedicated wiki page:
π PlaceholderAPI Expansion Documentation
π Skull Settings (GUI Optimization)
Skulls are used to display player heads in VoteTop GUIs.
They can be heavy on performance β especially on large servers.
Preload Skulls
PreloadSkulls: false
Preloads all skull textures on startup.
β οΈ Can cause significant memory usage and startup delay.
Load Skulls (Recommended)
LoadSkulls: true
Caches skulls as players appear in VoteTop GUIs.
Recommended over PreloadSkulls β faster in use, lighter on memory.
π§ General Tips
- Disable unused systems like streaks or daily top voters.
- Avoid preloading skulls unless absolutely necessary.
- Use fewer MySQL connections unless you experience database queueing.
- Keep DelayBetweenUpdates between 3β10 minutes.
- Run
/av statusto monitor background update intervals and timings.
β Summary of Recommended Performance Settings
| Option | Recommended | Reason |
|---|---|---|
MaxConnections |
1β2 | Efficient MySQL usage |
LoadTopVoter.Weekly/Daily |
false | Skip unused categories |
UseVoteStreaks |
false (if unused) | Reduces SQL load |
UseHighestTotals |
false (if unused) | Fewer queries |
UseJavascriptPlaceholders |
false | Avoids heavy parsing |
PreloadSkulls |
false | Reduces memory |
LoadSkulls |
true | Balanced performance |
AlwaysUpdate |
false | Only update when needed |
DelayBetweenUpdates |
3β10 | Best balance |
UpdateWithPlayersOnlineOnly |
true | Skip idle processing |
β‘ Tip: Test configuration changes gradually and monitor timings with
/av debugor/av status.
If your server uses multiple instances, make sure all share the same MySQL configuration for consistency. {.is-info}