-
Choose where to sync
Add every place 3DSync should sync with. With more than one, a save changed in one place reaches all the others in the same sync.
To change a file you made before: its remotes, folders and file types fill this page. The file is read here and never leaves your browser.Your remotes
None yet — add one below.
Add a remote
Dropbox Log in with your Dropbox accountGoogle Drive Log in with your own Google Cloud appSMB file server NAS or Windows shareFTP / FTPS Any FTP server, TLS where offeredWebDAV Nextcloud, ownCloud, NASTwo-way sync, the same as the Google Drive backend. Please report problems at github.com/vllni/3DSync/issues.
verified_userTo keep 3DSync away from the rest of your Dropbox, use expert mode with your own app of the App folder type: it then sees only its own folder. You can cut it off any time under Connected apps.
Login with Dropbox
Leave blank to use the root of My Drive. To scope to a subfolder, open it in Google Drive and paste the URL or just the ID — drive.google.com/drive/folders/THIS_PARTadd_to_drive Login with Google Driveverified_user3DSync is given access to your whole Drive. If the 3DS or its SD card goes missing, remove that access under Third-party apps & services — the token stops working at once, and nothing else changes.
In Google Cloud Console, create a project, enable the Drive API, and create an OAuth 2.0 Web application credential. Add https://3dsync.vllni.dev/configurator.html as an authorized redirect URI. The refresh token is stored in the config so you won't need to log in again.
To get the JSON file:
- Open APIs & Services → Credentials
- Click the name of your OAuth 2.0 Client ID to open it
- In the Client secrets panel, click + Add secret
- The new secret row shows a ↓ download icon — click it immediately (it disappears after you leave the page)
- Import the downloaded file with the button above, then disable your old secret
A NAS or a shared folder on a Windows PC, over SMB2/SMB3 — what modern NAS boxes and Windows accept by default. SMB1 does not need to be re-enabled.
verified_userBest is a user of its own for 3DSync that can reach only this share, rather than your own or the admin account — then this password opens nothing else.
IP address or host name, e.g. 192.168.1.10. A path like \\nas\saves is split up for you.The share name, without slashesOnly for an account in a Windows domaine.g. 3DS; blank for the top of the shareinfo_outline A web page cannot open SMB connections, so these settings can only be tried from the 3DS: copy the file over and press Y for a debug sync — it shows the connection step by step, and you can save it as a log.Any FTP server, with TLS where the server offers it. SFTP (over SSH) is a different protocol and is not supported: the 3DS build of libcurl cannot speak it.
verified_userBest is an FTP user of its own for 3DSync, locked to the save folder, rather than an account that can log in to the server itself.
IP address or host name. ftp://host:2121 works too.21, or 990 for implicit TLSBlank for anonymouse.g. /home/me/3ds; blank for the directory the server logs you into. Required for anonymous FTP: the folder uploads are allowed in, often pubinfo_outline A web page cannot open FTP connections, so these settings can only be tried from the 3DS: copy the file over and press Y for a debug sync — it shows the connection step by step, and you can save it as a log.Nextcloud, ownCloud, or any NAS with WebDAV switched on.
verified_userUse an app password, not your account password: in Nextcloud, Settings → Security → Devices & sessions. It can be revoked on its own, and it does not unlock your account's settings.
The folder 3DSync should work in. For Nextcloud: https://cloud.example/remote.php/dav/files/USERNAME/Use an app password where the server offers onelock_outline Everything here stays in this browser tab, and is forgotten when you close it. Nothing is sent anywhere except, when you press Test connection, straight to the service being tested.
The downloaded 3DSync.ini holds your password or token in plain text. The first time 3DSync starts with it, it seals them to that console: the file then only works on that 3DS, and is useless to anyone who copies the SD card. Until then, treat the file like the password itself — copy it straight to the SD card and delete the download. -
Configure folders to sync
Presets
Custom Paths
Path — absolute path on the 3DS SD card to sync, POSIX style. Examples: /3ds/MyApp, /roms/nds
Name — destination folder on the remote. Use / to create nested folders. Examples: Saves, roms/nds, 3DS/Checkpoint
Subdirs — when checked, all subdirectories are synced recursively and their structure is preserved on the remote (e.g. /saves/Game/001.sav becomes Name/saves/Game/001.sav). Uncheck to sync only the files directly inside the specified folder, ignoring subdirectories entirely.
Both ways — full bidirectional sync. The 3DS compares each file against a local manifest (
/3ds/3DSync/manifest.json) and against the remote copy, then uploads, downloads, or prompts for conflict resolution as needed.
Upload only — one-way: the 3DS copy is uploaded and nothing is ever downloaded. Useful for backups. A remote with the Source role is left out: 3DSync never writes to it.If Name is left empty the files go directly into the top of the remote (the Drive Folder ID, the SMB folder, the FTP base directory, the WebDAV URL).
Remotes per folder
Every remote syncs every folder; untick one to leave it out there.
File Types
e.g. sav, bin; blank to sync all files. Applies in both directions.A folder can have its own list instead. Leave it blank to use the one above; * syncs every file in that folder.
-
Download config file