What to back up, how to copy a world on a running server, what order to update plugins in, and how to roll back in five minutes when something goes wrong.
You update a plugin and permissions are gone. Shop prices reset to zero. The server won't start after a new core version. These stories usually end with "do we have a backup?" Here's a routine where the answer is always yes and a rollback takes minutes.
| What | Where | Why |
|---|---|---|
| Worlds | world, world_nether, world_the_end and other world folders | builds, inventories, player data |
| Plugins | the whole plugins/ folder | jars, configs and data plugins keep in files |
| Server settings | server.properties, bukkit.yml, spigot.yml, Paper's config/ folder | without them a restored server behaves differently |
| Lists | ops.json, whitelist.json, banned-players.json, banned-ips.json | ops, whitelist, bans |
| External database | MySQL or MariaDB | permissions, economy, logs, if plugins store them there |
The last row is the one people forget. Copying folders doesn't include the database; you dump it separately. LuckPerms can also save itself to a file with /lp export backup; the file lands in the plugin's folder.
If you copy a world folder while the server is writing to it, some chunks in the copy end up half written. There are two safe ways.
save-off
save-all flush
(copy the files)
save-onAn example for Linux, with the server in /opt/mc and backups going to /backup:
cd /opt/mc
tar -czf /backup/mc-$(date +%F-%H%M).tar.gz world world_nether world_the_end plugins config *.yml *.json server.properties
mysqldump -u mc -p luckperms > /backup/luckperms-$(date +%F).sql
find /backup -name 'mc-*.tar.gz' -mtime +14 -deleteThe last line deletes archives older than two weeks, or one day the disk fills up. Put the script in cron for the night and backups show up on their own.
A copy on the same disk isn't a backup. If the disk dies or the host shuts down your VPS, both copies go. At least once a week, move an archive to another machine or to cloud storage.
And test a restore at least once: unpack the archive into a separate folder and start it on another port. A backup nobody ever restored is a hope, not a backup.
Ambiguous plugin name warning, and there's no telling which one loads.If you can't stop the server right now, Bukkit has an update folder: a jar placed in plugins/update replaces the one with the same file name in plugins on the next start. The file name has to match the current one.
/reload instead of a restart. Old classes stay in memory and the plugin acts weird until the next restart.plugins/.Cloud Panel doesn't back up worlds; use the archives above for that. Its job is configs and server power.
plugins/, server settings, lists and a database dump.save-off and save-all flush.Try the rollback log and one-click plugin toggling on your own server: 3 days free.
We have been building server builds, plugins and websites for Minecraft servers since 2022. A ready-made solution goes onto your hosting in an evening, and we install it for free.