How to Backup Your Minecraft Server (Every Method, Ranked)
Why your Minecraft world is more fragile than you think
Your Minecraft server world exists as a collection of files on a disk. That is it. There is no safety net, no versioning, no magical undo button built into the game. If those files get corrupted, deleted, or lost, the world is gone.
This happens more often than anyone wants to admit:
- Host migration gone wrong. Your hosting provider moves your server to a new node and something gets dropped. It happens.
- World corruption after a crash. The server crashes mid-save. The chunk data is now half-written garbage. Minecraft does not recover gracefully from this.
- Accidental deletion. You were cleaning up old files and deleted the wrong folder. Or your hosting provider "cleaned up" your account after a billing hiccup.
- Plugin conflicts. A bad plugin update nukes your world data. Turns out that "world management" plugin manages worlds right into the void.
The fix for all of these is the same: having a backup that is not stored on the same machine that just failed you. Here is every way to make that happen, from basic to bulletproof.
Method 1: Copy the world folder manually
The simplest approach. Connect to your server via SFTP (FileZilla, WinSCP, or whatever you prefer), find the world files, and download them to your computer.
For a vanilla Minecraft server, the files you need are:
/world/(the main world directory)server.propertiesops.json,whitelist.json,banned-players.json,banned-ips.json
For a Paper or Spigot server, add these:
/world_nether/and/world_the_end/(separate dimension folders)/plugins/(your plugin data and configs)/config/(additional config files)bukkit.yml,spigot.yml,commands.yml,permissions.yml
Download those to your local machine and you have a backup. Congratulations.
The problem with this method is obvious: you have to remember to do it. You will do it once, feel responsible and organized, and then not do it again for four months. By the time something breaks, your backup will be from a version of the world that predates half the builds on your server.
Verdict: Works technically. Fails practically. You will forget.
Method 2: Minecraft backup plugins
If you are running Paper or Spigot (or any fork that supports Bukkit plugins), there are plugins that handle backups for you.
DriveBackupV2 is probably the most popular option. It can back up your world files to Google Drive, OneDrive, or a remote FTP server on a schedule. You configure it through a YAML file, set a cron schedule, and it runs automatically. It has been around for years and the documentation is decent.
EasyBackup is simpler. It creates local backup archives on a schedule. Less configuration, but also fewer options for offsite storage.
The limitations of the plugin approach:
- Paper/Spigot only. If you are running a vanilla server, Fabric, or anything that does not support Bukkit plugins, these will not work.
- You need plugin access. Some hosting providers restrict which plugins you can install, or disable plugin uploads entirely.
- Storage depends on you. DriveBackupV2 sends files to your Google Drive. That is your storage quota. If your world is large and you are keeping multiple backups, you will run into limits.
- No selective restore. These plugins create archives. If you need one specific file from a backup, you are extracting the entire thing.
Verdict: Good if you run Paper/Spigot and want something free. Limited if your setup does not fit that mold.
Method 3: Backup scripts on Linux
If you have SSH access to your server (or you are self-hosting), you can write a bash script and schedule it with cron.
A basic approach using rsync:
#!/bin/bash
BACKUP_DIR="/home/backups/minecraft/$(date +%Y-%m-%d_%H-%M)"
SERVER_DIR="/home/minecraft/server"
mkdir -p "$BACKUP_DIR"
rsync -a \
--include="world/***" \
--include="server.properties" \
--include="ops.json" \
--include="whitelist.json" \
--exclude="*" \
"$SERVER_DIR/" "$BACKUP_DIR/"
Schedule it with cron:
0 */6 * * * /home/minecraft/backup.sh
That runs every six hours. You can pipe the output to a log file, add error checking, send a webhook notification on failure, and so on. The script is as good as you make it.
The downsides:
- Requires SSH access. If you are on a shared hosting provider, you probably do not have this.
- Local storage only (unless you add rclone or another tool to sync to cloud storage).
- No monitoring. If the cron job silently fails, you will not know until you need a backup and discover there are none.
- You are the maintainer. Server update breaks the path? Script stops working. Nobody tells you.
Verdict: Flexible and free if you have the access and the patience. Not an option for most hosted servers.
Method 4: Pterodactyl's built-in backups
If your Minecraft server runs on Pterodactyl (or Pelican), there is a backup button built into the panel. We wrote a detailed breakdown of how this works, but the short version:
- It backs up your entire server directory. Every file, every log, every cache.
- Your hosting provider controls how many backups you can keep (often 2 or 3, sometimes 0).
- There is no built-in scheduler. You click the button or write something that hits the API.
- Restores replace everything. You cannot pull out individual files.
For a quick one-off backup before a big update, it is fine. As your ongoing backup strategy, it leaves gaps.
Method 5: Automated cloud backups
Pink Narwhal was built specifically for this problem. It connects to your Minecraft server through Pterodactyl, Pelican, or direct SFTP and runs automated backups on a schedule.
What makes it different from the methods above:
- Minecraft-aware backup profiles. It automatically detects your server type (vanilla vs Paper/Spigot) and only backs up the files that matter. Vanilla servers get the world folder, server.properties, and player data. Paper/Spigot servers also get plugins, configs, and the additional world directories. The junk (server.jar, libraries, cache) gets skipped.
- Scheduled automatically. Pick your interval. It runs without you thinking about it.
- Stored in Cloudflare R2. Your backups live in isolated cloud storage with zero egress fees. The server can go down and your backups are untouched.
- Selective restore. Browse any backup and download individual files. Need just your world folder from last Thursday? Grab it without restoring everything.
- No plugin installs. Works at the server file level, not inside Minecraft. Vanilla, Paper, Forge, Fabric, whatever. If it has files, it can be backed up.
Which Minecraft files actually matter?
Whether you are backing up manually or using a tool, knowing which files to prioritize saves time and storage.
Vanilla Minecraft server:
| File/Folder | What it is | Priority |
|---|---|---|
world/ | Your entire world (overworld) | Critical |
server.properties | Server config (port, seed, game mode, etc.) | High |
ops.json | Operator list | High |
whitelist.json | Allowed players | High |
banned-players.json | Ban list | Medium |
banned-ips.json | IP ban list | Medium |
logs/ | Server logs | Low (useful for debugging) |
Paper / Spigot server (add these):
| File/Folder | What it is | Priority |
|---|---|---|
world_nether/ | Nether dimension | Critical |
world_the_end/ | End dimension | Critical |
plugins/ | All plugin data and configs | Critical |
config/ | Additional server configs | High |
bukkit.yml | Bukkit config | High |
spigot.yml | Spigot config | High |
commands.yml | Custom commands | Medium |
permissions.yml | Permission config | Medium |
Skip these (they can be redownloaded):
server.jarorpaper.jarlibraries/cache/versions/bundler/
Setting up automatic Minecraft backups
If you want to go the automated route with Pink Narwhal, the setup takes about two minutes:
- Connect your server. Add your Pterodactyl/Pelican API credentials or SFTP connection details.
- Select the Minecraft profile. Pink Narwhal detects your server type automatically. It looks for
server.propertiesandeula.txtto confirm it is Minecraft, then checks forbukkit.ymlto determine if it is Paper/Spigot. - Pick a schedule. Daily, hourly, or whatever your plan supports.
- That is it. Backups run on schedule and get stored in R2. Browse and restore anytime.
If you run multiple Minecraft servers (or a network with Velocity/BungeeCord), the REST API lets you manage backups programmatically across all of them.
If you have already lost your world and need recovery options right now, check out our guide on how to recover a deleted Minecraft world. And if you run a Rust server too, check out our Rust server backup guide or the dedicated Rust page for game-specific backup profiles.