Active · Latest 1.0 · MC 1.20.1+

AutoRestart+ documentation

Restarts your server every X minutes and wipes the worlds you tell it to. Useful for practice servers, PvP arenas, or anything where the map should reset.

Version
1.0
API
1.20.1+
Author
Heuxil
License
BBB key

What it does.

AutoRestart+ does two things: it restarts your server on a timer, and it wipes whichever world folders you list so they regenerate fresh next boot. That's it.

It's for servers where the map is meant to reset. Practice arenas, PvP events, minigame rotations, biome-rotation setups. Drop the jar in, paste your license key, list the worlds to wipe, and you're done.

i

New here? Read in this order: Installation → License → Configuration → Worlds to Delete. That's enough to get going.

Small and simple.

No dependencies, no GUI, no API calls to weird services. The whole jar is under 30 KB.

Scheduled restarts

Set auto-restart-minutes in the config or use /setrestart <minutes> in-game.

🗺

World regeneration

Add world folders to worlds-to-delete and they get wiped on every restart.

📢

Countdown notifications

Players get action bar, chat, and sound at 5m, 3m, 2m, 1m, 30s, 10s, then every second under 5.

🛡

Lockout during restart

While the server is kicking everyone, max-players drops to 1 and whitelist turns on so nobody sneaks back in.

📡

Dynamic MOTD

Optional. Shows a custom MOTD on the server list while a restart is happening.

Manual commands

Three commands to start, cancel, or instantly run a restart whenever you want.

Should work everywhere.

Minecraft1.20.1 to 1.21.x
Server softwareSpigot, Paper, Purpur. Pretty much any Bukkit fork.
Java17+
DependenciesNone.
Restart commandTries Bukkit.spigot().restart() first. If that doesn't work, it just shuts down cleanly.
!

Make sure your start script auto-restarts. If spigot().restart() isn't available on your fork, the plugin falls back to Bukkit.shutdown(). If your start script doesn't relaunch the server after shutdown, you'll be stuck offline. Most paid hosts (Pterodactyl, Pufferpanel, etc.) handle this for you. If you're running it manually with java -jar, wrap it in a loop.

Three steps.

  1. Drop the jar in plugins/

    Put AutoRestartPlus-1.0.jar in your server's plugins/ folder. Nothing else needed.

  2. Start the server once

    This creates plugins/AutoRestartPlus/config.yml. The plugin will shut itself off with a license error on this first boot. That's normal.

  3. Add your license, then restart

    Open the config, paste your BBB key on the license.key line, save, and do a full server restart. Step-by-step in License Activation.

One-time setup.

The plugin checks your license key every time the server starts. If the key's missing or wrong, it shuts itself off and prints an error in the console.

  1. Get your key

    Open your BuiltByBit purchase page and grab the key from the Licenses tab.

  2. Paste it in the config

    Open plugins/AutoRestartPlus/config.yml and replace the placeholder on the license.key line:

    config.yml YAML
    license:
      key: 'YOUR-LICENSE-KEY-HERE'

    Keep the single quotes around the key.

  3. Full restart

    A /reload won't work. The license check runs in onEnable, so you need a full server restart.

!

Your license is tied to your BuiltByBit account. Don't share the key publicly.

Five commands.

CommandWhat it does
/restartcooldownStarts a 5-minute restart countdown with action bar and chat warnings.
/executerestartSkips the countdown and restarts right now. Everyone gets kicked immediately.
/restartcancelCancels a countdown that's in progress.
/restartinfoShows the help menu and the current auto-restart status.
/setrestart <minutes>OP only. Sets the auto-restart timer. 0 turns it off.

One permission node.

The four manual commands all use restart.use. Give it to whoever you trust to restart the server.

PermissionGives access to
restart.use/restartcooldown, /executerestart, /restartcancel
opNeeded for /setrestart on top of the node above

/restartinfo has no permission, anyone can run it.

One config file.

plugins/AutoRestartPlus/config.yml. Every line has a comment explaining what it does.

plugins/AutoRestartPlus/config.yml YAML
# License key from your BuiltByBit account
license:
  key: 'PASTE-YOUR-KEY-HERE'

# Auto-restart timer in minutes (0 to disable)
auto-restart-minutes: 0

# Switch the server list MOTD during a restart
dynamic-motd: false

# MOTD shown during normal operation
default-motd: "AutoRestart+\n By Heuxil"

# MOTD shown when a restart is in progress (only used if dynamic-motd: true)
restart-motd: "§x§B§1§D§6§F§F⌚ ʀᴇꜱᴛᴀʀᴛɪɴɢ..."

# World folders to delete and regenerate on each restart
worlds-to-delete:
  - world_minecraft_badlands
  - world_minecraft_desert
  - world_minecraft_mushroom
  - world_minecraft_plains
  - world_minecraft_snowy_fields
KeyDescription
license.keyYour BuiltByBit license. Required.
auto-restart-minutesInterval for the periodic auto-restart. Set 0 to disable. Can be live-updated with /setrestart.
dynamic-motdtrue = show restart-motd while restarting; false = always show default-motd.
default-motdServer-list MOTD during normal operation. Supports §x§R§R§G§G§B§B hex colors and \n.
restart-motdServer-list MOTD shown during the restart window. Same color/format support.
worlds-to-deleteList of folder names. Listed worlds are deleted on each restart and regenerate fresh on next boot.

How the wipes work.

Every restart, AutoRestart+ goes through your worlds-to-delete list. For each name, it finds the matching folder in your server root and deletes it. Next time the server boots, Minecraft regenerates the world from scratch using your normal world generator settings.

i

Use the exact folder names. Whatever folder name you see next to your server.jar is what goes in the list.

