How to set up Auto-Sync
A comprehensive guide to automatically keeping your BedrockMap in sync with your Minecraft server using Server Pull (SFTP/FTP/FTPS) or API Push.
What is Auto-Sync?
Auto-Sync automatically keeps your BedrockMap up to date whenever your server creates a new backup. Instead of manually downloading your world and re-uploading it each time, Auto-Sync handles the entire process for you.
There are three methods available, depending on your server setup:
- Server Pull — Backup File (SFTP/FTP) — BedrockMap connects to your server on a schedule via SFTP, FTP, or FTPS, finds the latest backup file, and downloads it automatically
- Server Pull — Live Server Folder (SFTP/FTP) — BedrockMap connects during a scheduled server shutdown window and downloads the raw world folder directly, without needing a backup file
- API Push — A script on your server uploads the latest backup to BedrockMap whenever it runs (via cron job or Task Scheduler)
Both methods feed into the same render pipeline — the result is identical to manually re-uploading your world from the dashboard. If you have Timelines enabled, each sync automatically creates a new timeline snapshot.
Advanced feature: Auto-Sync requires a Premium subscription and some familiarity with server administration (SFTP/FTP access, cron jobs, or Task Scheduler). If you are unsure about any of the steps below, please read through the entire guide before making changes.
Prerequisites
Before setting up Auto-Sync, ensure you have:
- BedrockMap Premium subscription — Auto-Sync is a Premium-only feature
- An existing world on BedrockMap — you must have already uploaded your world at least once
- Server backups or a scheduled shutdown window — either regular backups (for Backup File or API Push) or a daily time when your server is stopped (for Live Server Folder)
Additionally, depending on the method you choose:
For Server Pull — Backup File:
- SFTP, FTP, or FTPS access to your server
- The path to your server's backup folder
- Knowledge of when your server creates backups (time of day)
For Server Pull — Live Folder:
- SFTP, FTP, or FTPS access to your server
- The path to your server's world folder
- A daily scheduled shutdown time (server must be stopped during sync)
For API Push:
- SSH or remote access to your server (to run the installer)
- The path to your server's backup folder
curlinstalled (Linux/Mac) or PowerShell (Windows)
Choosing a method
All three methods achieve the same result. Choose whichever is easiest for your server setup:
| Server Pull — Backup File | Server Pull — Live Folder | API Push | |
|---|---|---|---|
| How it works | BedrockMap downloads the latest backup file from your server | BedrockMap downloads the raw world folder while the server is stopped | Your server uploads the latest backup to BedrockMap |
| Setup effort | Fill in a form on the dashboard | Fill in a form on the dashboard | Run a one-line installer + set up a cron job |
| Best for | Hosts with SFTP/FTP access to a backup folder (Shockbyte, Bisect, Sparked, Apex, self-hosted) | Hosts that only give SFTP/FTP access to the live server files (no backup folder access) | Servers where you have SSH access and can schedule scripts |
| Requires backups? | Yes — needs .mcworld or .zip backup files | No — downloads the live world directly | Yes — needs .mcworld or .zip backup files |
| Server downtime needed? | No | Yes — server must be stopped during sync | No |
| Schedule control | Set the time on BedrockMap dashboard | Set the shutdown time on BedrockMap dashboard | Set via cron job / Task Scheduler on your server |
| Requires open ports | SFTP/FTP port must be accessible | SFTP/FTP port must be accessible | Only outbound HTTPS (port 443) |
| Credentials stored | Password encrypted (AES-256-GCM) on BedrockMap | Password encrypted (AES-256-GCM) on BedrockMap | API key stored on your server only |
Tip: If your hosting provider gives you access to a backup folder, use Backup File mode — it's the simplest and doesn't require server downtime. If your host only lets you access live server files (no backup folder), use Live Server Folder mode. If you have SSH access and prefer not to store credentials, use API Push.
Setting up Server Pull: Backup File mode
Backup File mode lets BedrockMap connect to your server on a daily schedule via SFTP, FTP, or FTPS, find the latest backup file, and download it for rendering. This is the most common Server Pull setup.
- Navigate to your world's Dashboard → Auto-Sync tab
- Select the Server Pull (SFTP/FTP) sub-tab
- Choose your Protocol:
- SFTP — SSH File Transfer Protocol (port 22). The most common and most secure option. Used by most hosting providers.
- FTPS — FTP over TLS (port 21). Encrypted FTP connection. Use this if your host only offers FTP with TLS.
- FTP — Plain FTP (port 21). Unencrypted — only use this if your host doesn't support SFTP or FTPS. Credentials are sent in plain text.
- Fill in your connection details:
- Host — your server's hostname or IP address (e.g.
play.myserver.com) - Port — usually
22for SFTP or21for FTP/FTPS, but many game panels use a custom port like2022or2222 - Username — your SFTP/FTP username
- Password — your password (stored encrypted, never in plain text)
- Remote Backup Path — the full path to the folder on your server that contains the backup files
- Host — your server's hostname or IP address (e.g.
- Click Test Connection to verify the credentials and path are correct. You should see a list of backup files found in the folder.
- Configure the backup schedule:
- Backup Time — the time your server creates its daily backup. The time picker is shown in your local timezone, with the UTC equivalent displayed alongside.
- Check Delay — how long to wait after the backup time before downloading. This gives the backup process time to complete. 15–30 minutes is usually sufficient.
- Click Save Configuration
How it works: Every 5 minutes, BedrockMap checks if your configured backup time + delay has passed and whether a sync has already happened today. If it's time, it connects to your server via your chosen protocol (SFTP, FTP, or FTPS), finds the newest .mcworld or .zip file, and downloads it. If the file hasn't changed since the last sync, it skips the download.
Schedule preview: After setting the backup time and delay, you'll see an Upcoming Syncs preview showing the next three sync dates and times in your local timezone. This updates live as you adjust the dropdowns. Note that saving your configuration resets the schedule — the next sync will run at the first scheduled time after now, not earlier today.
Finding your connection details
Where to find your SFTP/FTP credentials depends on your hosting provider. Here are the most popular ones:
Shockbyte
Go to Files → SFTP Connect in your control panel. All credentials (host, port, username, password) are displayed there. Your username includes a numerical suffix (e.g. username12345) — you must include the full username exactly as shown. Your SFTP password is the same as your panel password.
Bisect Hosting
Log into the Starbase panel and go to Settings to find your SFTP credentials. The SFTP port is 2022. Your password is the same as your Starbase panel login. Backups are accessible under the Backups tab in the sidebar, and files are stored under /home/container/.
Sparked Host
Click Settings in the Apollo Panel sidebar to view SFTP credentials. The SFTP port is 2022. Use your Apollo Panel password (not your billing password). Backups are under the Backups tab.
Apex Hosting
Apex Hosting uses FTP (port 21), not SFTP. Select the FTP or FTPS protocol in the connection settings. Your FTP credentials are under FTP File Access in the panel. Your username is your email address with a server suffix (e.g. user@example.com.1).
Self-hosted server
Use the SSH credentials of the machine (same host, port 22 by default). The backup path depends on where you have configured your backup script to save files.
Common backup paths
The remote backup path depends on your server setup. Here are some common examples:
# Bisect Hosting / Sparked Host (Pterodactyl-based) /home/container/backups/ # Shockbyte (check via their file manager) /backups/ # Self-hosted Bedrock Dedicated Server /opt/bedrock-server/backups/ /home/minecraft/backups/ # Self-hosted Java server /opt/minecraft/backups/ /home/minecraft/server/backups/
Tip: If you're not sure of the exact path, use the Test Connection button with different paths until you find the folder containing your backup files. The test will show you the files it finds.
File pattern
By default, Auto-Sync looks for *.mcworld and *.zip files. If your server uses a different file extension for backups, you can customise the file pattern in the advanced settings. Separate multiple patterns with commas.
Setting up Server Pull: Live Server Folder mode
Live Server Folder mode is designed for hosting providers that only give you SFTP/FTP access to the live server files — not to a separate backup folder. Instead of downloading a backup file, BedrockMap connects during a scheduled server shutdown window and downloads the raw world folder directly.
Important: Your server must be completely stopped during the sync window. Downloading world files from a running Minecraft server will result in corrupted data. This mode is only suitable if you have a daily scheduled restart or maintenance window.
When to use this mode
- Your hosting provider only gives you SFTP/FTP access to the live server files (no backup folder)
- Your server doesn't create backup files, or the backups are stored somewhere inaccessible via SFTP/FTP
- You have a daily scheduled restart or maintenance window when the server is stopped
Setup steps
- Navigate to your world's Dashboard → Auto-Sync tab
- Select the Server Pull (SFTP/FTP) sub-tab
- Choose your Protocol (SFTP, FTP, or FTPS) and fill in your connection details (host, port, username, password) as described in the Backup File section above
- Under Source Type, select "Live server folder"
- Set the Remote Path to the directory that contains your Minecraft world folder(s). Common paths:
# Bedrock Dedicated Server /bedrock-server/worlds # Java Fabric/Vanilla server /minecraft # Pterodactyl-based hosts /home/container
- Click Test Connection. BedrockMap will scan the remote directory and list any Minecraft worlds it finds. Each detected world shows its name, folder name, and edition (Bedrock or Java).
- If one world is found, it is auto-selected
- If multiple worlds are found, click the one you want to sync
- If no worlds are found, check the remote path — it should point to the folder containing the world, not the world folder itself
- Set the shutdown time — the time your server is reliably stopped every day. The time picker is shown in your local timezone, with the UTC equivalent displayed alongside. BedrockMap will connect shortly after this time to download the world.
- Set the buffer time — how long to wait after the shutdown time before connecting. Minecraft servers shut down almost instantly, so 1 minute is usually enough.
- Click Save Configuration
How it works: At the scheduled time, BedrockMap connects to your server, checks if the world's level.dat file has changed since the last sync, and if so, recursively downloads the entire world folder using multiple parallel connections for speed. Only essential files are downloaded — resource packs, behavior packs, player data, and other non-map files are skipped automatically.
Supports both editions: Live Folder mode works with both Bedrock and Java (Fabric/Vanilla) worlds. The test connection will automatically detect the edition based on the world's folder structure.
Setting up API Push
API Push uses a script running on your server that finds the latest backup and uploads it to BedrockMap. This is ideal when you have SSH access and can set up a scheduled task.
Step 1: Generate an API key
- Navigate to your world's Dashboard → Auto-Sync tab
- Select the API Push sub-tab
- Click Generate API Key
- Your API key and a one-line install command will be displayed
Security: Your API key grants upload access to this world. Treat it like a password — do not share it publicly or commit it to version control. If compromised, revoke it immediately from the dashboard and generate a new one.
Step 2: Install the sync script
Copy the one-line install command from the dashboard and run it on your server via SSH. The installer will:
- Create a
~/.bedrockmap/config directory - Save your API key and endpoint URLs to a config file
- Download the sync script to
~/bedrockmap-sync.sh(Linux/Mac) orbedrockmap-sync.ps1(Windows) - Make the script executable
Linux/Mac installer:
curl -sSL "https://bedrockmap.online/api/sync/setup/YOUR_TOKEN" | bash
Windows (PowerShell) installer:
irm "https://bedrockmap.online/api/sync/setup/YOUR_TOKEN?platform=windows" | iex
Note: The install command contains a one-time setup token that expires after 15 minutes. If it expires, click Generate Install Command on the dashboard to get a new one.
Step 3: Test the script
Run the script manually first to make sure everything works:
~/bedrockmap-sync.sh /path/to/your/backup/folder
The script will:
- Find the newest
.mcworldor.zipfile in the folder - Check if the file is still being written (waits 3 seconds to verify the file size is stable)
- Check locally if the file has changed since the last sync
- Ask the BedrockMap server if an upload is needed (preflight check)
- Upload the file if everything passes
A successful run looks like:
[2025-01-15 09:35:12] BedrockMap Auto-Sync starting... Backup folder: /home/amp/.ampdata/instances/MyServer/Backups Latest backup: MyWorld-2025-01-15.zip (788.68 MB) Modified: 2025-01-15 09:00:05 Checking with BedrockMap server... Uploading MyWorld-2025-01-15.zip (788.68 MB)... [OK] Upload complete! Render has been queued. [2025-01-15 09:35:45] Sync finished successfully.
If the file hasn't changed, you'll see:
[SKIP] File unchanged since last sync (local check).
Using sudo for protected backup folders
If the backup folder is owned by a different user (common with game panels like CubeCoders AMP), you'll need to run the script with sudo:
sudo ~/bedrockmap-sync.sh /path/to/backup/folder
The script automatically detects when running via sudo and reads the config from the original user's home directory (not root's).
Automating with cron (Linux) or Task Scheduler (Windows)
Once you've confirmed the script works by running it manually, set up automatic scheduling:
Linux/Mac: cron job
Open your crontab editor:
crontab -e
Add one of these lines:
# Run every hour 0 * * * * ~/bedrockmap-sync.sh /path/to/backups >> ~/bedrockmap-sync.log 2>&1 # Run every 6 hours 0 */6 * * * ~/bedrockmap-sync.sh /path/to/backups >> ~/bedrockmap-sync.log 2>&1 # Run once daily at 10:00 AM (server local time) 0 10 * * * ~/bedrockmap-sync.sh /path/to/backups >> ~/bedrockmap-sync.log 2>&1
If the backup folder requires sudo:
# With sudo (use full path to script) 0 * * * * sudo /home/youruser/bedrockmap-sync.sh /path/to/backups >> /home/youruser/bedrockmap-sync.log 2>&1
Note: The >> ~/bedrockmap-sync.log 2>&1 part saves output to a log file. This is helpful for debugging if something goes wrong. You can check it with tail -50 ~/bedrockmap-sync.log.
Windows: Task Scheduler
- Open Task Scheduler (search for it in the Start menu)
- Click Create Basic Task
- Give it a name like BedrockMap Auto-Sync
- Set the trigger (e.g. Daily, or at a specific time)
- For the action, select Start a program
- Set the program to:
powershell.exe - Set the arguments to:
-ExecutionPolicy Bypass -File "C:\Users\YourName\bedrockmap-sync.ps1" "C:\path\to\backups" - Click Finish
Tip: It's safe to run the script more frequently than your backups happen. The script has built-in deduplication — if the file hasn't changed since the last sync, it will skip the upload and exit immediately with no wasted bandwidth.
Monitoring and troubleshooting
You can monitor your sync status from two places:
- Auto-Sync tab on your world's dashboard — shows the last sync status, recent sync history, and any error messages
- Sync log file (API Push only) — if you set up logging in your cron job, check
~/bedrockmap-sync.log
The sync history table shows each sync attempt with a colour-coded status:
- Success — file uploaded and render queued
- Skipped — file unchanged since last sync, nothing to do
- Failed — something went wrong (hover for error details)
- In Progress — currently downloading/processing
Manual Sync
For Server Pull configs, you can trigger an immediate sync at any time using the Sync Now button on the Auto-Sync settings page. This bypasses the daily schedule and dedup checks — useful for testing your setup or forcing a re-render after configuration changes. The sync will be picked up by the worker within 5 minutes of clicking the button.
Common issues
Connection refused / timed out
Check that the host, port, and protocol are correct. Ensure your server's firewall allows inbound connections on the SFTP/FTP port. Many game panels use a non-standard port (not 22). If using FTP/FTPS, make sure you've selected the correct protocol — SFTP (port 22) and FTP (port 21) are completely different protocols.
Authentication failed
Double-check your username and password. Some server panels require a specific SFTP/FTP user that is different from your panel login.
No matching files found
The remote path may be incorrect, or no .mcworld / .zip files exist in the folder yet. Use the Test Connection button to verify the path and see what files are available.
Permission denied (API Push with sudo)
When running with sudo, use the full path to the script: sudo /home/youruser/bedrockmap-sync.sh rather than sudo ~/bedrockmap-sync.sh (the ~ expands to root's home when used with sudo in some environments).
File still being written
The script detected that the file size changed during a 3-second check window, meaning the backup is still in progress. The script will skip this run and try again next time. If this happens consistently, increase your check delay (SFTP) or schedule the cron job later (API Push).
Invalid API key or world not found (API Push)
The API key may have been revoked, or the world may have been deleted. Generate a new key from the dashboard and re-run the installer.
Daily render quota exceeded
Premium accounts have a daily render limit. If you've reached it, the sync will be skipped until the next day. Consider scheduling your sync to run only once per day.
Live Server Folder specific issues
level.dat not found
The remote path or selected world folder doesn't contain a valid Minecraft world. Check that the path is correct and that you selected the right world during the test connection step.
No worlds detected during test
The remote path should point to the folder containing your world folder(s), not the world folder itself. For Bedrock servers, this is typically the worlds directory. For Java servers, it's the server root where folders like world live.
Corrupted world / invalid LevelDB
This usually means the server was still running when BedrockMap downloaded the files. Downloading a Minecraft world while the server is running will almost always produce corrupted data. Make sure your server is completely stopped before the sync time.
World unchanged (skipped)
BedrockMap compares the level.dat modification time between syncs. If nobody has played since the last sync, the world won't have changed and the sync is skipped. This is normal and saves bandwidth. You can use the Sync Now button to force a download.
Security considerations
Auto-Sync handles sensitive credentials. Here's how they are protected:
- SFTP/FTP passwords are encrypted using AES-256-GCM with a per-encryption random salt and IV before being stored in the database. They are never stored in plain text.
- API keys (for API Push) are stored only on your server in the
~/.bedrockmap/configfile. BedrockMap stores a hashed version for validation. - Setup tokens (the one-line install command) expire after 15 minutes and can only be used once.
- Premium downgrade — if your Premium subscription expires, all sync configs are automatically deactivated and API keys are cleared.
Best practice: Create a dedicated SFTP/FTP user with read-only access to only the backup folder, rather than using your main server administrator account. This limits the scope of access if credentials were ever compromised. Where possible, prefer SFTP or FTPS over plain FTP for encrypted connections.
You're all set!
If you have any questions or run into issues, don't hesitate to reach out for support.
Browse more guides →