SYNCONE

BETA

Play on a shared save without anyone falling behind. SyncOne syncs your group’s save via the cloud: when you progress solo, push to the server; when your friends come back, they’re notified and can pull your progress with one click—so everyone stays on the same page.

WHAT IS SYNCONE?

SyncOne is a desktop app that keeps your Schedule I save files and mods synced to a shared cloud – e.g. Supabase or a folder synced with Google Drive.

Instead of sending saves back and forth or depending on one person’s PC as host, you upload the latest save to the cloud when you’re done – and next time anyone opens SyncOne, the newest version is fetched automatically. So the whole group is always on the same page.

Windows may warn that the file is unsafe because it doesn't know the developer. You can run it anyway—the source code is available online, so you can review or scan it if you like.

HOW IT WORKS

1

SET PATHS

Set your Save folder (Schedule I Saves), Mods folder, and your cloud – either Supabase (recommended) or a folder that syncs with Google Drive / OneDrive.

2

AUTO-FETCH ON STARTUP

When you open SyncOne, it automatically checks if there’s a newer save or mods in the cloud – and fetches them if so.

3

UPLOAD WHEN YOU’RE DONE

After playing, upload to the cloud (Save, Mods, or both). Then everyone else has the latest version next time they start SyncOne.

SETUP GUIDE

After installing SyncOne, follow these steps to point it at your Save/Mods folders and your cloud (Supabase).

Step 1: Find your Save folder

Follow these steps to locate your Schedule I save folder and set it in SyncOne.

  1. Press Windows + R and type %appdata%, then press Enter.
  2. Click on AppData in the path (breadcrumb bar).
  3. Go to LocalLow.
  4. Click on TVGS.
  5. Select the save you want to connect to SyncOne and open that folder. Create a backup of this folder and store it somewhere safe—in case a friend accidentally pushes the wrong save.
  6. Copy the path from the address bar in File Explorer.
  7. Paste that path into the Save file path field in SyncOne.
  8. Click Browse to set the mod folder path.
  9. Navigate to your Schedule I game folder: Steam\steamapps\common\Schedule I and select the mods folder.

Mods: Remember to download MelonLoader and set it to 0.7.0—it’s the only stable version.

Press Windows + R and type %appdata%

1. Press Windows + R and type %appdata%

Click on AppData in the path

2. Click on AppData in the path

Go to LocalLow

3. Go to LocalLow

Click on TVGS

4. Click on TVGS

Select your save folder and create a backup

5. Select the save folder (create a backup first)

Copy the path from the address bar

6. Copy the path from the address bar

Paste the path into SyncOne

7. Paste the path into the Save file path in SyncOne

Click Browse to find mod folder

8. Click Browse to find the mod folder

Navigate to Schedule I mods folder in Steam

9. Go to Steam\steamapps\common\Schedule I and choose the mods folder

1 / 9

Step 2: Supabase setup

Follow these steps to create a Supabase project, get your API key and URL, create a storage bucket, and enter everything in SyncOne.

  1. Go to supabase.com.
  2. Create an organization—you don’t need a specific name, use whatever you like.
  3. Set up credentials (you won’t really need these later).
  4. Hover the left menu and go to Project settings.
  5. In Project settings, go to APIKeys (legacy)Reveal secret → copy the secret key.
  6. Paste the secret key into SyncOne.
  7. Go back to Supabase, hover the left menu and go to Storage, then click Create bucket.
  8. Create the bucket—the name can be whatever you like (e.g. saves is easy to type). Remember to turn “Public bucket” on.
  9. Enter the bucket name in SyncOne.
  10. Go back to Supabase, hover the left menu and click IntegrationsData API.
  11. Copy the API URL.
  12. Paste the URL into SyncOne.
Go to supabase.com

1. Go to supabase.com

Create organization

2. Create an organization (any name)

Set up credentials

3. Set up credentials

Go to Project settings

4. Hover left menu → Project settings

API Keys legacy - copy secret key

5. API → Keys (legacy) → Reveal → copy secret key

Paste secret key into SyncOne

6. Paste the secret key into SyncOne

Storage - Create bucket

7. Storage → Create bucket

Create bucket, enable public

8. Create bucket (turn Public bucket on)

Insert bucket name in SyncOne

9. Enter bucket name in SyncOne

Integrations - Data API

10. Integrations → Data API

Copy API URL

11. Copy the API URL

Insert URL into SyncOne

