Service – The Server Manager icon

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:
 
  1. Downloads the selected Purpur version.

  2. Generates configs (server.properties, spigot.yml, eula.txt).

  3. Starts the instance in the background.

  4. 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
  1. Place the plugin jar into your BungeeCord plugins folder.

  2. Start the proxy once to generate configuration files.

  3. Use /service create <name> --version <1.21.5> to create your first server.

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

service

system

plugin

bungeecord

minecraft