Skip to main content
The Maintenance plugin provides advanced proxy-level maintenance features for BungeeCord networks.

Requirements

  • BungeeCord (latest version recommended)
  • Java 17 or higher

Installation

  1. Download the latest version from Hangar
  2. Place the JAR file in your BungeeCord plugins/ directory
  3. Restart your proxy
  4. Configure the plugin in plugins/Maintenance/config.yml

Proxy-Specific Features

BungeeCord installation unlocks advanced network-wide maintenance capabilities.

Global Maintenance

Enable maintenance for the entire proxy network:
This prevents all players (without bypass permission) from connecting to any server in your network.

Per-Server Maintenance

Enable maintenance for individual backend servers:
Players can still connect to other servers in your network. When trying to connect to a maintenance server:
  • Players with bypass permission receive a notification
  • Other players are redirected to a fallback server (if configured)
  • If no fallback is available, they’re disconnected with a message

Fallback Server Configuration

Configure fallback servers for when a specific server is under maintenance:
Players connecting to a maintenance server will be automatically redirected to the configured fallback.

Waiting Server

Send all players to a specific waiting server during global maintenance:
Use this to create a waiting lobby where players can stay while you perform maintenance.
Players will be redirected to the waiting server instead of being kicked.

Redis Integration

Sync maintenance status across multiple BungeeCord proxies:
With Redis enabled:
  • Maintenance status is synced across all connected proxies
  • Whitelist changes are propagated instantly
  • No need to run commands on each proxy individually
This is essential for large networks with multiple proxy instances.

Plugin Integrations

ServerListPlus

Soft dependency - Automatically detected. Integrates with ServerListPlus to provide enhanced server list customization during maintenance.

LuckPerms

Soft dependency - Context support. Maintenance registers contexts for:
  • Global maintenance status
  • Per-server maintenance status
Allows you to create conditional permissions based on maintenance state.

Configuration

BungeeCord configuration includes proxy-specific options:

Permissions

Commands

BungeeCord includes additional commands for proxy management:

Server List Customization

Custom MOTD

Display different MOTDs for global vs per-server maintenance in your configuration.

Player Count Message

Customize what appears in the player count slot:
With timers enabled:

Use Cases

Network-Wide Restart

  1. Enable global maintenance: /maintenance on
  2. Players are kicked (or sent to waiting server)
  3. Perform updates on backend servers
  4. Disable maintenance: /maintenance off

Individual Server Update

  1. Enable per-server maintenance: /maintenance on survival
  2. Players on survival are sent to fallback (e.g., lobby)
  3. Update the survival server
  4. Disable maintenance: /maintenance off survival

Scheduled Maintenance Window

Players see countdown in MOTD using %TIMER% placeholder.

Multi-Proxy Setup

For networks with multiple BungeeCord proxies:
  1. Install Maintenance on all proxies
  2. Set up Redis server (e.g., using Docker)
  3. Configure Redis in each proxy’s config:
  1. Reload all proxies: /maintenance reload
Now all commands executed on one proxy will sync to all others.

API Usage

For BungeeCord plugin developers:
See the API documentation for complete details.

Troubleshooting

Players bypass maintenance without permission

Check:
  1. Player isn’t on whitelist: /maintenance remove <player>
  2. Player doesn’t have maintenance.bypass from LuckPerms or another permission plugin
  3. Redis sync is working (if using multi-proxy)

Fallback server not working

Ensure:
  1. Fallback server exists in BungeeCord’s config.yml
  2. Fallback server is not also in maintenance
  3. Fallback is properly configured in fallback-list

Redis sync not working

Verify:
  1. Redis server is running and accessible
  2. Credentials are correct in config
  3. All proxies use the same Redis channel name
  4. Check proxy logs for Redis connection errors