CosmicMaintenance - Cross-Server v1.0.0

Manage your server maintenance more easily.
27a73190-bb43-4bea-942f-62ff9b94d975.png
SUPPORTED VERSIONS
1.8 - 26.1

2026-06-29_20-43.png

1782784896848.png
1782784907597.png
1782784921680.png


2026-06-29_21-12.png

FEATURES
▸ 100% editable
▸ Supports 1.8 - 26.1

▸ Editable commands and permissions
▸ Supports hex colors and legacy
▸ Custom Maintenance MOTD
▸ Mojang UUID function
▸ Supports Redis
▸ Works with Proxy and Standalone
▸ Bypass Permission

▸ Discord Webhook
▸ Kick online players when maintenance is active

▸ LuckPerms support (optional)
▸ API for Developers

COMMANDS
▸ /maintenance help
▸ /maintenance status
▸ /maintenance reload
▸ /maintenance <on/off> [server/all]
▸ /maintenance <add/remove> <player> <server/all>

PERMISSIONS
▸ maintenance.admin
▸ maintenance.bypass

REQUIREMENTS
Proxy Servers (Bungee and Velocity)
▸ Java 17+
Backend Servers (Spigot, Paper, Folia, etc.)
▸ Java 8+
[required] MySQL
[optional] Redis
COMPATIBILITY
[optional] LuckPerms {lp_prefix} and {lp_suffix}

YAML:
# How this server participates in maintenance:
#   AUTO       - detect it: proxy forwarding on -> BACKEND, otherwise STANDALONE
#   STANDALONE - a single server with no proxy; commands take no <server> argument
#   BACKEND    - a server behind a Bungee/Velocity proxy; commands target a <server|all>
network-mode: AUTO

# This server's name (its maintenance scope). REQUIRED in BACKEND mode and must match the name
# the proxy registers for it. Optional in STANDALONE.
server-name: ""

# Durable storage - REQUIRED in every mode (the single source of truth shared by every node).
# Backed by HikariCP. The bundled driver speaks the MySQL wire protocol, so it works with both
# MySQL and MariaDB servers.
mysql:
  host: "127.0.0.1"                        # database hostname or IP
  port: 3306                               # database port (MySQL/MariaDB default: 3306)
  database: "minecraft"                    # schema/database name (must already exist)
  username: "root"                         # login user (needs CREATE TABLE + read/write here)
  password: ""                             # login password (leave blank if none)
  use-ssl: false                           # set true to connect over TLS/SSL
  driver-class: "org.mariadb.jdbc.Driver"  # JDBC driver; the URL scheme (mysql/mariadb) is derived from it
  # HikariCP connection pool. Times are in milliseconds; the defaults suit a small admin workload.
  pool:
    maximum-pool-size: 6                   # max open connections
    minimum-idle: 1                        # idle connections kept ready
    connection-timeout: 8000               # max wait to borrow a connection before failing (min 250)
    idle-timeout: 600000                   # close a connection after it sits idle this long (0 = never)
    max-lifetime: 1800000                  # retire a connection at this age (keep below the DB wait_timeout)
    keepalive-time: 0                      # ping idle connections this often to keep them alive (0 = off)

# Optional Redis pub/sub accelerator - propagates every change instantly to the other nodes.
# When disabled (or briefly unreachable) nodes still converge via the MySQL poll below.
redis:
  enabled: false                           # set true to turn on instant Redis propagation
  host: "127.0.0.1"                        # Redis hostname or IP
  port: 6379                               # Redis port (default: 6379)
  username: "default"                      # Redis user; "default" = the built-in user (works on every Redis); set a custom ACL user only on Redis 6+
  password: ""                             # Redis AUTH password (leave blank if none)
  timeout-millis: 8000                     # connect/socket timeout in milliseconds

sync-poll-interval-seconds: 5  # how often each node reconciles from MySQL (the Redis-off fallback)

# Command identity. First label of each list is the suggested one.
command:
  name: "maintenance"
  aliases: ["manu", "manutencao", "maint"]
  permission: "maintenance.admin"
  bypass-permission: "maintenance.bypass"
  labels:
    enable: ["on", "true", "enable"]
    disable: ["off", "false", "disable"]
    add: ["add", "adicionar"]
    remove: ["rem", "remove", "remover"]
    status: ["status", "list"]
    help: ["help"]
    reload: ["reload"]

enforcement:
  deny-login: true          # block non-whitelisted logins under maintenance
  kick-on-change: true      # kick non-whitelisted players when maintenance turns on

# Track whitelisted players by their Mojang UUID so a name change never drops them. Names are kept
# for display and still match, so this is safe to toggle anytime. false = name-only (legacy).
track-by-uuid: true

# Console commands run when this server enters/leaves maintenance. Write them without a leading "/".
commands:
  on-enable: []
  on-disable: []

# Force a maintenance MOTD onto the server list, overriding other MOTD plugins, while this server
# is in maintenance. Supports & and hex colors.
motd:
  enabled: true
  line-1: "&c&lMAINTENANCE"
  line-2: "&7We will be right back!"

