Garrison: Archangel

Garrison: Archangel

Not enough ratings
Missions Mode Fix/Save Backup Mod
By Jack_Spade
The preview build (under betas) is the best way to play the game, but it has a game-breaking bug: Your standing with the factions in missions mode is reset every time you restart the game. This makes it impossible to unlock new parts skins or attain the better endings. This fix, when complete, should be as seamless as possible. Steam will still track your time in game, achievements, etc.; your Library page will look normal. All that's changed is now Steam can't start the game without deleting the bugged save first, so it's forced to read from the good one.

If this mod helps you at all, contact me and let me know! It means more to me than...
Well, no. I'd actually like some money if you've got it. If not, gratitude is also nice.
I'm Jack_Spade on Steam, Jack_Spade#8144 on Discord. Also contact me if you'd like to make an installer, or show me how to do it. I'm new at this. :)
   
Award
Favorite
Favorited
Unfavorite
Step 1: Prep work
A) Create a folder in Documents named GABackup

B) Open regedit from the start menu and navigate to:

Computer\HKEY_CURRENT_USER\Software\Indigo Entertainment\Garrison: Archangel

Export this branch, and only it (make sure the “selected branch” box is checked), to your GABackup folder. This is your save, you've just backed it up.

C) Download Bat2exe, or similar freeware batch-to-executable converter, to your desktop. You can move it later, but you'll need it handy.

D) Create a new folder on your desktop called GAHack.

E) In your Steam library, right click on Garrison: Archangel, select Properties, click the Betas tab, and select the Preview build. Let it download, then close Steam. (Download/copy-paste this guide first.)
Step 2: Making Your .Exe
A) Open Notepad and paste the following:

@echo off
Start /MIN "Restart Game" "%ProgramFiles(X86)%\Steam\steamapps\common\GarrisonArchangel\GarrisonArchangelClient1_Data\StreamingAssets\RestartGame.bat" /C

B) Save as type “All files”, with the name GarrisonArchangelClient.bat
Save it in your GAHack folder on the desktop.

C) Navigate to:

%ProgramFiles(X86)%\Steam\steam\games

Find the Garrison: Archangel icon (the robot head), copy it, and paste it into your GAHack folder.

D) Run Bat2exe using GAHack as your source folder and the desktop as your target folder. Rename the resultant executable GarrisonArchangelClient.exe and drop it in the GAHack folder
Step 3: Almost There
A) Navigate to:

%ProgramFiles(X86)%\Steam\steamapps\common\GarrisonArchangel\GarrisonArchangelClient_Data\StreamingAssets

right click on RestartGame.bat and select Edit.

B) Delete everything, paste in the following, then save:

@echo off
timeout /T 1 /NOBREAK
taskkill /IM "" "%ProgramFiles(X86)%\Steam\steamapps\common\GarrisonArchangel\GarrisonArchangelClient.exe"
del /Q /F "%USERPROFILE%\Documents\IndigoGaming\GarrisonArchangel\External\CAMPAIGN_SAVE_0_DATA"

for /f "delims=" %%a in ('wmic OS Get localdatetime ^| find "."') do set DateTime=%%a

set Yr=%DateTime:~0,4%
set Mon=%DateTime:~4,2%
set Day=%DateTime:~6,2%
set Hr=%DateTime:~8,2%
set Min=%DateTime:~10,2%
set Sec=%DateTime:~12,2%

set GAB= GA_Backup__%Yr%-%Mon%-%Day%_(%Hr%-%Min%-%Sec%)

Reg export "HKCU\SOFTWARE\Indigo Entertainment\Garrison: Archangel" "%UserProfile%\Documents\IndigoGaming\GarrisonArchangel\External\%GAB%.reg"
Start "Garrison: Archangel" "%ProgramFiles(X86)%\Steam\steamapps\common\GarrisonArchangel\GarrisonArchangelClient1.exe" /C
exit

C) Navigate to:

%ProgramFiles(X86)%\Steam\steamapps\common\GarrisonArchangel

And right click on the GarrisonArchangelClient_Data Folder. Add a 1 after Client so it reads:

