mc.pvpers.us
Online
← The Frontier Suite

FrontierBackup

v1.0.0Ops

Scheduled world backups zipped on a rolling window.

What it does

On a fixed interval (and on /backup start) the plugin saves the configured worlds on the main thread, then zips their folders asynchronously into backup-<yyyy-MM-dd-HH-mm>.zip in a directory of your choice, and prunes the oldest zips once the count exceeds max-backups.

It is deliberately small: no cloud upload, no restore command, no incremental diffs — just a rolling window of zips that a host panel or an rsync job can pick up. Because the zip step runs off the main thread, the tick loop is never blocked by file I/O, and a single-flight guard refuses a second backup while one is running.

Requires & integrates with

Required
Paper 26.2+, Java 25+
Optional
None.
Used by
None.

Commands

CommandWhoWhat it does
/backup startAdminStart a backup now (refused if one is already in progress)
/backup listAdminList backup-*.zip files in the backup directory, newest first, with date and size
/backupAdminPrint usage

Permissions

Player features default to true, staff features to op. Every node follows frontier.<plugin>.<action>, so a LuckPerms setup is e.g. lp group default permission set frontier.shop.use true. Wildcards work: frontier.reputation.*.

NodeDefaultGrants
frontier.backup.adminop/backup start, /backup list

Config reference

File

plugins/FrontierBackup/config.yml

To apply changes

Restart required

KeyDefaultWhat it controls
backup-interval720Minutes between automatic backups (720 = twice a day). The first automatic backup runs one full interval after startup, never at boot
max-backups3Rolling retention: once more than this many backup-*.zip files exist, the oldest (by file modification time) are deleted after each run
backup-directorybackupsWhere zips are written, relative to the server root
worlds[world]World folder names to include, relative to the server root. On Paper 26.1+ every dimension lives under world/dimensions/, so one world entry captures overworld, nether and end; add entries for separately-created worlds
announcetrueBroadcast "Starting world backup…" / "Backup complete!" / failure messages to chat

Good to know

  • +There is no restore command — restoring means stopping the server and unzipping by hand. Size max-backups to your disk; each zip is a full copy of every listed world and a mature survival world can be several GB per zip.
  • +The zip is a "hot" copy: worlds are saved first, but auto-save is not paused while the zip walks the folder. For a guaranteed-consistent copy, save-off + save-all first, or back up while the server is stopped.
  • +Entries in worlds: are folder names relative to the server root, not Bukkit world names; a missing folder logs World folder not found, skipping.
  • +Filenames use the JVM’s default timezone, so hosts running UTC get UTC timestamps. Pruning sorts by file modification time, not by the timestamp in the name — copying old zips into the directory gives them a fresh mtime.
  • +Watch console for Automatic backups scheduled every N minutes. on boot, and use /backup start to test immediately.

Looking for something specific? Search the whole suite.