Skip to main content
Proxy mode allows you to set specific backend servers under maintenance while keeping your proxy network online. This is perfect for updating individual servers without affecting the entire network.

Configuration

Proxied Maintenance Servers

Define which servers should be in maintenance mode in your config.yml:
# Enables maintenance on certain servers managed by your proxy instance(s).
proxied-maintenance-servers:
  - PaperServer1
# - AnotherServer
Servers listed here will have maintenance enabled when the plugin loads.

Fallback Server

When a server enters maintenance mode with players on it, they’ll be transferred to the fallback server instead of being kicked:
# If maintenance is enabled on a proxied server with players on it, they will be sent to the fallback server instead of being kicked off the network.
# If the fallback server is not reachable/not set, they will just be kicked off the network.
# This can also be set to an array to set multiple fallback servers, in case one server is not always reachable: 'fallback: [s1, s2, s3, ...]'
fallback: lobby
You can configure multiple fallback servers by using an array: fallback: [lobby1, lobby2, lobby3]. The plugin will connect players to the first available server that’s not under maintenance.

Waiting Server

When global maintenance is enabled, you can send players to a waiting server instead of kicking them:
# If maintenance is enabled globally, you can define a "waiting" lobby for players to be sent to instead of being kicked.
# Leave this empty to disable.
waiting-server: ""
The waiting server feature only works for global maintenance mode. For per-server maintenance, use the fallback server setting instead.

Commands

All single-server maintenance commands follow this pattern: /maintenance <command> <server>

Toggle Maintenance

# Enable maintenance on a specific server
/maintenance on <server>

# Disable maintenance on a specific server
/maintenance off <server>

Start Timer

Start a timer to enable maintenance on a specific server:
# Enable maintenance on a server after 30 minutes
/maintenance starttimer <server> 30m

# Enable maintenance on a server after 2 hours
/maintenance starttimer <server> 2h

End Timer

Start a timer to disable maintenance on a specific server:
# Disable maintenance on a server after 1 hour
/maintenance endtimer <server> 1h

# Disable maintenance on a server after 45 minutes
/maintenance endtimer <server> 45m

Check Status

View maintenance status across all servers:
/maintenance status

Server-Specific Commands

You can execute custom commands when maintenance is enabled or disabled on specific servers:
# Any extra commands inside the "all" array will be executed when maintenance is enabled/disabled on a proxied server.
# You can also add commands for specific servers by adding a new array with the server name as key.
# In the commands, you can use the %SERVER% placeholder to get the server name.
# Example: coolserver: ["say hello", "othercommand %SERVER%"]
commands-on-single-maintenance-enable:
  all: []
commands-on-single-maintenance-disable:
  all: []

Example Configuration

commands-on-single-maintenance-enable:
  all:
    - "alert %SERVER% is now under maintenance"
  lobby:
    - "say Lobby is being updated"
    - "broadcast Please use lobby2 temporarily"

Permissions

PermissionDescription
maintenance.singleserver.toggleToggle maintenance on individual servers
maintenance.singleserver.timerStart timers for individual servers
maintenance.singleserverAccess all single-server maintenance features

How It Works

When a player tries to connect to a server under maintenance:
1

Connection Check

The proxy intercepts the connection attempt and checks if the target server is under maintenance.
2

Permission Verification

If the player has the maintenance.bypass permission, they’re allowed to connect.
3

Fallback Redirect

If the player is already on the network, they’re redirected to the fallback server.
4

Kick or Deny

If no fallback is available or the player isn’t on the network yet, the connection is denied with a kick message.

Build docs developers (and LLMs) love