GarrisonArchangelClient1_Data

D) Rename GarrisonArchangelClient.exe to GarrisonArchangelClient1.exe
Right click on it, select properties, then Hidden and OK. It should disappear/fade out, depending on your settings. It's still there.

E) Leaving this folder open, also open your GAHack folder and copy your the .exe you made earlier into it. Now you should have two .exes in %ProgramFiles(X86)%\Steam\steamapps\common\GarrisonArchangel
One labeled GarrisonArchangelClient.exe, one labeled GarrisonArchangelClient1.exe (or invisible).
Cleaning up
A) Place a copy of RestartGame.bat into your GAHack folder (leave the original in Streaming Assets.) You should have two batch files, an icon, and an .exe in there.

B) Optionally, include a copy of these instructions as well.

C) Move your GAHack folder into your GABackup folder from the very beginning.

D) Start Steam. You can now safely run the game from the library, store page, or desktop shortcut without accidentally wiping your mission save.
Things you should know
  • That registry entry you saved at the beginning? That's your backup. Backup often. Restore a backup by right-clicking and selecting Merge. Be sure that “selected branch” is checked whenever exporting a save!
  • Every time you start the game, the previous save is backed up to %UserProfile%\Documents\IndigoGaming\GarrisonArchangel\External. There's no automatic deletion of old backups, but they're quite small, so the folder won't get very big for a very long time. You should delete the oldest saves every so often, when you're sure you don't need them.
  • This fix is better than my last one. You can run the game from the original library or store page, but there's a chance Steam will auto-update every week or so and wipe out your new executable. That's why I had you back it up, so you can copy-paste it back into place. If there's a real update, that will also wipe out your .exe-- but that should also fix the bug, so no loss there.
  • Don't verify integrity of game files! It forces an update. If you do, copy your .exe from the backup folder to the game install folder.

At its core, this fix is about deleting a file in
%USERPROFILE%\Documents\IndigoGaming\GarrisonArchangel\External
It should be called Campaign_SAVE_0_DATA

This file is created from the registry save if absent, and then used to overwrite the registry save if present. Normally this wouldn't be a problem, but there's a glitch and not all info is saved to this file properly. It has to be deleted before the glitch is copied to the registry save. If you somehow managed to run the game some other way (say, through the install folder or the Radeon overlay), then you have to delete this save before you run the game again. Run the game incorrectly twice in a row, and you've corrupted your save and have to merge your backup back into the registry.

To avoid this, run the game from within Steam or through the desktop shortcut. Even if you did it wrong once, this should fix it.

How it all works (if you're interested):
The source of the bug is the new save system. The game reads from the original save on the registry (eek!), then writes the contents to a file in My Documents. For whatever reason, the new save resets all faction standings to zero. The next time you load the game, it loads from the new save and uses it to overwrite the registry save. My fix is to delete the new save automatically every time the game is loaded, forcing the game to read from the registry and preventing it from being overwritten.

To that end:
  • I renamed the original game to keep Steam from starting it directly.
  • I renamed the Data folder so the game could still use it (has to have same name as game.)
  • The batch file originally restarted the game after graphics settings were changed; I modified it to delete the bugged save and then start the game with its new name.
  • The new .exe pretends to be the original for Steam, but it runs the batch file (which runs the game).
This seems convoluted, but this was the only way to
A) give Steam a program to start when you click the shortcut,
B) delete the bugged save when you restart after changing graphics settings,
C) allow my .exe to close before opening the game, so Steam doesn't think two instances are running, and
D) Avoid changing the original .exe in case there's some sort of version check or something for multiplayer.
I made it as simple as I could, and no simpler. :)

Once the game is running, it still communicates with Steam;
Steam will still track your time in game, achievements, etc. Your Library page will look normal.
All that's changed is now Steam can't start the game without deleting the bugged save first.

If my mod has helped you at all, contact me and let me know! It means more to me than...
Well, no. I'd actually like some money if you've got it. If not, gratitude is also nice.
Contact info is up top. Also contact me if you'd like to make an installer, or show me how to do it. I'm new at this. :)