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.
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.
| Minecraft | 1.20.1 to 1.21.x |
| Server software | Spigot, Paper, Purpur. Pretty much any Bukkit fork. |
| Java | 17+ |
| Dependencies | None. |
| Restart command | Tries 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.
-
Drop the jar in
plugins/Put
AutoRestartPlus-1.0.jarin your server'splugins/folder. Nothing else needed. -
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. -
Add your license, then restart
Open the config, paste your BBB key on the
license.keyline, 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.
-
Get your key
Open your BuiltByBit purchase page and grab the key from the Licenses tab.
-
Paste it in the config
Open
plugins/AutoRestartPlus/config.ymland replace the placeholder on thelicense.keyline:config.yml YAMLlicense: key: 'YOUR-LICENSE-KEY-HERE'Keep the single quotes around the key.
-
Full restart
A
/reloadwon't work. The license check runs inonEnable, so you need a full server restart.
Your license is tied to your BuiltByBit account. Don't share the key publicly.
Five commands.
| Command | What it does |
|---|---|
/restartcooldown | Starts a 5-minute restart countdown with action bar and chat warnings. |
/executerestart | Skips the countdown and restarts right now. Everyone gets kicked immediately. |
/restartcancel | Cancels a countdown that's in progress. |
/restartinfo | Shows 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.
| Permission | Gives access to |
|---|---|
restart.use | /restartcooldown, /executerestart, /restartcancel |
op | Needed 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.
# 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
| Key | Description |
|---|---|
license.key | Your BuiltByBit license. Required. |
auto-restart-minutes | Interval for the periodic auto-restart. Set 0 to disable. Can be live-updated with /setrestart. |
dynamic-motd | true = show restart-motd while restarting; false = always show default-motd. |
default-motd | Server-list MOTD during normal operation. Supports §x§R§R§G§G§B§B hex colors and \n. |
restart-motd | Server-list MOTD shown during the restart window. Same color/format support. |
worlds-to-delete | List 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.
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:
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:
/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. Saves all loaded worlds.
- 2. Kicks all online players with a "Reconnect in 2 minutes" message.
-
3.
Sets
max-playersto 1 and enables the whitelist (restart-mode lock). -
4.
Deletes the world folders listed in
worlds-to-deleteasynchronously. -
5.
Waits 60 seconds for cleanup, restores
max-playersand the whitelist, then callsspigot().restart().
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.keyis your real BBB key, not thePASTE-YOUR-KEY-HEREplaceholder. - 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 yourserver.jarexactly. - 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-deleteis empty, the plugin logsNo 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.