Quantum Break

Quantum Break

Not enough ratings
Simple powershell script that will periodically save your game as you play
By Thrawn
I just played (and beat) this game for the first time. It was... mostly enjoyable, but as I was learning how to use the Vision power to look for the secrets and collectibles, I definitely missed a few in the early levels. When I realized that since the game doesn't have the ability to use save slots, I got frustrated when I realized that I'd need to replay an entire "Act X, Part Y" level in order to go back and collect the thing that I missed.

I played Control when it came out in 2020, and wow the open world idea is way better to have collectibles in. For a completely linear game like Quantum Break, I didn't like being led through a level, miss out on a collectible in the room/area behind me, and have zero way to get back and keep looking for it if I accidentally triggered a story-progressing cutscene as I was running around and searching for stuff.

So! I wrote a simple powershell script that can run on any version of Windows, to automate backing up the game's save files - if they're in their default locations, that is.
5
   
Award
Favorite
Favorited
Unfavorite
Background and getting started
Steam doesn't let me upload a .PS1 file for you to use, so take the code from the last section of this guide, copy it all into a new file - name it whatever you want, like QuantumBreakSaver.ps1 but it really doesn't matter as long as it ends in PS1. As the instructions in the code say, all you need to do is right click the PS1 file and run it, before you want to start playing the game.

If you find you missed something in a part of the game and want to go back to try it over again to find the collectible, refer to the timestamps that each folder is labeled with. You'll usually want to go back 5 or 10 minutes or so. By default, the code will make a new copy of the game's save folder every 5 minutes but if you want to adjust that (to have more or less granularity) simply adjust the "Start-Sleep" value on line 18 to a new number, in seconds, that you want the script to wait before making a new backup copy.

Enjoy!
Disclaimer - be cautious with code!
You should always be very suspicious when random "helpful people" on the internet tell you to "save this code as a file, then run it on your computer!" You have every right to be suspicious of me, too!

That's why I put comments (with # marks in front of it) before every section of script code. You should feel absolutely justified in looking what commands like "Copy-Item" and "Start-Sleep" and "Get-Process" do; you do not want to just take people's words that their code is safe.

Thankfully for you, this is a VERY simple powershell script. It's less than 10 lines of actual script code. It won't take you too long to look it up.
Changelog
1.1 - 2024-01-27
-brought to my attention that I was accidentally calling my own steam profile in the code, new patch that looks for the game file folder that has been edited most recently. This is in case you have more than one person sharing the same Windows account (so they'll have the same root save directory) but have separate Steam profiles. My new code just grabs the numeric value for the Steam Profile that has the newest saves in it and backs them up.

1.0 (Original Release) - 2022-08-21
-initial creation with a bug that I address in 1.1 above
powershell script code (save this section's text as a PS1 file)
#Simple Powershell script to back up Quantum Break save game files #Instructions: #Simply right click this file, as a .ps1 file, and select "run with powershell" #Then launch Quantum Break via Steam or however (as long as it uses the executable "quantumbreak.exe" it will work #This part of the script figures out what your user directory is named, #using code to find what directory the newest file can be found in #(in case you have more than one Steam Profile access the same LocalAppData Folder) $newestSave = (get-childitem $env:localappdata\quantumbreak\*\savegames\savegames\*) | sort LastWriteTime | select -last 1 $latestSteamProfile = (($newestSave.DirectoryName) -split '\\')[-3] #this part just makes the script wait 2 minutes before checking if the game is running Start-Sleep -s 120 -Verbose #This do loop section checks if the game is running, and if it is, copies the variable "latestSteamProfile" from the above section to a new dated folder to the location your .ps1 file was running from do{ $running = Get-Process quantumbreak -ErrorAction SilentlyContinue if ($running) { Copy-Item -Recurse -Path "$($env:LOCALAPPDATA)\QuantumBreak\$latestSteamProfile\savegames\savegames" -Destination "$($PSScriptRoot)\$(Get-Date -Format "yyyy-MM-dd HHmm")\" #Now, wait for 5 minutes before doing it again... unless... Start-Sleep -s 300 } #...If powershell detects the game's process is not running at the end of that 5 minutes, end the 'do loop' which ends the script. } while ((Get-Process quantumbreak -ErrorAction SilentlyContinue) -ne $null)
6 Comments
Thrawn  [author] 27 Jan, 2024 @ 8:06pm 
okay, fixed with v1.1 - new changelog section added
Thrawn  [author] 27 Jan, 2024 @ 7:10pm 
Oh gosh, @hampster-style - I think you might be right? My gosh, I really thought that "19631580" was just an internal game ID but you must be right, https://www.pcgamingwiki.com/wiki/Quantum_Break#Save_game_data_location does just list the shorter file path. I'll try to get this updated right away.:steamfacepalm:
Hampster-Style 12 Oct, 2023 @ 12:34am 
Most people running powershell scripts probably already know this but for those having trouble getting this to work the "Copy-Item" line has a user specific number in the path. In this example it is 19631580 but will be different for other users. You can find yours by browsing to that save game folder or by looking in the "userdata" folder inside the steam directory.
Thrawn  [author] 11 Jun, 2023 @ 10:39am 
You're too kind; it's a very simple script - I saw a problem that annoyed me, and I wanted to try to make a hacky workaround to maybe help people be less frustrated than I was!
mbnq 11 Jun, 2023 @ 9:28am 
Thats a very nice script :)
bigwillyshakes 20 Mar, 2023 @ 10:47am 
very cool