12. Paste the URL into SyncOne

1 / 12

Step 3: How it works

Once paths and Supabase are set, use Save settings and Fetch/Upload to stay in sync with your group.

  1. When you click Save settings, SyncOne shows whether you have the newest save locally or on the cloud—depending on whether you're a first-time user or someone connecting to an existing sync. Click Fetch or Upload depending on your situation.
  2. When you're done playing, upload your new save to the sync. Everyone else will be notified that there's a newer version the next time they open SyncOne (it refreshes every 30 seconds if they have it open). You can also click Refresh status to force a refresh.
  3. A failsafe prevents you from accidentally uploading a save that's behind: the app checks the server file's progress before uploading. If the file you're uploading has less progress (by Lifetime earnings), it will warn you. The same check applies when fetching—you're warned if the save you're fetching is further behind than your current local save.
Save settings – Fetch or Upload based on your scenario

1. Save settings: Fetch or Upload based on whether you have the newest locally or on cloud

Upload when done – others get notified; Refresh status

2. Upload when done playing; others are notified. Refresh status refreshes every 30s or force it

Failsafe warning – upload/fetch behind progress

3. Failsafe warns if you upload or fetch a save that's behind (by Lifetime earnings)

1 / 3

GET STARTED

Download the SyncOne installer and run it on your PC. After setting up paths and cloud, you’ll run with the latest save every time.

KNOWN BUGS

Bug Status
Save sync overwrites your entire character (inventory, clothing, etc.) with the uploader’s In progress

When you pull the latest save, your entire character—inventory, clothing, and so on—is replaced by whoever uploaded last. I’m working on a solution that will exclude player data so your character stays unique. Quick fix: stash everything before you log off so it’s in the shared save.

Auto-pull on startup could overwrite your more progressive local save Done

Fixed in version: V1.6

When you opened SyncONE, it used to run a sync pull in the background without using the same safety guard as manual fetch. If the cloud had a newer save by file date but with lower progress (LifetimeEarnings), the app could overwrite your better local save without warning. Now the startup auto-pull goes through the same path as the manual “Fetch” button: the LifetimeEarnings check runs, and if the cloud save is behind your local one you get the warning modal and can cancel. On successful auto-pull the status shows “Auto pulled newest version on startup.”

FEATURES

Feature Date Status
Auto check for updates 18/02/26 Done

Added in version: V1.7.5

SyncONE checks for app updates when you open the app. If a newer version is available, you get a prompt to download and install it. The check runs in the background so the app loads immediately, and it times out after 5 seconds so slow networks don’t block startup.

Warn when overwriting a more progressive save 16/02/26 Done

Fixed in version: V1.2

Previously, the app did not check whether the local save you were about to push was actually further ahead in the game than the one on the server (even if the local file was newer). You could accidentally overwrite a more progressive save. SyncOne now warns you before pushing if your local save appears to be behind in progress—detected by comparing LifetimeEarnings on local vs. server. The same check applies when pulling: you are warned if your local save is ahead of the server, so you don’t accidentally replace it with an older one.

Push Save and Mods individually 16/02/26 Done

Fixed in version: V1.2

You can now upload Save and Mods separately. Use the cards in the app to push only Save, only Mods, or both, depending on what changed.

Fix: Players stuck on "Syncing" when joining synced save 17/02/26 Done

Fixed in version: V1.4

Addresses a multiplayer sync issue where players joining a synced save could get stuck on "Syncing" screens. SyncOne now injects HasExitedRV.json into saves after pulling to reduce the likelihood of this issue. Troubleshooting documentation has also been added.

Save name shows sync date and time 17/02/26 Done

Added in version: V1.5

When you fetch or push a save, SyncOne updates the in-game save name (the one you see in Schedule I’s load menu) to Synced – YYYY-MM-DD HH:MM. So you can tell at a glance whether you’re on the right synced save when opening the game.

Version number in app header 17/02/26 Done

Added in version: V1.5

The app header now shows the real build version (e.g. SyncONE v1.5.0) instead of a static label. So you always know which version you have installed and can confirm after downloading an update.

ABOUT THE DEVELOPER

fr11z1234
fr11z1234

Digital business optimization & AI Developer

I build side projects in my spare time—including a leasing platform, a free-to-use budget system, and an electrical cost app (made with a partner). SyncOne is one of them.

Most of my repos are private. Find me on GitHub:

github.com/fr11z1234