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
 
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.