MaintenanceMode - Bungee AND Spigot support! [1.8-1.14] 3.0.2

Lets you activate a maintenance mode on your BungeeCord as well as Spigot server!

  1. KennyTV
    Tested Minecraft Versions:
    • 1.8
    • 1.9
    • 1.10
    • 1.11
    • 1.12
    • 1.13
    • 1.14
    Source Code:
    Languages Supported:
    English, German, French, Portuguese, Spanish
    This plugin lets you activate a maintenance mode on your
    BungeeCord as well as Spigot server, which will prevent players without a permission to join the server.

    Whatever version you want to use, just place the plugin inside your plugin folder of your server running Spigot or BungeeCord!

    Development builds:
    + Their changelogs:


    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 editable via the language file, given in a multitude of different languages

      Additional features on Bungee:
    • Only want to enable maintenance on a single server? You can also do so by using the `/maintenance <on/off> <servername>` command
    • Link multiple proxy instances with a MySQL database connection, so you don't have to enable/disable maintenance on each proxy by hand
    • Using ServerListPlus? Maintenance will toggle its status when enabling maintenance and reenable the SLP motd when disabling maintenance
    • Want to have PlaceholderAPI placeholders on Spigot? See here for more information on the MaintenanceAddon.

    IMPORTANT: If using the plugin on a Spigot server, the plugin ProtocolLib is required to use MaintenanceMode to its full extend.

    generatedtext (1).png

    Did you find a bug? Use the issue tracker
    Other questions or problems? Click the wonderful icon below ✨


    generatedtext (1).png

    Arguments in < > are necessary, those in [ ] aren't (can be ommited).
    • /maintenance <on/off> [server] will set the status of the maintenance mode
    • /maintenance reload reloads the config and maintenance-icon file
    • /maintenace <add/remove> <player/uuid> allows specific players to join on the server when maintenance is enabled
    • /maintenance whitelist returns a list of all players on the
    • maintenance whitelist
    • /maintenance starttimer [server] <minutes> will enable maintenance mode after the time is up
    • /maintenance endtimer [server] <minutes> will enable maintenance mode for the given time in minutes. After the time is up, it'll be disabled again
    • /maintenance aborttimer cancels a running start-/endtimer
    • /maintenance setmotd <index> <1/2> <message> sets a motd for maintenance mode
    • /maintenance motd lists the currently set maintenance motds
    • /maintenance update remotely downloads the newest version of the plugin onto your server
    • /maintenance dump dumps some server information, used for bug reports

    generatedtext (2).png

    • maintenance.admin - super permission, that grants access to all perms below
    • maintenance.bypass - join the server during maintenance
    • maintenance.command - use the "/maintenance" command (also required to use the subcommands)
    • maintenance.toggle - use the "/maintenance <on/off>" commands
    • maintenance.reload - use the "/maintenance reload" command
    • maintenance.update - use the "/maintenance <update/forceupdate>" commands
    • maintenance.timer - use the "/maintenance <starttimer/endtimer> <minutes>" and "/maintenance timer abort" commands
    • maintenance.whitelist.add - use the "/maintenance add <player>" command
    • maintenance.whitelist.remove - use the "/maintenance remove <player>" command
    • maintenance.whitelist.list - use the "/maintenance whitelist" command
    • maintenance.setmotd - use the "/maintenance setmotd <index> <1/2> <message>" command
    • maintenance.motd - use the "/maintenance motd" command
    • maintenance.dump - use the "/maintenance dump" command
    • maintenance.joinnotification - if enabled: sends a notification to you if a player tries to join the server while maintenance is enabled
    Extra permissions for the Bungee part:
    • maintenance.singleserver.toggle - use the "/maintenance <on/off> <server>" commands
    • maintenance.singleserver.timer - use the "/maintenance <starttimer/endtimer> <server> <minutes>" and "/maintenance timer abort <server>" commands
    • maintenance.singleserver.status - use the "/maintenance status" command

    IMPORTANT - If you are using the plugin on your proxyserver: You have to have these permissions on the proxy, not on the Spigot servers! This can be done by putting them into the Bungee config.yml as seen here:
    This or you have a permissions plugin, which also works across the Proxy/Bungee.
    If you use it on a Spigot server, normal permission plugins should work (as well as being an operator).

    generatedtext (4).png

    If you are using the Spigot version of the plugin, you have to have ProtocolLib installed to use the custom server-icon and the playercount-messages (that, or you have Paper running on 1.12.2 or higher)! The rest however is also without it accessable.
    For the Bungee version you don't need to have any other plugins installed.

    proxied-maintenance-servers, fallback and mysql section are only for the Bungee version.

    Code (Text):
    # Enables maintenance mode.
    maintenance-enabled: false

    # Enables maintenance on certain servers managed by your Bungee instance(s).
      - SpigotServer1
    # - AnotherServer

    # 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.
    fallback: lobby

    # 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"[/SIZE]

    # If set to true, the message below will be shown at the top right corner of the server in the serverlist, where the playercount would normally be displayed.
    # If set to false, the normal playercount will be shown.
    # Alternatively you can use '%ONLINE%' and '%MAX% if you want to include the playercount in a custom message (e.g. "&cMaintenance &7%ONLINE%&8/&7%MAX%").
    enable-playercountmessage: true
    playercountmessage: "&4Maintenance"

    # 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

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

    # If you have 2 or more proxy instances, the database connection will make sure all proxies
    # have the same maintenance status, so you won't have to enable/disable it on every proxy by hand.
      use-mysql: false
      host: host
      port: 3306
      database: database
      username: username
      password: password
      # Requests to the database will only be made at least x seconds after the last request,
      # so there won't be a request on every single ping on a server with many players.
      # Set this to 0 to make a database request on (almost) every single ping.
      # (0 is not recommended if having more than a hundred concurrent players, then I'd recommend keeping it from 10-60).
      update-interval: 15

    # 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 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 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: 2[/FONT]
    Code (Text):
    # Maintenance Plugin by KennyTV
    # Don't remove words inbetween the '%' if you don't exactly know why you're doing it
    noPermission: "&cYou do not have the permission to execute that command."
    kickmessage: "&cThe server is currently under maintenance!%NEWLINE%&cTry again later!"
    maintenanceActivated: "&8[&eMaintenance&8] &6Maintenance mode is now activated."
    maintenanceDeactivated: "&8[&eMaintenance&8] &6Maintenance mode is now deactivated."
    alreadyEnabled: "&8[&eMaintenance&8] &cMaintenance is already enabled!"
    alreadyDisabled: "&8[&eMaintenance&8] &cMaintenance is already disabled!"
    helpPageNotFound: "&8[&eMaintenance&8] &cThere is no page with that number!"
    endtimerBroadcast: "&8[&eMaintenance&8] &7Maintenance mode will be disabled in &6%TIME%&7."
    endtimerStarted: "&8[&eMaintenance&8] &aStarted timer: &7Maintenance mode will be deactivated in &6%TIME%&7."
    starttimerBroadcast: "&8[&eMaintenance&8] &7Maintenance mode will be enabled in &6%TIME%&7."
    starttimerStarted: "&8[&eMaintenance&8] &aStarted timer: &7Maintenance mode will be activated in &6%TIME%&7."
    timerAlreadyRunning: "&8[&eMaintenance&8] &cThere is already a timer scheduled!"
    timerNotRunning: "&8[&eMaintenance&8] &cThere is currently no running timer."
    timerCancelled: "&8[&eMaintenance&8] &cThe current timer has been disabled."
    timerTooLong: "&8[&eMaintenance&8] &cThe number has to be less than 40320 (28 days)!"
    timerMotdDisabled: "&8[&eMaintenance&8] &cYou have to set 'enable-timerspecific-messages' in the config to 'true', if you want to use/edit timerspecific motds."
    motdTimer: "%HOURS%:%MINUTES%:%SECONDS%"
    motdTimerNotRunning: "-"
    joinNotification: "&8[&eMaintenance&8] &e%PLAYER% &ctried to join the server."
    motdList: "&8[&eMaintenance&8] &7List of your maintenance motds:"
    motdListEmpty: "8[&eMaintenance&8] &cYou don't have any maintenance motds set!"
    reload: "&8[&eMaintenance&8] &aReloaded config, whitelistedplayers, language file and the maintenance icon."
    removedMotd: "&8[&eMaintenance&8] &aRemoved motd number %INDEX%."
    removeMotdError: "&8[&eMaintenance&8] &cYou only have one motd, so you cannot remove any!"
    setMotd: "&8[&eMaintenance&8] &aSet line %LINE% of the %INDEX%. maintenance motd to %MOTD%"
    setMotdIndexError: "&8[&eMaintenance&8] &cYou currently have %MOTDS% motds, so you have to pick a number between 1 and %NEWAMOUNT%."
    setMotdLineError: "&8[&eMaintenance&8] &cThe second argument has to be the line number (1 or 2)!"
    updateDownloading: "&8[&eMaintenance&8] &c&lDownloading update..."
    updateFailed: "&8[&eMaintenance&8] &4&lUpdate failed!"
    updateFinished: "&8[&eMaintenance&8] &a&lThe update was successful! To prevent issues with tasks and to complete the update, you have to restart the server!"
    whitelistedPlayers: "&8[&eMaintenance&8] &6Whitelisted players for maintenance:"
    whitelistedPlayersFormat: "&8- &e%NAME% &8(&7%UUID%&8)"
    whitelistAdded: "&8[&eMaintenance&8] &aAdded &b%PLAYER% &ato the maintenance whitelist!"
    whitelistAlreadyAdded: "&8[&eMaintenance&8] &b%PLAYER% &calready is in the maintenance whitelist!"
    whitelistRemoved: "&8[&eMaintenance&8] &aRemoved &b%PLAYER% &afrom the maintenance whitelist!"
    whitelistNotFound: "&8[&eMaintenance&8] &cThis player is not in the maintenance whitelist!"
    whitelistEmpty: "&8[&eMaintenance&8] &cThe maintenance whitelist is empty! Use &e/maintenance add <player/uuid> &cto add someone!"
    playerNotFound: "&8[&eMaintenance&8] &cNo player with this name has played on this server before."
    playerNotFoundUuid: "&8[&eMaintenance&8] &cNo player with that uuid could be found."
    playerNotOnline: "&8[&eMaintenance&8] &cThere is no player online with that name."
    invalidUuid: "&8[&eMaintenance&8] &cInvalid uuid format!"
    second: "second"
    seconds: "seconds"
    minute: "minute"
    minutes: "minutes"
    hour: "hour"
    hours: "hours"
    # Some messages for the Bungee part, just ignore them if you use the plugin on Spigot
    serverNotFound: "&8[&eMaintenance&8] &cNo server with this name is registered on the proxy!"
    singleTimerAlreadyRunning: "&8[&eMaintenance&8] &cThere is already a timer scheduled for that server!"
    singleTimerCancelled: "&8[&eMaintenance&8] &cThe current timer for server &e%SERVER% &chas been disabled."
    singleTimerNotRunning: "&8[&eMaintenance&8] &cThere is currently no running timer for that server."
    singleEndtimerBroadcast: "&8[&eMaintenance&8] &7Maintenance mode on server %SERVER% will be disabled in &6%TIME%&7."
    singleStarttimerBroadcast: "&8[&eMaintenance&8] &7Maintenance mode on server %SERVER% will be enabled in &6%TIME%&7."
    singleMaintenanceKick: "&8[&eMaintenance&8] &cThe server %SERVER% is currently under maintenance! Try again later!"
    singleMaintenanceKickComplete: "&cThe server %SERVER% is under maintenance!%NEWLINE%&cYou may try to rejoin to go onto another server!"
    singleMaintenanceActivated: "&8[&eMaintenance&8] &6Maintenance mode is now activated on server &e%SERVER%&6."
    singleMaintenanceDeactivated: "&8[&eMaintenance&8] &6Maintenance mode is now deactivated on server &e%SERVER%&6."
    singleServerAlreadyEnabled: "&8[&eMaintenance&8] &cMaintenance is already enabled on server &e%SERVER%&c!"
    singleServerAlreadyDisabled: "&8[&eMaintenance&8] &cMaintenance is already disabled on server &e%SERVER%&c!"
    singleServerMaintenanceList: "&8[&eMaintenance&8] &7Proxied servers, that have maintenance enabled:"
    singleServerMaintenanceListEmpty: "&8[&eMaintenance&8] &7There are no proxied servers that are under maintenance."

    If you have the ServerListPlus plugin on your BungeeCord/Spigot server, MaintenanceMode will toggle its status. If you enable maintenance, the ServerListPlus motd will be disabled and then reenabled, when you disable maintenance to prevent any issues with them overriding each other.

    generatedtext (6).png
    Only available for the BungeeCord version!
    By enabling MySQL in the config, you can even connect multiple proxy-servers to a set value in your database, so you won't have to enable/disable maintenance on each proxy by hand!

    A rating or a review would be highly appreciated and a creation of one (and also for a spigot account) is fairly easy! :)

