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:
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
| Permission | Description |
|---|
maintenance.singleserver.toggle | Toggle maintenance on individual servers |
maintenance.singleserver.timer | Start timers for individual servers |
maintenance.singleserver | Access all single-server maintenance features |
How It Works
When a player tries to connect to a server under maintenance:
Connection Check
The proxy intercepts the connection attempt and checks if the target server is under maintenance.
Permission Verification
If the player has the maintenance.bypass permission, they’re allowed to connect.
Fallback Redirect
If the player is already on the network, they’re redirected to the fallback server.
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.