For a biome-rotation server, the defaults look something like this:

config.yml (excerpt) YAML
worlds-to-delete:
  - world_minecraft_badlands
  - world_minecraft_desert
  - world_minecraft_mushroom
  - world_minecraft_plains
  - world_minecraft_snowy_fields
!

Heads up, this is permanent. The folders get deleted entirely and there's no undo. Only put worlds in here that you're okay with wiping. Don't list your main spawn world unless you actually want it gone.

If a folder in the list doesn't exist, the plugin just logs a warning and moves on. If the list is empty, the wipe gets skipped (the server still restarts).

Set it once.

The auto-restart-minutes setting controls how often the server auto-restarts. The first restart happens N minutes after the server starts, and then it repeats on the same interval.

To change it without touching the config, OPs can use:

In-game Minecraft
/setrestart 300   # every 5 hours
/setrestart 60    # every hour
/setrestart 0     # turn auto-restart off

The change is saved to config.yml right away and replaces any pending restart with the new schedule.

What players see.

When a restart starts (either from /restartcooldown or automatically), the plugin runs a 5-minute (300-second) countdown. Warnings fire at: 5m, 3m, 2m, 1m, 30s, 10s, then every second under 5.

Each notification includes:

  • An action bar message in red
  • A chat broadcast with the same message
  • A pling sound (BLOCK_NOTE_BLOCK_PLING) on every player

At T-zero, the plugin:

  1. 1. Saves all loaded worlds.
  2. 2. Kicks all online players with a "Reconnect in 2 minutes" message.
  3. 3. Sets max-players to 1 and enables the whitelist (restart-mode lock).
  4. 4. Deletes the world folders listed in worlds-to-delete asynchronously.
  5. 5. Waits 60 seconds for cleanup, restores max-players and the whitelist, then calls spigot().restart().
i

Safety net. If somehow a player stays connected for more than 60 seconds, the plugin force-kicks everyone and proceeds anyway. The restart won't get stuck.

Optional. Off by default.

Set dynamic-motd: true and the plugin will swap the server-list MOTD based on whether a restart is happening. While the server's restarting it shows restart-motd, otherwise it shows default-motd.

Both fields support legacy hex color codes (§x§R§R§G§G§B§B) and \n for line breaks. Just remember to keep the values in quotes.

!

If you're behind a BungeeCord or Velocity proxy, the proxy might be overriding the MOTD. If yours doesn't change, check your proxy config.

If something's not working.

Plugin disabled with "invalid or missing license"

  • Check that license.key is your real BBB key, not the PASTE-YOUR-KEY-HERE placeholder.
  • Make sure you did a full restart, not just /reload.
  • Make sure your server can reach the internet. A firewall blocking outbound HTTP will fail the check.

Server stays offline after a restart

The plugin tries spigot().restart(), and if that's not available it falls back to shutdown(). If your server stays offline, your start script isn't relaunching after the process ends. Either wrap your start command in a loop, or use a panel that handles restarts (Pterodactyl, Pufferpanel, etc.).

Worlds aren't getting deleted

  • Look in your console for World folder not found: .... The folder name in the config has to match the actual folder name next to your server.jar exactly.
  • If you see Cannot delete file: ..., the JVM still has files open in that world. The kick step normally fixes this, but on some setups it might not.
  • If worlds-to-delete is empty, the plugin logs No worlds configured for deletion! and just restarts without wiping anything.

Players see "Server is restarting NOW!" mid-game

That's the safety fallback. If the kick task can't clear everyone within 60 seconds, it force-kicks them so the restart doesn't get stuck. If this happens often, another plugin is probably swallowing the kick messages.

Common questions.

How do I activate my license? +

Open plugins/AutoRestartPlus/config.yml, replace PASTE-YOUR-KEY-HERE on the license.key line with your BBB key (keep the quotes), and fully restart the server.

Will /reload work? +

Nope. The license check runs in onEnable, which a reload doesn't trigger. Full restart only.

Can I add more than one world to delete? +

Yeah, you can list as many as you want. Each one gets deleted on every restart. If a folder doesn't exist it just gets skipped (with a warning in the console).

Will it delete my main spawn world? +

Only if you put it in the list. The plugin only touches folders you specifically name in worlds-to-delete. The default list has biome worlds (world_minecraft_badlands, etc.) but not world.

What's the difference between /restartcooldown and /executerestart? +

/restartcooldown = 5-minute countdown with warnings. /executerestart = restarts right now, no countdown. Both delete worlds and restart, just one waits and one doesn't.

How do I cancel a restart? +

Use /restartcancel. Only works during the countdown though. Once the kick step starts, you can't stop it anymore.

Does cancelling a restart reset the auto-timer? +

No. The auto-restart timer is its own thing. /restartcancel only stops the current countdown. The next auto-restart still happens at its scheduled time. To change the schedule itself, use /setrestart <minutes>.

Can I use AutoRestart+ alongside CPVPEvent+? +

Yeah, no problem. They're separate plugins. CPVPEvent+ has its own /regen for the event world, and AutoRestart+ handles the scheduled restart for everything else. Just make sure they're not pointed at the same worlds.

The MOTD doesn't change when restarting. +

Make sure you set dynamic-motd: true in the config, then reload or restart. If you're behind a BungeeCord or Velocity proxy, the proxy might be overriding the MOTD before it reaches the player.

How do I get support? +

Open a ticket on Discord. Include your server software + version, the plugin version, and any error lines from your console.

Need help?

Open a ticket on Discord and I'll get to it. When you do, please include your server software (Paper, Spigot, etc.), the plugin version, and any error lines from the console. Saves a ton of back and forth.

Thanks for using AutoRestart+. Bug reports, feature ideas, weird questions, all welcome.