Maintenance

Maintenance

Voxy supports maintenance mode at three scopes: the entire proxy, a server group, or an individual server. Players without the bypass permission are blocked from connecting to anything in maintenance.

Scopes

Scope What it affects
PROXY The entire network — players are disconnected on login
GROUP A server group — players can't switch into that group
SERVER A single server — players can't switch to that server

Checks are hierarchical: proxy maintenance is evaluated first, then group, then server. If a player is already connected and tries to switch to a server in maintenance, they receive a chat message and the connection is cancelled. If they have no current server (e.g., just joining), they are disconnected entirely.

Bypass Permission

Players with voxy.maintenance.bypass skip all maintenance checks at every scope.

Command

Command Permission Description
/maintenance <SERVER|GROUP|PROXY> <true|false> voxy.admin.maintenance (alias: maint) Toggle maintenance for the given scope

The state argument is a boolean parsed as true or false (not on/off).

The SERVER and GROUP scopes take no name argument - they act on the server or group the player issuing the command is currently connected to. The player must be connected to a server (for SERVER) or to a server that belongs to a group (for GROUP); otherwise the command reports that they are not connected and does nothing. Only PROXY is network-wide.

State Persistence

Scope Where stored
PROXY servers.ymlsettings.maintenance
GROUP servers.ymlgroups.<name>.maintenance
SERVER server.yml on the server + Redis (60-second TTL)

Proxy and group maintenance survives restarts. Server maintenance state is also persisted to the server's own server.yml and replicated via Redis so the proxy always has the current state.

Messages

Maintenance messages are configured in messages.yml:

maintenance:
  proxy:
    screen: "<red>Proxy is under maintenance</red>"
  group:
    chat: "<red>Group is under maintenance</red>"
    screen: "<red>Group is under maintenance</red>"
  server:
    chat: "<red>Server is under maintenance</red>"
    screen: "<red>Server is under maintenance</red>"

screen is the disconnect screen message. chat is the in-game chat message shown to players who are already connected somewhere else.