# Optional Discord webhook: announce when a server (or the whole network) enters/leaves maintenance.
# Sent exactly once, by the node where the command was run. {scope} = the affected server name, or
# 'network-label' below for global (all) maintenance.
discord:
  enabled: false
  webhook-url: ""

  # Which transitions to announce (enable one, both, or neither).
  notify:
    on-enable: true               # send when maintenance is turned ON
    on-disable: true              # send when maintenance is turned OFF

  # Webhook identity (blank = keep the webhook's own defaults).
  webhook:
    username: ""                  # name shown as the message author
    avatar-url: ""                # avatar shown next to the message

  network-label: "the network"    # {scope} value for network-wide (all) maintenance

  # A full, configurable embed per direction. Leave any field blank/empty to omit it.
  # {scope} works in every text field (content, title, description, author, footer, fields).
  embeds:
    enable:                       # ===== maintenance STARTED =====
      content: ""                 # plain text above the embed (e.g. a role ping like <@&ID>)
      color: "#E74C3C"            # left-bar color, #RRGGBB (red)
      title: "Maintenance started"
      title-url: ""               # makes the title a clickable link
      description: "**{scope}** is now under maintenance."
      timestamp: true             # show the current time at the bottom
      author:
        name: ""
        url: ""
        icon-url: ""              # small icon left of the author name
      thumbnail-url: ""           # small image in the top-right corner
      image-url: ""               # large image at the bottom
      footer:
        text: "CosmicMaintenance"
        icon-url: ""
      fields:                     # add named entries; 'name' and 'value' are required, 'inline' optional
        status:
          name: "Status"
          value: "We'll be back soon"
          inline: false
    disable:                      # ===== maintenance ENDED =====
      content: ""
      color: "#2ECC71"            # green
      title: "Maintenance ended"
      title-url: ""
      description: "**{scope}** is back online."
      timestamp: true
      author:
        name: ""
        url: ""
        icon-url: ""
      thumbnail-url: ""
      image-url: ""
      footer:
        text: "CosmicMaintenance"
        icon-url: ""
      fields: {}
YAML:
# CosmicMaintenance messages. A missing/blank key (for your mode) stops startup.
# Colors: legacy '&' and hex (&#RRGGBB or <#RRGGBB>).
# Placeholders: {prefix} {cmd} {server} {player} {lp_prefix} {lp_suffix}
# Injected wherever you write {prefix} in a message below.
prefix: "&8[&bMaintenance&8]&r "
usage-proxy: "{prefix}&cUsage: &f/{cmd} <on|off|add|rem|status|help|reload> <server|all> [player]"
usage-standalone: "{prefix}&cUsage: &f/{cmd} <on|off|add|rem|status|help|reload> [player]"
no-permission: "{prefix}&cYou don't have permission to use this command."
server-not-found: "{prefix}&cThat server does not exist."
error-storage: "{prefix}&cA database error occurred — the change was not applied."
reloaded: "{prefix}&aCosmicMaintenance configuration reloaded."
already-enabled: "{prefix}&cMaintenance is already enabled for that server."
already-disabled: "{prefix}&cMaintenance is already disabled for that server."
# Help screen (/{cmd} help)
help:
  - "&b&lMAINTENANCE &8» &7Commands"
  - "&f/{cmd} on|off <server|all> &8- &7Toggle maintenance"
  - "&f/{cmd} add|rem <player> <server|all> &8- &7Manage the whitelist"
  - "&f/{cmd} status &8- &7Show the current state"
  - "&f/{cmd} help &8- &7Show this help"
  - "&f/{cmd} reload &8- &7Reload the configuration"
# Proxy/backend (with {server})
enabled-server: "{prefix}&eMaintenance for &f{server}&e has been &aenabled&e."
disabled-server: "{prefix}&eMaintenance for &f{server}&e has been &cdisabled&e."
enabled-all: "{prefix}&eMaintenance for &fthe whole network&e has been &aenabled&e."
disabled-all: "{prefix}&eMaintenance for &fthe whole network&e has been &cdisabled&e."
player-added: "{prefix}&aPlayer &f{player}&a added to the maintenance whitelist of &f{server}&a."
player-added-all: "{prefix}&aPlayer &f{player}&a added to the global maintenance whitelist."
player-removed: "{prefix}&ePlayer &f{player}&e removed from the maintenance whitelist of &f{server}&e."
player-removed-all: "{prefix}&ePlayer &f{player}&e removed from the global maintenance whitelist."
# Standalone (no {server})
enabled: "{prefix}&eMaintenance has been &aenabled&e."
disabled: "{prefix}&eMaintenance has been &cdisabled&e."
player-added-standalone: "{prefix}&aPlayer &f{player}&a added to the maintenance whitelist."
player-removed-standalone: "{prefix}&ePlayer &f{player}&e removed from the maintenance whitelist."
# Whitelist no-op feedback (optional — built-in English defaults apply if removed)
already-whitelisted: "{prefix}&ePlayer &f{player}&e is already whitelisted."
not-whitelisted: "{prefix}&ePlayer &f{player}&e is not whitelisted."
# Status (/{cmd} status)
status-header: "&b&lMAINTENANCE &8» &7Status"
status-server-active: "&f{server} &c● Under maintenance"
status-server-inactive: "&f{server} &a● Online"
status-standalone-active: "&c● The server is under maintenance"
status-standalone-inactive: "&a● The server is online"
status-player: "&8 ▪ {lp_prefix}&f{player}{lp_suffix}"
status-no-players: "&8 ▪ &7No players whitelisted"
# Kick screen (global maintenance or initial connection)
kick:
  - "&c&lMAINTENANCE"
  - ""
  - "&7The server is currently under maintenance."
  - "&7Please try again later."
  - ""
  - "&bdiscord.gg/yourserver"
