Maintenance - Enable maintenance mode with a custom maintenance motd and icon

This is a discussion topic for the Ore project, Maintenance. View the full project on Ore for downloads and more information.



Maintenance is the most wonderful maintenance plugin for your Minecraft server you can find.

Its features include:

  • A custom motd as well as server icon, that will be shown during maintenance
  • Start- and endtimers, which will enable/disable maintenance mode after the time is up
  • A ‘%TIMER%’ variable usable in the pingmessage, to show the time until a running endtimer finishes (other variables and tricks are explained in the configuration file’s comments)
  • A maintenance whitelist, to grant specific players the ability to join while you’re working on your server
  • Notifications when players try to join your server during maintenance
  • Nearly all messages are customizable via the language file, given in a multitude of different languages
  • Using ServerListPlus? Maintenance will toggle its status when enabling maintenance and reenable the SLP motd when disabling maintenance

An example of how a pingmessage during maintenance might look:

The configuration file is shown at the bottom of this post.
Learn more about the plugin (commands, permissions, configuration, and API usage) in the wiki listed below.


Found a bug? Report it on the issue tracker
Other problems or questions? Click the wonderful image below!



If the wiki is one click too far away for you, you can get a sense of some features by looking into the config.
Whitelisted players for maintenance and messages are in two other files, but here’s the config file:

# Enables maintenance mode.
maintenance-enabled: false

# The message shown in the multiplayer server list motd when maintenance is enabled.
# If you put in multiple entries, one of them will be chosen randomly on every ping.
# If running an endtimer, the time left can be displayed by including '%TIMER%' in a pingmessage (also works in playercount(-hover) message).
  - "&cMaintenance mode!%NEWLINE%&6We will be back soon!"
# - "Other entry"

# If set to true and an endtimer is currently running, a pingmessage from this pool will be chosen
# instead of the ones above, so you can have different messages for when an endtimer is running/not running.
enable-timerspecific-messages: false
  - "&cMaintenance mode!%NEWLINE%&6We will be back in %TIMER%!"
# - "Other entry"

# Is shown when you move your mouse above the text at the top right corner of the server in the serverlist,
# where the playercount would normally be displayed.
playercounthovermessage: "&cCurrently under%NEWLINE%&cmaintenance"

# If set to true, the server icon will be changed to the 'maintenance-icon.png' file in the plugin's folder during maintenance.
custom-maintenance-icon: false

# If set to true, players with the 'maintenance.joinnotification' permission will receive a message,
# that a player tried to join the server while maintenance is enabled.
send-join-notification: false

# Set this to false if you do not want players to be kicked when you enable maintenance (new connections will still be blocked).
# ... I don't know why you would want that, but you can disable it. :p
kick-online-players: true

# Changes the language of command feedback/messages.
# Currently available are: en (English), de (German), fr (French), pt (Portuguese), es (Spanish)
language: en

# If enabled and the server is restarted while running an endtimer, the timer will be continued after the restart.
# If the timer ends while the server is offline, maintenance will be disabled as soon as the server starts again.
  enabled: false
  # This value is set everytime an endtimer is started, cancelled or ended.
  # Do not manually change this value.
  end: 0

# If using the timer command: In what intervalls before enabling/disabling maintenance there will be a broadcast.
timer-broadcast-for-seconds: [1200, 900, 600, 300, 120, 60, 30, 20, 10, 5, 4, 3, 2, 1]

# If disabled, you will no longer receive any messages if there is an update.
# Not recommended to disable, as new versions generally tend to run better and with less bugs.
# However, you can always check for updates manually using the '/maintenance update' command.
update-checks: true

# Used for autoupdating the config, do not change this value.
config-version: 4

By default, the plugin checks for updates on startup as well as on the first join per startup of a player with the maintenance.admin permission. To disable these, set the update-checks value in the config to false.


FYI plugins with ‘Sponge’ in the name aren’t allowed on Ore unless this is a port of something or it deals with sponge blocks.

Yeah I am aware, tho it techinically it a port, as the plugin originally started as a Bungee plugin.
But eitherway, if that still is a problem, I’ll just rename it ^^

A new version has been released for Maintenance, it is available for download here.

Maintenance 3.0.1 has been released, featuring an addon for PlaceholderAPI placeholders, continuation of endtimers after restarts, massive file size reduction and some bugfixes.
A full changelog can be read HERE.

Nvm the placeholders, that’s not part of the Sponge module :eyes:

A new version has been released for Maintenance, it is available for download here.

  • Added config option timerspecific-pingmessages to have specific pingmessages shown when endtimers are run
    • You can also set them ingame by using /maintenance setmotd timer <index> ... instead of /maintenance setmotd <index> ..., along with /maintenance removemotd timer <index> and /maintenance motd timer
  • Made dumps a little prettier
  • Support Sponge 8.0.0-SNAPSHOT

Hello, is there any way to whitelist some people from the maintenance kickstart compared? For example: If I put an admin grade to a person, it will not kick as soon as maintenance is enabled. If that’s not possible, it would be nice, instead of switching and whitelist each player in the config file! Thank !

Interesting idea but definitely very needed for a lot of servers. Would be interesting to have a feature for scheduling maintenance in the future

Either you whitelist them before enabling (/maintenance add <player>) or you can use a dev build and set kick-online-players to false to not kick online players but only prevent new ones from joining

You can use /maintenance starttimer <minutes> and /maintenance endtimer <minutes> to schedule its start/end :wink:

Hmm will keep this plugin bookmarked then

A new version has been released for Maintenance, it is available for download here.

  • Added the messages of the help command into the language files
  • Added config option kick-online-players to disable the kicks when maintenance is enabled (new connections will still be blocked)… not sure why you’d want that, but you can :stuck_out_tongue:
  • The language file will now be automatically updated as well, so no need to delete and recreate it anymore, yay!
  • Updated missing and new translations in French language file (thanks to Spigot user Zendrique)
  • Updated missing and new translations in Spanish language file (thanks to Spigot user Vixo_Ulises)
  • Fixed the config autoupdater when the config contained strings broken over multiple line

A new version has been released for Maintenance, it is available for download here.

  • Added Russian language file (thanks to Spigot user En_0t_S)
  • Updated missing translations in Portuguese language file (thanks to Spigot user JoaoPinto)
  • Updated bStats metrics
  • Fixed singleserver timers using input as seconds instead of minutes (by mxs42)
  • Fixed language updating with an unknown/self-translated language file