I learned this the hard way. After running a Valheim server for my friend group for nearly a year, I lost 11 months of building progress to a single corrupted world file. That event is the reason I take backups seriously now, and why I wrote this guide on how to set up automatic backups for a self-hosted game server.
Whether you run a Minecraft SMP, a Valheim world, or an Ark cluster, your server is one hardware failure or bad plugin update away from disaster. In this guide, I will walk you through three reliable methods to automate backups, plus how to actually test them so they work when you need them most.
Table of Contents
Why Automatic Backups Are Essential for Self-Hosted Game Servers?
Self-hosted game servers sit on hardware you usually own or rent yourself. There is no enterprise support team waiting to roll back a database. When things break, you fix it or you lose data. That is the entire game.
Here are the most common ways I have seen world data disappear:
Power loss during a write operation corrupts the world file
A plugin update changes the world format and breaks saves
Disk failure on the host machine (SSDs fail too)
Accidental deletion while cleaning up files
Hosting provider vacuuming your VM with a stuck snapshot
RAM exhaustion triggers a hard kill mid-save
Our team manages about 14 community servers across two data centers, and we have had real data loss events three times in the past 18 months. Every single time, a recent backup made the difference between a 10-minute recovery and a complete restart.
Manual backups fail because humans forget. Automatic backups succeed because they do not.
What Files You Need to Back Up on a Game Server
Before you back up anything, you need to know what actually matters. Most game servers split their data into three buckets.
World and Save Data
This is the most critical and largest chunk. For Minecraft, it is the world/, world_nether/, and world_the_end/ folders. For Valheim, it is the worlds/ directory inside the user data folder. For Ark, it is the ShooterGame/Saved/SavedArks/ directory plus the cluster folder.
If you only back up one thing, back this up.
Server Configuration Files
These are usually small but aggravating to rebuild. They include server.properties, bukkit.yml, spigot.yml, paper-world-defaults.yml, and any per-game GameUserSettings.ini or similar. If you lose these, you lose all your tuning, your whitelist, your ban list, and your permissions.
Plugin, Mod, and Player Data
This is the part most beginners forget. Plugins like EssentialsX, LuckPerms, and Dynmap each keep their own database files. Modded Minecraft servers keep their mods/ folder version synced with the world’s mod dependencies. Many Ark servers keep a separate SQLite database for player inventories.
Make a list of every plugin on your server and check where each stores its data. Forgetting one can mean losing a months-long permission tree or player economy.
How to Set Up Automatic Backups for a Self-Hosted Game Server: Three Methods
There are three main ways to automate backups. Each has trade-offs in complexity, control, and reliability. I will cover all three so you can pick the one that fits your setup.
Use your hosting control panel (easiest, least flexible)
Use a plugin or mod inside the game server (game-specific, easy to configure)
Use cron and rsync scripts on the host OS (most flexible, most powerful)
I recommend Method 3 for anyone who is comfortable on the Linux command line. If that is not you, start with Method 1 and graduate to Method 3 once you have time.
Method 1: Using Hosting Control Panel Backup Features
If you rent your server from a host that uses Pterodactyl, Multicraft, Crafty Controller, or a custom panel, you probably already have a backup scheduler built in. This is the easiest way to set up automatic backups for a self-hosted game server.
Step 1: Locate the Backup or Schedule Section
On Pterodactyl, go to your server page and click Backups in the sidebar. On Multicraft, look for the Scheduled Tasks tab. On Crafty Controller, open your server and click Backups in the top menu.
Step 2: Configure the Backup Path
Most panels let you choose which directory to back up. Set this to your server’s installation directory, not just the world folder. You want configs and plugin data included. If your panel ignores hidden files, you may need to tar the directory first using a pre-backup script.
Step 3: Set the Schedule
For active servers with 5+ daily players, I run backups every 4 hours. For quieter servers, every 12 hours is fine. The schedule format is usually cron-like, so 0 */4 * * * means “every 4 hours on the hour.”
Step 4: Configure Retention and Storage
Set the panel to keep the last 7 backups. If it supports S3 or off-site destinations, point it at a Google Drive, Wasabi, or Backblaze B2 bucket. Local-only backups on the same server are not safe backups.
Pros and Cons of Control Panel Backups
They are easy to configure and run automatically. The downside is that you rarely get incremental backups, and the panel may compress files in ways that make partial recovery painful. You also depend on the panel’s developer keeping the feature working.
Method 2: Using Plugins and Mods for Automated Backups
For Minecraft specifically, plugins are the most popular way to automate backups. For other games, equivalent options exist but are usually less mature.
Minecraft Plugins Worth Knowing
AutoSaveWorld is the most popular all-in-one. It handles backups, world saves, and restarts in one plugin. You can configure it to run every 30 minutes, 60 minutes, or 5 hours. It supports local storage and FTP/SFTP destinations.
DriveBackupV2 focuses on cloud destinations. It pushes backups directly to Google Drive, OneDrive, Dropbox, S3, and WebDAV. If your server catches fire, the backup is already in the cloud.
MineBackup is the older workhorse. It supports scheduled backups, ZIP compression, and incremental mode. The interface is uglier but the feature set is solid.
Configuring a Backup Plugin in 5 Steps
Download the plugin JAR from SpigotMC, PaperMC, or Modrinth
Drop it into your server’s
plugins/folderRestart the server once to generate the config file
Edit the config to set your backup interval, destination, and retention count
Reload the plugin and verify the first backup actually runs
Game-Specific Mods for Non-Minecraft Servers
Valheim does not have a plugin ecosystem the way Minecraft does. The community pattern is to use the in-game save command on a schedule, then use a script to copy the saved files to a backup location. Same approach for Ark, Palworld, and Project Zomboid. You run a server-side scheduled task that triggers the save command, then copy the files.
Method 3: Setting Up Cron and Rsync Backup Scripts for Linux Servers
This is the method I recommend for anyone running their own Linux box. It is how we back up all 14 of our community servers, and it scales well.
Step 1: Create a Backup Directory
Start by creating a place to store backups. I use /srv/backups/ on a separate disk or a separate machine if possible.
sudo mkdir -p /srv/backups/myserver
sudo chown backupuser:backupuser /srv/backups/myserverStep 2: Write the Backup Script
Create a file at /usr/local/bin/backup-myserver.sh with the following content. Adjust SERVER_DIR to match your setup.
#!/bin/bash
SERVER_DIR="/home/minecraft/server"
BACKUP_DIR="/srv/backups/myserver"
TIMESTAMP=$(date +%Y-%m-%d_%H%M)
KEEP_DAYS=7
# Tell the server to flush RAM to disk before we copy
if [ -f "/run/myserver.pid" ]; then
screen -p 0 -S myserver -X eval 'stuff "say Starting backup..."15'
screen -p 0 -S myserver -X eval 'stuff "save-all flush"15'
sleep 10
fi
# Create compressed archive
tar -czf "$BACKUP_DIR/backup-$TIMESTAMP.tar.gz" -C "$SERVER_DIR" .
# Remove backups older than KEEP_DAYS
find "$BACKUP_DIR" -type f -name "backup-*.tar.gz" -mtime +$KEEP_DAYS -delete
echo "Backup completed: $BACKUP_DIR/backup-$TIMESTAMP.tar.gz"
Step 3: Make the Script Executable
Run chmod +x /usr/local/bin/backup-myserver.sh to make it executable. Test it once by running sudo -u backupuser /usr/local/bin/backup-myserver.sh and confirm a file appears in /srv/backups/myserver/.
Step 4: Schedule It with Cron
Open the crontab for your backup user with crontab -e and add this line. The schedule here runs every 4 hours.
0 */4 * * * /usr/local/bin/backup-myserver.sh >> /var/log/myserver-backup.log 2>&1
Step 5: Add Rsync for Incremental Snapshots
If you want versioned backups without duplicating everything, use rsync with hard links. This is the pattern used by tools like rsnapshot.
#!/bin/bash
SOURCE="/home/minecraft/server/"
DEST="/srv/backups/myserver/daily/"
RETENTION=7
mkdir -p "$DEST"
rsync -a --delete --link-dest="$DEST/last" "$SOURCE" "$DEST/$(date +%Y-%m-%d_%H%M)/"
rm -f "$DEST/last"
ln -s "$(ls -1d $DEST/*/ | tail -1)" "$DEST/last"
# Prune old snapshots
ls -1dt "$DEST"/*/ | tail -n +$((RETENTION + 1)) | xargs rm -rf
This gives you a real incremental backup system that takes seconds to run and keeps multiple recovery points without filling your disk.
Why Method 3 Is the Gold Standard
You can script anything. You control retention, compression, pre-backup commands, post-backup uploads, and notifications. We use this exact pattern to push backups to S3 with rclone after the local snapshot completes. It is the most reliable technique I have used in 8 years of running game servers.
Cloud Storage Destinations for Off-Site Backups
Local backups protect against file corruption and accidental deletion. Off-site backups protect against fire, theft, and complete host failure. You need both.
Google Drive
The free 15GB is enough for small servers. Use rclone with a Google Drive remote. Authenticate once, then run rclone copy /srv/backups/myserver gdrive:GameServers/myserver on a schedule.
Backblaze B2
At roughly $6 per TB per month, B2 is the cheapest S3-compatible option. It is the industry favorite for self-hosted backups. Set up an application key, configure rclone, and push your tar files directly.
AWS S3
S3 is the gold standard for reliability but more expensive than B2. Use the Standard-IA storage class for backups, which charges per retrieval but keeps the data at low cost.
FTP and SFTP Push
Some hosts expose an FTP or SFTP server for backup purposes. You can pipe your tar file directly into an SFTP upload using lftp or rsync over ssh. The advantage is that the backup leaves your server on the same schedule.
Whichever destination you choose, encrypt the backup at rest. Game data is not glamorous, but a leaked player database is a real problem.
Backup Retention Strategies That Actually Work
Keeping 30 days of daily backups sounds smart until your disk fills up. You need a retention policy.
The Grandfather-Father-Son Pattern
Keep daily backups for 7 days, weekly backups for 4 weeks, and monthly backups for 12 months. This gives you short-term recovery from accidents and long-term recovery from slow corruption. Our retention script does exactly this using three rotating folders.
Incremental vs Full Backups
Full backups are simple but expensive in disk space. Incremental backups with rsync and hard links save space but require a working filesystem to recover from. For game servers, I run daily full backups during low-traffic hours and rsync-based hourly snapshots during the day.
How Many Backups Should You Keep
The rule I use: keep enough backups that you can recover from any plausible failure. For a 20-player server, that means the last 7 days of daily backups plus the last 24 hourly snapshots. Total disk overhead is roughly 3x the server data size.
How to Restore a Game Server from a Backup?
Backups you have never restored are backups you do not have. The restore process differs by method.
Restoring from a Control Panel Backup
Open the panel, navigate to the Backups tab, and click “Restore” next to the backup you want. The panel will overwrite the current server files. Stop the server first, restore, then start the server. Verify the world loads before you tell the players.
Restoring from a Plugin
Most backup plugins add a /backup restore command. Run that, select the backup by timestamp, and the plugin will decompress and place the files. This usually requires a server restart.
Restoring from a Cron and Rsync Backup
The most reliable method. Stop the server, move the current directory aside, then decompress the archive.
sudo systemctl stop myserver
cd /home/minecraft
mv server server.broken
mkdir server
tar -xzf /srv/backups/myserver/backup-2026-08-04_1600.tar.gz -C server
sudo systemctl start myserver
Verify the server starts and the world loads. If something is wrong, the broken directory is still there and you can swap back.
Backup Verification and Recovery Drills
Most backup systems fail silently. The cron job stops running because of a permissions change, the S3 credentials expire, the disk fills up and the script silently fails. You only find out when you actually need the backup.
Verify Backups Automatically
Add a check to your backup script that confirms the tar file was actually created and is non-empty. Send a notification on failure.
if [ ! -s "$BACKUP_DIR/backup-$TIMESTAMP.tar.gz" ]; then
echo "Backup failed or empty" | mail -s "Backup Alert" [email protected]
exit 1
fi
Run a Recovery Drill Quarterly
Every 3 months, restore your most recent backup to a separate test server and confirm the world loads, player data is intact, and plugin permissions work. I keep a small staging server for this purpose. It costs almost nothing and has saved me twice from “successful” backups that were actually corrupted.
Check Your Logs
Look at /var/log/myserver-backup.log every week. If the timestamps stop updating, your cron has died. If the file sizes suddenly drop to a few bytes, your source directory changed.
Best Practices for Game Server Backup Scheduling
Schedules matter more than the choice of tool. Here is what I have learned running backups for hundreds of servers over the years.
Backup Before Every Update
Always run a manual backup immediately before updating the server software, a plugin, or a modpack. A failed update can corrupt the world, and rolling back from that point is much faster than rolling back from yesterday.
Align Backups with Player Activity
Schedule backups during low-traffic hours. The save-all flush command causes a small lag spike, and players notice. For a US-East server, 4 AM local time is usually quiet.
Secure Your Backup Storage
Backups should never be world-readable. Use chmod 600 on the files and restrict SSH access to your backup user. Encrypt backups at rest with GPG if you are storing them in a location you do not fully control.
Keep Backups Off-Site
One of our servers lost both its drives in a RAID controller failure. The local backups were gone too. The off-site S3 backup restored us in 20 minutes. Local-only backups are not real backups.
Document Your Restore Process
Write down the exact steps to restore. Save the document somewhere you can access without logging into the affected server. I have a printed copy of the restore script in my home office. It has not been needed in 3 years, but it is there.
Frequently Asked Questions
How do I backup a self-hosted server?
Start by identifying your server’s data directory, which contains world files, configuration files, and plugin data. Then choose one of three methods to back it up automatically: a hosting control panel scheduler, a game plugin like AutoSaveWorld or DriveBackupV2, or a cron job that runs rsync or tar on a schedule. Store backups locally and push copies to an off-site cloud destination like Backblaze B2, S3, or Google Drive.
How do I set up automatic backups?
For most self-hosted game servers, the fastest way is to write a bash script that stops the server, runs save-all flush, creates a compressed tar archive, and pushes it to cloud storage. Schedule that script with cron. Add a log line and an alert on failure so you know when the backup stops running. Test the restore process quarterly.
How do I create a backup of my VPS?
SSH into your VPS, locate the game server directory, and create a tar archive with the command: tar -czf backup-$(date +%Y%m%d).tar.gz /path/to/server. For automation, write this command into a script and add it to crontab with the schedule you want. Push the resulting archive to S3, B2, or Google Drive with rclone for off-site protection.
How do I auto backup my Minecraft server?
Install a Minecraft backup plugin like AutoSaveWorld, DriveBackupV2, or MineBackup from SpigotMC or Modrinth. Drop the JAR into the plugins folder, restart the server once, then edit the plugin’s config.yml to set the interval, destination path, and number of backups to retain. Reload the plugin and confirm the first backup completes successfully.
How often should I backup my game server?
For active servers with regular players, run a backup every 4 to 6 hours during peak hours and hourly snapshots during off-peak. For quieter servers, every 12 hours is usually enough. Always run a fresh manual backup before any server update, plugin change, or major configuration edit.
What files should I back up on my game server?
Always back up the world directory (world, worlds, or SavedArks depending on the game), all server configuration files like server.properties and bukkit.yml, and the plugin or mod data folders. For modded Minecraft, include the mods folder so the world format matches on restore. For Ark, include the cluster folder if you run a cluster, plus the GameUserSettings.ini file.
Conclusion
Knowing how to set up automatic backups for a self-hosted game server is the difference between a 10-minute recovery and a complete loss. Start with the method that matches your skill level, but graduate to cron and rsync as soon as you can. Test your restores, keep at least one off-site copy, and never trust a backup you have not actually loaded. Your players will thank you the first time something breaks.