# Denied switch (proxy)
switch-denied:
  - "&cThat server is currently under maintenance."
Buy a license now
$9.99
EULA
Standard EULA
Use on any projects you own with attribution
Support
Standard
Includes:
Download the resource
Access new updates
Support from the creator
Support duration
Lifetime
Share and earn
Refer this resource and earn a 10% commission.
81 Views
0 Purchases
1 Downloads
Jul 11, 2026 Published
N/A Updated
Not yet rated
5.5 MB File size
Open source
  1. No
DRM-free
  1. Yes
Unobfuscated
  1. Yes
AI Content Disclosure
Cover image generated with ChatGPT.
AI Content Disclosure
I used Claude to help improve the project's performance and to draft messages, comments, and creative content for the project. I also used GitHub Copilot to autocomplete code more quickly.
Type
  1. Protection
  1. Staff
Supported software
  1. Spigot
  1. Paper
  1. Bungee
  1. Folia
  1. Velocity
Supported versions
  1. 26.1
  1. 1.21.11
  1. 1.21.8
  1. 1.21.5
  1. 1.21.4
  1. 1.21.2
  1. 1.21
  1. 1.20
  1. 1.19
  1. 1.18
  1. 1.17
  1. 1.16
  1. 1.15
  1. 1.14
  1. 1.13
  1. 1.12
  1. 1.11
  1. 1.10
  1. 1.9
  1. 1.8
Supported languages
  1. English
Creator
Owner
Struggling to cover the costs of your server? Set up your own webstore with Tebex in under 30 seconds.
Host a lag-free Minecraft or Hytale server in minutes.
Get 25% off your first order with our link.
Recommended for you
Stylish tab & scoreboard with premium look
Not yet rated
5 purchases
#1 BuiltByBit Plugin ~ Protects your server from crash packet exploits ~ Folia Support
5.00 star(s) 140 ratings
4,233 purchases
Create items, blocks, mobs, emojis, and more with automatic resourcepack generation!
5.00 star(s) 54 ratings
3,233 purchases
Protect your server from crash/dupe/packet exploits with the ultimate security fix plugin.
5.00 star(s) 45 ratings
3,135 purchases
High Performance | Customizable | Cross-Version | GeyserMC | Folia Support
4.50 star(s) 72 ratings
2,823 purchases
Share and earn
Refer this resource and earn a 10% commission.
81 Views
0 Purchases
1 Downloads
Jul 11, 2026 Published
N/A Updated
Not yet rated
5.5 MB File size
Open source
  1. No
DRM-free
  1. Yes
Unobfuscated
  1. Yes
AI Content Disclosure
Cover image generated with ChatGPT.
AI Content Disclosure
I used Claude to help improve the project's performance and to draft messages, comments, and creative content for the project. I also used GitHub Copilot to autocomplete code more quickly.
Type
  1. Protection
  1. Staff
Supported software
  1. Spigot
  1. Paper
  1. Bungee
  1. Folia
  1. Velocity
Supported versions
  1. 26.1
  1. 1.21.11
  1. 1.21.8
  1. 1.21.5
  1. 1.21.4
  1. 1.21.2
  1. 1.21
  1. 1.20
  1. 1.19
  1. 1.18
  1. 1.17
  1. 1.16
  1. 1.15
  1. 1.14
  1. 1.13
  1. 1.12
  1. 1.11
  1. 1.10
  1. 1.9
  1. 1.8
Supported languages
  1. English
Creator
Owner
Struggling to cover the costs of your server? Set up your own webstore with Tebex in under 30 seconds.
Host a lag-free Minecraft or Hytale server in minutes.
Get 25% off your first order with our link.
Recommended for you
Stylish tab & scoreboard with premium look
Not yet rated
5 purchases
#1 BuiltByBit Plugin ~ Protects your server from crash packet exploits ~ Folia Support
5.00 star(s) 140 ratings
4,233 purchases
Create items, blocks, mobs, emojis, and more with automatic resourcepack generation!
5.00 star(s) 54 ratings
3,233 purchases
Protect your server from crash/dupe/packet exploits with the ultimate security fix plugin.
5.00 star(s) 45 ratings
3,135 purchases
High Performance | Customizable | Cross-Version | GeyserMC | Folia Support
4.50 star(s) 72 ratings
2,823 purchases
Top