Automated bidirectional synchronization of Satisfactory blueprints with OneDrive, featuring version history, conflict resolution, and multi-device support.
๐ฎ Game: Satisfactory by Coffee Stain Studios
Satisfactory blueprints are not synchronized to Steam Cloud. This solution:
- Bidirectional sync between local Satisfactory folder and OneDrive
- Version history with up to 10 versions per file stored in backups
- Conflict resolution by keeping the newest file based on timestamps
- Multi-device support with file-centric tracking and global file state
- Enhanced deletion handling with immediate OneDrive cleanup and cross-device propagation
- Smart backup for all conflicts, overwrites, and deletions with comprehensive coverage
- Companion file coordination - .sbp and .sbpcfg files handled together
- Automatic OneDrive pinning to ensure files are always available offline
-
Bidirectional Sync Modes:
Bidirectional(default): Syncs in both directionsLocalToCloud: Only pushes local changes to OneDriveCloudToLocal: Only pulls OneDrive changes to local
-
Version History: Tracks up to 10 versions of each file with:
- Hash, timestamp, size, and device information
- Backup location for recovery
- Action type (overwrite, deletion, conflict)
-
Intelligent Conflict Resolution:
- Compares file timestamps when both changed
- Backs up the losing version before overwrite
- Preserves all file timestamps during copy operations
- Clear conflict logging with backup tracking
-
OneDrive Integration:
- Automatically pins folder for offline availability
- Checks pin status before setting to minimize overhead
- Optional flag to skip pinning if needed
-
Comprehensive Logging: Detailed sync operations log for troubleshooting
- Windows 10/11
- Windows PowerShell 5.1 (built into Windows 10/11)
- OneDrive configured and running
- Administrator privileges (for scheduled task installation)
- Satisfactory installed
-
Clone or download this repository
git clone https://github.com/dkmaker/Satisfactory-Sync-OneDrive.git cd Satisfactory-Sync-OneDrive
-
Run the installer as Administrator
# Open Windows PowerShell as Administrator # Set execution policy for current process (if needed) Set-ExecutionPolicy -ExecutionPolicy Bypass -Scope Process # Run the installer .\Install-SyncScheduledTask.ps1
-
That's it! The sync will run automatically:
- At user logon
- Every 10 minutes throughout the day
- Logs available at
%OneDrive%\Documents\Satisfactory\logs
OneDrive\Documents\Satisfactory\
โโโ metadata.json # Sync state and device tracking
โโโ blueprints\ # Synced blueprints
โ โโโ [Save Game Name]\ # Folder per save game
โ โโโ Blueprint1.sbp # Blueprint data
โ โโโ Blueprint1.sbpcfg # Blueprint config
โโโ blueprints_backup\ # Deleted file backups
โ โโโ [yyyyMMddHHmmss]\ # Timestamp folders
โ โโโ [Save Game Name]\ # Original structure preserved
โโโ logs\ # Sync logs
โโโ sync_[yyyyMMdd].log # Daily log files
-
Source Locations:
- Local:
%LocalAppData%\FactoryGame\Saved\SaveGames\blueprints\ - Cloud:
%OneDrive%\Documents\Satisfactory\blueprints\
- Local:
-
Bidirectional Sync Process:
- Scans both local and OneDrive folders
- Compares files using SHA256 hashes
- For conflicts (both changed): keeps newest based on LastWriteTime
- Backs up older versions before overwriting
- Preserves original file timestamps during all copy operations
-
Version History:
- Maintains up to 10 versions per file (configurable)
- Each version includes hash, timestamp, device, and backup location
- Older versions automatically pruned (FIFO)
-
Enhanced Deletion Handling:
- Detects deletions by comparing device's previous file list vs current scan
- Immediately removes deleted files from OneDrive with backup
- Handles companion files (.sbp/.sbpcfg) together during deletion
- Cross-device deletion propagation ensures consistency
- Supports file re-creation with same name (fresh lifecycle)
- All backups stored in
blueprints_backup/[timestamp]/folders
{
"version": "2.0",
"lastUpdated": "2025-01-24T10:00:00Z",
"files": {
"First Factory/Blueprint1.sbp": {
"fileId": "uuid-1234-5678-9abc",
"globalStatus": "active",
"deletedBy": null,
"deletedTimestamp": null,
"lastKnownHash": "SHA256...",
"devices": {
"DESKTOP-ABC123": {
"status": "active",
"hash": "SHA256...",
"lastModified": "2025-01-24T10:00:00Z",
"lastSeen": "2025-01-24T10:00:00Z"
}
},
"versions": [
{
"hash": "SHA256...",
"timestamp": "2025-01-24T10:00:00Z",
"device": "DESKTOP-ABC123",
"action": "create"
}
]
}
},
"devices": {
"DESKTOP-ABC123": {
"lastSync": "2025-01-24T10:00:00Z",
"lastKnownFiles": {
"First Factory/Blueprint1.sbp": "SHA256..."
}
}
}
}# View task status
Get-ScheduledTask -TaskName 'SatisfactoryBlueprintSync' | Get-ScheduledTaskInfo
# Run sync manually
Start-ScheduledTask -TaskName 'SatisfactoryBlueprintSync'
# Disable sync temporarily
Disable-ScheduledTask -TaskName 'SatisfactoryBlueprintSync'
# Re-enable sync
Enable-ScheduledTask -TaskName 'SatisfactoryBlueprintSync'
# Uninstall scheduled task
Unregister-ScheduledTask -TaskName 'SatisfactoryBlueprintSync' -Confirm:$falseTo run the sync manually without the scheduled task:
# Default bidirectional sync
powershell.exe -ExecutionPolicy Bypass -File "C:\Scripts\SatisfactorySync\Sync-SatisfactoryBlueprints.ps1"
# Push only (local to cloud)
powershell.exe -ExecutionPolicy Bypass -File "C:\Scripts\SatisfactorySync\Sync-SatisfactoryBlueprints.ps1" -SyncMode LocalToCloud
# Pull only (cloud to local)
powershell.exe -ExecutionPolicy Bypass -File "C:\Scripts\SatisfactorySync\Sync-SatisfactoryBlueprints.ps1" -SyncMode CloudToLocal
# Skip OneDrive pinning
powershell.exe -ExecutionPolicy Bypass -File "C:\Scripts\SatisfactorySync\Sync-SatisfactoryBlueprints.ps1" -SkipOneDrivePinning
# Custom version history limit (default is 10)
powershell.exe -ExecutionPolicy Bypass -File "C:\Scripts\SatisfactorySync\Sync-SatisfactoryBlueprints.ps1" -MaxVersionHistory 20
# Or use the VBScript wrapper for silent execution
wscript.exe "C:\Scripts\SatisfactorySync\Sync-SatisfactoryBlueprints.vbs"- Check task status:
Get-ScheduledTask -TaskName 'SatisfactoryBlueprintSync' - Review logs at:
$env:OneDrive\Documents\Satisfactory\logs\ - Verify Windows PowerShell is available:
powershell.exe -Command "Get-Host"
- Check source folder exists:
%LocalAppData%\FactoryGame\Saved\SaveGames\blueprints\ - Ensure OneDrive is running and syncing
- Review metadata.json for device entries
- Check file permissions on both source and destination
- This is prevented by the metadata tracking system
- Check metadata.json to ensure your device is properly registered
- Files are moved to blueprints_backup with timestamps, not deleted
- Satisfactory is a first-person open-world factory building game by Coffee Stain Studios
- Official Website
- Steam Store Page
- Epic Games Store
- Satisfactory Wiki
- Blueprints require the Mark 1 Blueprint Designer to be unlocked in-game
- Each blueprint consists of two files:
.sbp(data) and.sbpcfg(config) - Save game folders are created automatically as needed
- Empty folders are cleaned up automatically
- The scheduled task uses Interactive logon with VBScript wrapper for completely silent execution
Contributions are welcome! Please feel free to submit a Pull Request.
This project is licensed under the MIT License - see the LICENSE file for details.
- Coffee Stain Studios for creating Satisfactory
- The Satisfactory community for blueprint sharing inspiration
- Microsoft for PowerShell and OneDrive integration
This tool is not affiliated with, endorsed by, or connected to Coffee Stain Studios or Satisfactory. Satisfactory is a trademark of Coffee Stain Studios AB.