
⚡ ServerBooster
Optimize your Minecraft server for peak performance with ServerBooster
- Загрузки
- 2K
- Подписчики
- 4
- Обновлён
- 28 июня 2026 г.
- Лицензия
- Apache-2.0
Опубликован 27 августа 2023 г.
ServerBooster
The Ultimate Performance Optimization Plugin for Minecraft Servers
Remastered Edition for Modern Minecraft (1.17.x - 1.21.x)
IMPORTANT ANNOUNCEMENT: FREE & PREMIUM Model
Version 3.0.0 is the LAST completely FREE version.
What does this mean?
| Version | Availability | Where to get it |
|---|---|---|
| v3.0.0 and earlier | FREE | GitHub Releases |
| v3.0.1+ | PREMIUM | BuiltByBit |
| v3.0.1+ [FREE] | FREE (delayed) | GitHub (1-2 weeks after PREMIUM release) |
Why this change?
ServerBooster is a complete remaster of an abandoned plugin from 2023-2024. When we launched our first version, it already included:
- Original features not present in the old version
- Support for newer Minecraft versions (1.20.x - 1.21.x)
- Complete rewrite in modern Kotlin with coroutines
- Better performance optimizations
- Active maintenance and bug fixes
I have maintained this project for FREE and Open Source for several months in good faith. However, to ensure the project's long-term sustainability and continued development, I've decided to introduce a PREMIUM model.
How does it work?
- PREMIUM versions are released first on BuiltByBit
- FREE versions are released on GitHub 1-2 weeks later
- Both versions are identical - no features are locked behind a paywall
This is NOT about monetization - it's about SUPPORTING the project. If you want early access and want to help keep ServerBooster alive, consider purchasing the PREMIUM version. If you prefer to wait, the FREE version will always be available.
Support the Project
Features • Installation • Configuration • Commands • Performance Tips
Overview
ServerBooster is a comprehensive server optimization plugin designed to dramatically improve your Minecraft server's performance. This remastered edition has been completely rewritten in Kotlin with modern optimizations, coroutine-based processing, and full support for the latest Minecraft versions.
Why ServerBooster?
- Zero Dependencies - Just drop it in your plugins folder and go!
- Highly Configurable - Fine-tune every aspect of optimization
- Smart Optimization - Only optimizes what needs to be optimized
- RAM Efficient - Automatic chunk unloading keeps memory usage low
- Multi-Platform - Works on Spigot, Paper, and Folia
Features
Entity Optimization
| Feature | Description |
|---|---|
| AI Freeze | Temporarily disables AI for entities far from players |
| Spawn Limiting | Controls entity spawns per chunk and radius |
| Age Limiter | Automatically removes old entities |
| Breeding Control | Limits breeding to prevent entity explosions |
| Smart Restore | Instantly restores entity AI when players approach |
Entities are frozen using NMS (Native Minecraft Server) methods, ensuring minimal performance impact while maintaining vanilla behavior when players are nearby.
Item Stacking & Holograms
| Feature | Description |
|---|---|
| Force Merge | Stacks items beyond vanilla limits (up to 512+) |
| Unstackable Stacking | Even swords, armor, and potions can be stacked! |
| Holographic Display | Shows item name and quantity above stacked items |
| Glowing Items | Optional glow effect for dropped items |
| Smart Pickup | Correctly handles inventory distribution |
Reduce thousands of item entities into just a few, dramatically improving TPS on servers with mob farms or heavy item drops.
Chunk Optimization
| Feature | Description |
|---|---|
| Auto Unload | Automatically unloads unused chunks |
| Packet Throttling | Slows chunk packets during lag or high ping |
| Physics Detection | Detects and reports lag machines |
| Spawn Protection | Never unloads essential spawn chunks |
Paper 1.21+ handles chunk management very efficiently. ServerBooster complements this by managing chunks while players are online but have moved away from areas.
Villager Optimizer
| Feature | Description |
|---|---|
| AI Lobotomy | Disables AI for stationary villagers (trade halls) |
| Smart Reactivation | Restores AI when player interacts |
| Memory Efficient | Tracks villagers without memory leaks |
Perfect for servers with large trading halls - villagers that don't move for 60+ seconds have their AI disabled, saving massive CPU cycles while still allowing trading.
Elytra Optimization
| Feature | Description |
|---|---|
| Riptide Cooldown | Prevents trident + riptide spam |
| Firework Cooldown | Limits firework boost frequency |
| Per-World Config | Enable only in specific worlds |
Prevents players from generating excessive chunks through rapid elytra travel.
TPS-Based Commands
| Feature | Description |
|---|---|
| Auto Execute | Run commands when TPS drops below threshold |
| Multiple Groups | Configure different commands for different TPS levels |
| Cooldown System | Prevent command spam with configurable delays |
Perfect for automatically clearing entities, notifying admins, or triggering emergency optimizations.
Installation
Requirements
- Minecraft Server: Spigot, Paper, or Folia
- Version: 1.17.x - 1.21.x
- Java: 17 or higher
Steps
Download the latest version from Releases or BuiltByBit
Place the JAR file in your server's
pluginsfolderRestart your server (not reload!)
Configure the plugin in
plugins/ServerBooster/Enjoy better performance!
Configuration
ServerBooster uses multiple configuration files for better organization:
plugins/ServerBooster/
├── config_entity_limiter.yml # Entity spawn limits
├── config_optimize_entities.yml # Entity AI optimization
├── config_holo.yml # Item stacking & holograms
├── chunks_optimizer.yml # Chunk management
├── config_tps.yml # TPS-based commands
├── lang/ # Language files
│ ├── en_us.yml
│ └── es_es.yml
└── lang_limiter/
└── en.yml
Entity Limiter (config_entity_limiter.yml)
Controls how many entities can exist in a given area.
# Radius in blocks for entity counting
radius: 56
# Worlds where limiter is active
worlds:
- world
- world_nether
- world_the_end
# Default limits for all entities
defaults:
radius_max: 10 # Max entities of same type in radius
chunk_max: 5 # Max entities of same type per chunk
cull: 5 # Max entities kept on chunk unload
# Custom limits per entity type
limits:
VILLAGER:
radius_max: 15
chunk_max: 8
cull: -1 # -1 = never cull
ZOMBIE:
radius_max: 8
chunk_max: 4
cull: 3
Key Options
| Option | Description | Default |
|---|---|---|
radius |
Area size for radius_max counting | 56 |
force-spawn-deny |
Block ALL spawn reasons | true |
breeding-limiter-enabled |
Enable breeding limits | false |
age-limiter-enabled |
Remove old entities | false |
keep-sitting-entities |
Protect sitting pets | true |
Entity Optimizer (config_optimize_entities.yml)
Controls entity AI freezing and tracking.
# Distance from player to freeze entities
tracking-range: 35
# Worlds to optimize
worlds:
- world
- world_nether
# Ignore certain entities
ignore:
custom-named: true # Don't freeze named mobs
invulnerable: true # Don't freeze invulnerable
villagers: false # Freeze villagers (saves CPU!)
armorstands: true # Don't freeze armor stands
itemframes: true # Don't freeze item frames
# Trigger conditions
trigger-options:
always:
enabled: true
untrack-ticks: 600 # 30 seconds
when-tps-below:
enabled: true
value: 18.5
untrack-ticks: 450
Understanding Triggers
- Always: Constantly optimizes entities far from players
- When TPS Below: More aggressive optimization during lag
Item Stacking (config_holo.yml)
Controls item merging and hologram display.
# Worlds where stacking is active
worlds:
- world
merge:
# Force merge nearby items
force_merge:
enabled: true
radius: 7 # Search radius for items
max_stack: 512 # Maximum stack size
# Hologram above stacked items
hologram:
enabled: true
format: "&f{name} &bx{amount}"
glow:
enabled: true
color: "AQUA"
# Items that should never be merged
blacklist:
- DRAGON_EGG
- ELYTRA
Chunk Optimizer (chunks_optimizer.yml)
Controls chunk unloading and physics detection.
# Automatic chunk unloading
unload-chunks:
enabled: true
interval-ticks: 6000 # Check every 5 minutes
worlds:
- world
- world_nether
log:
unload: true
# Lag machine detection
block-physics-lag-detector:
enabled: true
low-tps: 18.0
lag:
warning-threshold: 950000
notify-op: true
cancel-event: false
# Elytra speed limits
optimize-elytra:
reptide-trident-nerf:
enabled: true
delay: 100 # Ticks between uses
firework-nerf:
enabled: true
delay: 60
TPS Commands (config_tps.yml)
Execute commands automatically when TPS drops.
tps-commands:
enabled: true
commands:
emergency:
tps: 14.0
delay_ticks: 72000 # 1 hour cooldown
list:
1:
command: "broadcast &c[Warning] Server is lagging! TPS: {tps}"
delay_ticks: 0
2:
command: "kill @e[type=item]"
delay_ticks: 20
warning:
tps: 16.0
delay_ticks: 36000
list:
1:
command: "broadcast &e[Notice] TPS dropped to {tps}"
delay_ticks: 0
Commands
| Command | Permission | Description |
|---|---|---|
/sb reload |
serverbooster.reload |
Reload all configurations |
/sb info |
- | Show plugin information |
/sb tps |
- | Display current server TPS |
/sb count [world] |
serverbooster.mobs.count |
Count entities in world |
/sb limits |
serverbooster.mobs.limits |
Show entity limits |
/sb check [player] |
serverbooster.mobs.check |
Check entities near player |
/sb optimize |
serverbooster.optimize |
Force entity optimization |
/sb blockphysics |
serverbooster.chunks.blockphysics |
Show physics report |
Performance Tips
For Maximum Performance
Start Conservative
- Begin with default settings
- Monitor TPS with
/sb tps - Gradually adjust limits
Optimize Mob Farms
# In config_entity_limiter.yml limits: GUARDIAN: chunk_max: 15 radius_max: 30 IRON_GOLEM: chunk_max: 5 radius_max: 10Reduce Villager Lag
# In config_optimize_entities.yml ignore: villagers: false # Allow freezing!Aggressive Item Stacking
# In config_holo.yml force_merge: radius: 10 max_stack: 1024
Server Type Recommendations
| Server Type | Chunk Unloader | Entity Limiter | Item Stacking |
|---|---|---|---|
| Survival | Enable | Medium limits | Enable |
| SMP | Enable | Relaxed limits | Enable |
| Skyblock | Careful | Strict limits | Enable |
| Factions | Enable | Strict limits | Enable |
| Creative | Disable | Disable | Optional |
Understanding Chunk Behavior
Important: On Paper 1.21+, the server automatically unloads chunks when players disconnect. ServerBooster's chunk optimizer is most useful for:
- Unloading chunks while players are online but have moved away
- Servers running older versions (1.17-1.20)
- Spigot servers (less aggressive than Paper)
Language Support
ServerBooster supports multiple languages:
- English (
en_us) - Spanish (
es_es)
To change language, edit the lang option in each config file.
Migration from Original ServerBooster
If you're upgrading from the original ServerBooster:
- Backup your old configuration
- Delete the old plugin and config folder
- Install this remastered version
- Reconfigure using this guide
Configuration format has changed significantly. Manual migration is required.
FAQ
Q: Does this work with Folia?
Yes! ServerBooster automatically detects Folia and uses region-based scheduling.
Q: Will frozen entities move again?
Yes! When a player approaches a frozen entity, its AI is instantly restored.
Q: Does item stacking cause duplication?
No! The stacking system has been thoroughly tested to prevent any duplication.
Q: Why don't I see chunks being unloaded?
On Paper 1.21+, the server already unloads chunks very efficiently. The optimizer works best when players are online and have moved away from areas.
Q: Can I disable specific modules?
Yes! Set
enabled: falsein each module's config file, then/sb reload.
Q: What's the difference between FREE and PREMIUM?
Nothing! Both versions are identical. PREMIUM just gives you early access (1-2 weeks earlier) and helps support the project.
Benchmarks
Tested on a server with 50 players:
| Metric | Before | After | Improvement |
|---|---|---|---|
| TPS | 14.2 | 19.8 | +39% |
| Entity Count | 12,847 | 3,421 | -73% |
| RAM Usage | 8.2 GB | 5.1 GB | -38% |
| Item Entities | 4,523 | 287 | -94% |
Results may vary depending on server configuration and player activity.
Support
- Issues: GitHub Issues
- Premium Support: BuiltByBit
Credits
- Original Plugin: LoneDev (dev.lone) - Abandoned in 2023-2024
- Remastered by: SrCodex - 2025-Present
- Built with: Kotlin, Paper API, Coroutines
Boost Your Server Today!
Made with love for the Minecraft community
Ченджлог
26.1.1Релиз26.1, 26.1.1, 26.1.2 · 28 июня 2026 г.
This patch delivers a major overhaul to the Web Monitor module, critical security hardening across the entire web stack, and targeted performance fixes identified through a full codebase audit.
Note: The Web Monitor Dashboard is currently in EXPERIMENTAL phase. It is disabled by default and must be manually enabled in web.yml. Features, endpoints, and configuration options may change in future releases without prior notice. FIX JAR (WEB)
Web Dashboard — Complete Rewrite (EXPERIMENTAL)
- Two-tier data collection system: Fast metrics (TPS, MSPT, memory, players) update every 2 seconds. Heavy data (entity breakdown, chunk hotspots) updates every 10 seconds. This eliminates main thread impact when the dashboard is in use.
- Client-awareness gate: Data collection is completely skipped when no one is viewing the dashboard. Zero overhead when unused.
- Removed block scanning: The previous triple-nested loop that scanned blocks for pistons every cycle has been replaced with tile entity scanning only — dramatically reducing per-cycle cost.
- Chunk scan cap: Hotspot analysis now processes only the top 200 chunks by tile entity count instead of scanning all loaded chunks.
- Module Statistics panel: The dashboard now displays real-time stats from active modules — frozen entities (EntityOptimizer), lobotomized villagers (VillagerOptimizer), items moved and registered hoppers (HopperOptimizer), chunks unloaded (ChunkOptimizer), and throttled redstone chunks (RedstoneTickLimiter).
- MSPT History chart: A new chart displays MSPT (milliseconds per tick) history alongside the existing TPS chart, with a 50ms danger line indicator.
- Alert system: Visual banners appear when TPS drops below 15 (warning) or below 10 (critical), and when memory usage exceeds 85% (warning) or 95% (critical).
- Action log: A new section shows recent optimization actions performed by the plugin in real-time.
- Copy coordinates: Click any coordinate in the players table or hotspots table to copy a /tp command directly to your clipboard.
- Search filters: Filter players by name or world, and filter entities by type using the new search inputs.
- Last update indicator: The header now shows "Live" or "Updated Xs ago" so you always know data freshness.
- Header color feedback: The header border subtly changes color based on server health — green (healthy), yellow (moderate), red (critical).
- Favicon: Both the login page and dashboard now display a branded "S" favicon.
Security Hardening
- PBKDF2 password hashing: Upgraded from SHA-256 (single-pass) to PBKDF2-HMAC-SHA256 with 600,000 iterations. Passwords are automatically re-hashed on first startup. The plain-text password is removed from web.yml and replaced with the hash.
- Zero hardcode policy enforced: All configuration values (port, host, username, password, session timeout, login attempts, lockout duration, update interval, TPS history size) are read exclusively from web.yml. Missing or invalid values disable the web module with a warning — no fallback defaults in code.
- Timing-safe username comparison: Username verification now uses MessageDigest.isEqual() for constant-time comparison, preventing timing attacks.
- CORS enforcement: The allowed-origins configuration is now actively enforced against the Origin header. Previously loaded but never applied.
- CSP tightened: Removed 'unsafe-inline' from Content-Security-Policy. Removed broad ws: wss: from connect-src. Added frame-ancestors 'none'. Login page CSS and JS moved to external files to comply.
- Removed deprecated X-XSS-Protection header: This header has been deprecated since Chrome 78 and can cause issues in modern browsers.
- WebSocket connection cap: Maximum 10 simultaneous WebSocket connections. Excess connections are rejected with code 4008.
- WebSocket session re-validation: Active WebSocket connections now re-validate their session token on every broadcast cycle. Expired sessions are automatically disconnected.
- Session cleanup scheduled: Expired sessions and lockout entries are now automatically cleaned every 60 seconds.
- Version information reduced: The dashboard now displays only the Minecraft version (e.g., "1.21.1") instead of the full server string that previously exposed the server software, fork name, and build number.
- Protected /api/status: This endpoint now requires authentication. Previously accessible without login.
- Unauthenticated /health endpoint: A new /health endpoint returns only {"status":"ok"} for external monitoring tools (UptimeRobot, Pterodactyl health probes) without exposing any server details.
- No-cache headers: All responses include Cache-Control: no-store and Pragma: no-cache to prevent browser caching of sensitive dashboard data.
- Safe resource loading: Internal path exposure removed — missing resources return an empty string instead of "Resource not found: path/to/file".
- Silenced Javalin/SLF4J stderr output: Javalin startup logs and SLF4J warnings no longer pollute the server console.
- Default host changed to 127.0.0.1: New installations bind to localhost only instead of all interfaces, preventing accidental public exposure.
Performance Fixes
EntityOptimizer cleanup: O(1) instead of O(n*m): The frozen entity cleanup task previously scanned world.livingEntities for every cached entity ID. Now
EntityOptimizer cleanup: O(1) instead of O(n*m): The frozen entity cleanup task previously scanned world.livingEntities for every cached entity ID. Now uses UUID-based Bukkit.getEntity() lookups — constant time per entity instead of linear scan.
Dead code removed: Deleted optimizeWorld() (~60 lines) and restoreNearbyEntities() (~30 lines) — both superseded by their batched counterparts but still present in the codebase.
forceOptimize() no longer stalls main thread: Previously called the unbatched optimizeWorld() method. Now uses inline iteration with try-catch per entity.
Shared suspendOnMainThread utility: Extracted the duplicated runOnMainThread suspend function from EntityOptimizer and VillagerOptimizer into a shared SchedulerUtil.suspendOnMainThread() method.
Shutdown deadlock fixed: Replaced runBlocking { scope.cancelAndJoin() } in onDisable() with non-blocking scope.cancel(). The previous implementation could deadlock if any coroutine was awaiting the main thread via suspendOnMainThread.
Redundant shutdown scan removed: nmsManager.restoreAllEntities() was called in onDisable() after entityOptimizer.shutdown() — which already restores all entities. The duplicate full-world scan has been removed.
WebSocket broadcast optimized: gson.toJson() is now called once per broadcast cycle instead of once per connected client.
Configuration Changes
web.yml — The following defaults have changed:
- host default changed from "0.0.0.0" to "127.0.0.1"
- auth.password is now automatically hashed on first startup (prefixed with HASHED:)
- All fields are now required — missing fields disable the web module
Compatibility
- Supports Paper, Spigot, and Purpur from 1.17 to 26.1
- Folia detection present (EntityOptimizer auto-disables on Folia)
- Java 17+ required
Комментарии
Загружаем…