
Service – The Server Manager 2.0
Create, start, stop, and manage Minecraft servers — all in real-time, without restarts.
Overview
Service is a lightweight yet powerful server management system for BungeeCord / Waterfall that lets you create and control sub-servers dynamically — directly from your network.
No more manual setup, no restarts, no configuration headaches.
Create a new lobby or test server on the fly, manage your network seamlessly, and enjoy a CloudNet-like experience — all in one plugin.
Key Features
✔ Dynamic Service Management
Create, start, stop, restart, and delete servers on the fly with simple commands.
✔ Automatic Integration with BungeeCord
Every new service is instantly registered in /server and /send without restarting your proxy.
✔ Full Autostart System
When BungeeCord starts, all your previous services automatically boot up — clean and ready.
✔ Crash & Cleanup System
If Bungee is stopped or crashes, all services are safely stopped and cleaned up (no port binding issues).
✔ Fallback System
Automatic fallback handling to your defined lobby, hub, or fallback server — prevents "kicked to null" issues.
✔ Progress Feedback
When you start a service, you'll see a live percentage indicator:
"Server is starting | 10% … 50% … 100%"
✔ Permission System
Granular command control:
- service.command.create
- service.command.start
- service.command.stop
- service.command.restart
- service.command.delete
- service.command.status
- service.command.list
- service.command.all (master permission)
✔ Version Control
Supports Minecraft 1.21.4 and 1.21.5 (Purpur automatically downloaded).
✔ Clean JSON Data System
All services are stored in services.json – no databases or YAML complexity.
Commands
Command Description Permission
/service create <name> Create a new service service.command.create
/service start <name> Start a service service.command.start
/service stop <name> Stop a service service.command.stop
/service restart <name> Restart a service service.command.restart
/service delete <name> Delete a service service.command.delete
/service status [name] Show service status service.command.status
/service list List all services service.command.list
How It Works
Each service runs in its own folder inside /services/.
When you create one, Service automatically:
- Downloads the selected Purpur version.
- Generates configs (server.properties, spigot.yml, eula.txt).
- Starts the instance in the background.
- Registers it instantly in your BungeeCord server list.
No restart required. No config reload. It just works.
Requirements
- Java 17+
- BungeeCord or Waterfall (latest)
- Enough disk space for additional server jars
Installation
- Place the plugin jar into your BungeeCord plugins folder.
- Start the proxy once to generate configuration files.
- Use /service create <name> --version <1.21.5> to create your first server.
- Done. The server appears instantly in /server.
Example Usage
/service create lobby --version 1.21.5 --port 25566 --ram 2G --motd Lobby
/service create test --version 1.21.5
/service start test
/service stop test
/service delete test
Future Features Maybe
- Custom fallback priorities
- More Minecraft version support
- Multi-machine network expansion
- GUI / Web Dashboard
- Automatic player count scaling
Tags
#cloud, #service, #dynamic, #bungeecord, #network, #manager, #auto, #minecraft, #server, #purpur, #1.21.5, #1.21.4, #system
What’s New
Command: /service command <service> <raw...>
- Execute any console command inside a running service process, as if you typed it in that server’s console.
- Example: /service command Lobby op Notch
- Permission: service.command.command
Command: /service see <service>
- Toggle live viewing of a service’s console output directly in Bungee chat.
- Sends recent backlog (up to 500 lines) and then streams new lines in real time.
- Multiple viewers are supported; run the command again to stop viewing.
- Permission: service.command.see
Live Console Stream (Implementation)
- Output is no longer only redirected to file; it is “teed”:
- Written to services/<name>/console.log
- Buffered in-memory (rolling 500 lines)
- Broadcast to all active watchers of that service
- Written to services/<name>/console.log
Restart Experience Fix
- During /service restart <name>, players are not told the lobby is “disabled” while it is actually starting.
- If a whitelisted fallback (lobby, lobby-1, lobby1, hub, fallback) is already starting (process alive) but not yet registered, joining users see:
- “The lobby is starting up. Please try again in a few seconds.”
- Once the service is registered, normal routing applies.
Join Reason Check
- First-join detection fixed to handle both JOIN and JOIN_PROXY correctly.
Updated Permissions
permissions:
service.command.command:
description: Execute raw console commands inside a service process
default: false
service.command.see:
description: View live console output of a service
default: false
(Master permission service.command.all still grants everything.)
Updated Help Entries
/service command <service> <raw...> (perm: service.command.command)
/service see <service> (perm: service.command.see)
Usage Examples
/service command Lobby op Notch
/service command Lobby say Maintenance in 5 minutes.
/service see Lobby
/service see Lobby # run again to stop viewing
Notes and Limitations
- /service command requires the target service to be RUNNING; otherwise you’ll get “Service is not running.”
- /service see starts streaming only after the process is running. Existing backlog (up to 500 lines) is sent immediately.
- On stop or crash, all watchers are notified and detached.
- Streaming is per service and uses a dedicated non-blocking reader thread. Output is flushed to file and watchers line-by-line.
Author
Julian | ErdberkuchenTV – Developer & YouTuber
Focused on stable, minimalistic, and performant Minecraft infrastructure.