SnuggleSMPDocs
M

Network

SnuggleMaintenance

Maintenance mode for the whole network or for single servers, with a friendly message and ETA.

Whole network
Runs on
Velocity proxy (whole network)
Commands
16

When we need to update things, SnuggleMaintenance tucks the servers in for a nap and tells everyone why and for how long. It runs on the proxy, so it covers the whole network.

What players see

  • In the server list, the message of the day changes to a maintenance notice with the ETA and our Discord link.
  • When joining during maintenance, you're turned away with a message that shows the reason, the ETA and where to find updates on Discord.
  • If one server is down, you either get a note that it's "taking a cozy nap" and stay where you are, or you're sent to another server (usually the hub) with a note saying why.

People on the allowlist, and staff with the bypass permission, can still get in.

For staff

All commands are under /maint (or /maintenance) and need snuggle.maint.admin.

Network maintenance

/maint on <soft|hard> [reason] turns it on. By default, everyone online without bypass is disconnected with the maintenance message straight away.

Mode What it blocks
hard Nobody without bypass can log in to the proxy at all.
soft Players can reach the proxy, but can't connect to or switch to any server. They get the maintenance message in chat.

Set the message with /maint reason and /maint eta. /maint off opens everything up again.

Single servers

Use server rules to close one server while the rest stay open:

  • /maint server adventure redirect hub Restarting sends anyone heading to adventure to hub.
  • /maint server dev deny Testing just refuses the connection.
  • /maint server adventure clear (or allow) opens it again.

If a redirect target doesn't exist, the player is refused instead. Bypass and the allowlist work for server rules too.

Things to know

  • Changes made with /maint aren't written back to the config files. A proxy restart or /maint reload goes back to what's in config.yml and servers.yml.
  • A status file (snugglemaintenance_state.json) is updated after every change.
  • A Discord webhook can post when maintenance turns on or off and when people try to join. It's off in the default config.

Commands

Staff

CommandWhat it doesPermission
/maint statusShows global maintenance, mode, reason, ETA, allowlist and server rules.snuggle.maint.admin
/maint on <soft|hard> [reason]Turns on maintenance for the whole network.snuggle.maint.admin
/maint offTurns off network maintenance.snuggle.maint.admin
/maint mode <soft|hard>Changes the mode without turning maintenance on or off.snuggle.maint.admin
/maint reason <text>Sets the reason shown to players.snuggle.maint.admin
/maint eta <text|clear>Sets or clears the ETA shown to players, like /maint eta 30 minutes.snuggle.maint.admin
/maint allowlist add <player>Lets a player in during maintenance.snuggle.maint.admin
/maint allowlist remove <player>Takes a player off the allowlist.snuggle.maint.admin
/maint allowlist listLists the allowlist.snuggle.maint.admin
/maint server listLists the servers on the network.snuggle.maint.admin
/maint server <server> deny [reason]Blocks players from joining that server.snuggle.maint.admin
/maint server <server> redirect <target> [reason]Sends players who try to join that server to another server instead.snuggle.maint.admin
/maint server <server> allow [reason]Lets players join that server again.snuggle.maint.admin
/maint server <server> clearRemoves the rule for that server.snuggle.maint.admin
/maint reloadReloads config.yml and servers.yml.snuggle.maint.admin
/maint helpLists the subcommands.snuggle.maint.admin

Permissions

NodeGrantsDefault
snuggle.maint.adminUse every /maint command.Nobody
snuggle.maint.bypass.globalJoin and move between servers during any maintenance.Nobody