Backups
mc can archive the instance's world on a schedule while it runs, and restore any archive later. Backups are coordinated with the running instance so the world is flushed to disk before it is captured — archives are always consistent, even under load.
Scheduled backups
[backups]
enabled = true
frequency = "0 0 * * * *"
With enabled = true, backups fire on the frequency schedule while the
instance runs. frequency is a cron expression with six fields — seconds,
minutes, hours, day of month, month, day of week. The example above backs up
at the start of every hour.
Coordination with a running instance happens over RCON, Minecraft's remote
console protocol. RCON is enabled whenever an RCON password is configured;
when backups are enabled and no password is set, mc generates one at startup
so backups work out of the box. See
MC_RCON_PASSWORD to set the
password yourself.
Manual backups
A backup can be taken at any time with
mc backup, even when scheduled backups are
disabled — enabled only controls the schedule. It works against a stopped
instance, and against a running one as long as the instance was started with
an RCON password configured (always the case when backups are enabled). When
the instance is running but cannot be reached, mc refuses to back up rather
than capture a world that is still being written to.
Storage
Archives go to a storage target configured under [backups.storage]. Two
types are supported.
Local (the default) stores archives in a directory and keeps only the most recent ones:
[backups.storage]
type = "local"
path = "backups"
keep = 20
S3 uploads archives to a bucket:
[backups.storage]
type = "s3"
bucket = "my-minecraft-backups"
Credentials come from the standard AWS credential chain (environment,
~/.aws, or an IAM role). The bucket can also be supplied with the
MC_BACKUPS_S3_BUCKET environment variable instead of the manifest. mc does
not prune S3 backups; use a bucket lifecycle rule to expire old archives.
Give each instance its own bucket or directory: mc treats everything in the storage target as a backup of this instance.
Notifications
mc reports backup results — along with other instance events — to a webhook
when one is configured through the environment (MC_DISCORD_WEBHOOK for
Discord). The [notifications] section of the manifest selects which
events are sent; see
The Manifest Format. A failed
notification never fails the backup itself.
Restoring
List the available backups, then restore one:
$ mc restore --list
myserver_2026-07-15_15-00-00.tar.gz (latest)
myserver_2026-07-14_15-00-00.tar.gz
$ mc restore --backup myserver_2026-07-14_15-00-00.tar.gz
Without --backup, the most recent backup is restored. The instance must be
stopped to restore. The world being replaced is set aside rather than
deleted, and is put back if the restore fails. See
mc restore.