Recent Updates

  1. Version 3.0.2 Changelog
  2. Version 3.0.1 Changelog
  3. Version 3.0 Changelog

Recent Reviews

  1. kr1sh
    Version: 3.0.2
    Very nice support and good plugin! :)
    I had a problem and went to the support-discord and the answer came in under 10 minutes! Very nice <3
    1. KennyTV
      Author's Response
      Thanks <3
  2. CruSh3R
    Version: 3.0.1
    Great Maintenance plugin, powerful and lightweight!
    Author is active and good developer!

    and the maintenance icon is great features!
    Keep going <3, Thank you for the great plugin.
    1. KennyTV
      Author's Response
      Thank you :)
  3. Alter-Ego
    Version: 3.0.1
    Best MaintenanceMode plugin, easily customizable, awesomely useful configurations available and appealing to the eye. Author has put in a very good effort and the downtime timer for the MOTD is very handy for players so they know when they can join again if maintenancemode is active. Also adds useful suggestions and replies quick!

    The maintenance icon was also a very gud touch, thumbs up mate.
    10/10 for this plugin, it's very useful and works great!
    1. KennyTV
      Author's Response
      Thank you, appreciate it
  4. darkmaki147
    Version: 3.0.1
    1- Gracias por el soporte mediante discord
    2- Sin errores
    3- Gratis para un buen plugins
    4- Configurable
    Gracias por su ayuda exelente plugins para BungeeCord los recomiendo
    1. KennyTV
  5. Sandi
    Version: 3.0
    Nice and simple Plugin. 80 Characters............................................
  6. tutur1004
    Version: 3.0
    I found an issue with Luck-Perms on bungee, The developer reply me after only 2 minutes on his Discord server.. I made a new build especially to fix this problem in less of 15 minutes.. Thanks Man !
    1. KennyTV
      Author's Response
      No problem, and thank you for the review :)
  7. csBlackWolf
    Version: 3.0
    This Plugin works really good. It does what it says and works fine with spigot 1.13.2.

    Thanks for creating and updating this Plugin. :)
    1. KennyTV
      Author's Response
      Thank you :)
  8. KR_GAMING2005
    Version: 3.0
    How do i do white the inxex when i try to set the motd
    the plugin is amasing white everything it can do but if I get what to do with the inedex it would be eaven better
  9. victoret7
    Version: 3.0
    This is my 3rd review for this plugin on almost 2 years, this update was quite significant and bringed a lot of features. As a note i will change the .jar file name to show the version of the plugin. But a 10 overall and nice developer.
    1. KennyTV
      Author's Response
      Well glad to hear that again! Thanks :D
  10. Amanso25
    Version: 3.0
    If your looking for a maintenance plugin, this plugin is for you! Best plugin for maintenance!
    1. KennyTV
      Author's Response
      Thanks :)