Jump to content
Dwarden

How to change Arma 3 branches between STABLE & DEVELOPMENT versions @STEAM client

Recommended Posts

Since I'm lately switching back and fourth between Stable and Dev quite often it really annoys me that I always have to load my old backups and reinstall them in Steam...

Why not creating a separate "Game entry" in the Steam library like they did with Arma2 OA and Arma2 OA Beta?

Share this post


Link to post
Share on other sites
Since I'm lately switching back and fourth between Stable and Dev quite often it really annoys me that I always have to load my old backups and reinstall them in Steam...

Why not creating a separate "Game entry" in the Steam library like they did with Arma2 OA and Arma2 OA Beta?

Using TonyGrunt's method there's no "loading old backups and reinstalling them in Steam", just renaming a couple of folders and relaunching Steam. Generally Stable doesn't even have any updates to install after doing so, Dev obviously does as it's updated quite often but doesn't need to download and install anything more than it would have if I'd stayed on Dev.

I agree it would be easier if there were two separate entries in Steam but it's not that big a deal. I can even switch between launching either Stable or Dev without renaming the folders by pointing PWS to the relevant folder, as Steam doesn't see which one I'm launching, only which one is currently in the SteamApps folder, although this means if I'm on Stable and launch Dev then Dev won't be updated.

Share this post


Link to post
Share on other sites

Thanks to Dwarden's mention, there is now a Release Candidate (RC) branch, which unlike dev branch does require a 'beta key'; the "purpose of the branch is full gap between DEV and STABLE branch for testing full data and binaries entering STABLE (while DEV may contain data and code which will not enter the next STABLE (yet))", and further details and how-to are at the link.

Share this post


Link to post
Share on other sites

Is anyone currently using the switching method mentioned above? Successfully?

I've tried it a few times but every time after I've switched the folders and open Steam, it instantly deletes a large amount of unmatching files and starts downloading multiple GBs. Even when I immediately change the branch after opening Steam.

If I open Steam in offline-mode, so that it won't update, I can't change the beta option in the properties.

Share this post


Link to post
Share on other sites
Is anyone currently using the switching method mentioned above? Successfully?

I've tried it a few times but every time after I've switched the folders and open Steam, it instantly deletes a large amount of unmatching files and starts downloading multiple GBs. Even when I immediately change the branch after opening Steam.

If I open Steam in offline-mode, so that it won't update, I can't change the beta option in the properties.

If you are talking about my method, I use it and except having to download any updates like everyone else there is no problem. You mention changing branch from the beta option, you shouldn't have to do it as the branch option is saved in the appmanifest_107410.acf file. You need one appmanifest_107410.acf file for the stable folder and one for the beta folder and when changing between beta/stable make sure you don't mix them.

Share this post


Link to post
Share on other sites
If you are talking about my method, I use it and except having to download any updates like everyone else there is no problem. You mention changing branch from the beta option, you shouldn't have to do it as the branch option is saved in the appmanifest_107410.acf file. You need one appmanifest_107410.acf file for the stable folder and one for the beta folder and when changing between beta/stable make sure you don't mix them.

You wouldn't believe how stupid I feel now.

I didn't realize Steam checks the branch from appmanifest...

I wish I had asked this months ago.

Thank you. :D

Share this post


Link to post
Share on other sites

I find myself having to switch between dev branch and stable a bit lately, is there anyway to have both versions installed at once? Ideally with separate steam icons. Its quite irritating to have to download 1gb of data every time I want to switch.

Share this post


Link to post
Share on other sites
I find myself having to switch between dev branch and stable a bit lately, is there anyway to have both versions installed at once? Ideally with separate steam icons. Its quite irritating to have to download 1gb of data every time I want to switch.

This method works: http://forums.bistudio.com/showthread.php?149411-How-to-change-Arma-3-branches-between-STABLE-amp-DEVELOPMENT-versions-STEAM-client&p=2629204&viewfull=1#post2629204

I even made myself a little batch file for the renaming so it's just a one double-click for changing between branches.

Share this post


Link to post
Share on other sites
This method works: http://forums.bistudio.com/showthread.php?149411-How-to-change-Arma-3-branches-between-STABLE-amp-DEVELOPMENT-versions-STEAM-client&p=2629204&viewfull=1#post2629204

I even made myself a little batch file for the renaming so it's just a one double-click for changing between branches.

Can you make a video with the steps? many people will appreciate it. i am the first!

Thanks :)

Share this post


Link to post
Share on other sites
Or You could use the new tool by Tom_48_97 called Game Updater - it's part of Arma 3 Tools suite in development branch of the tools :icon_twisted:

must say its very welcome!

Share this post


Link to post
Share on other sites

Yesterday i find a much easier method.

-Switch to stable branch, wait for sync.

-Duplicate the Arma 3 folder in the .../Steam/SteamApps/common folder(e.g. The second should be Arma 3 stable. Now there should be .../Steam/SteamApps/common/Arma 3 and .../Steam/SteamApps/common/Arma 3 stable)

-Open steam cliend: Games->Add Non-Steam Game To My Library...->Browse

-Select Arma3.exe from the duplicated folder(e.g. .../Steam/SteamApps/common/Arma 3 stable)

-In the steam there should be two Arma 3

-Switch to the dev branch(it is only possible with the original.

If the Stable branch get update, you have have to switch back to Stable wait for sync and repeat the steps.

Share this post


Link to post
Share on other sites

I made this little script to switch between branches easily.

Being a very lazy person, I thought the previously suggested renaming of the folders each time manually was too much work. So I rather spend a couple of hours to automate it. :)

It's an old school batch file instead of some more sophisticated script, or an exe, because it's easy for anyone to review and make sure it's nothing malicious.

It only renames and moves some files and folders so there isn't really anything that could harm your computer or Arma. The worst it could do is to make Steam download some of the files again if something goes wrong.

It has a very basic error handling and will notify you if something doesn't go as planned. Always go check your Arma folder if the script gives you an error.

Function:

It closes Steam if it's running, renames Arma 3 folder and its copy and Arma's appmanifest file to switch between branches. And afterwards restarts Steam if it was running.

It also assumes you have some modfolders in your installation folder and you don't want to waste your disk space by having duplicates of them. So it moves them from the copied folder to the active folder. (By the way, you can also run mods from your c:\Users\<username>\Documents\Arma 3\ folder. That's the second default location for mods.)

Batch also moves your userconfig to the currently active game folder in case there's something you want to use in both branches. This folder contains the config files for your mods.

You can use it to switch between any two versions: the current stable & dev, stable & a release candidate, the current stable & a legacy version etc.

The first time setup may be lengthy but you only need to do it once.

Before use: (Please read and execute to the letter.)

1. Close Steam and Arma 3

2. Go to your Steam library folder and locate Arma 3 under the Common folder. The default Steam library location is C:\Program Files (x86)\Steam\SteamApps

3. Make a copy of the Arma 3 folder and rename the copy either

A) Arma 3-stable, if you're currently on stable branch, or

B) Arma 3-dev, if you're on Development branch.

4. If you don't mind having copies of the mod folders and wasting your disk space, move to Step 5.

In the duplicate folder you just made (Arma 3-dev or Arma 3-stable), delete all the folders that start with @ (These are assumed to be mods, which will be moved to the active folder when the batch runs.) and the userconfig folder.

If you don't delete these folders, in the future you will have to install and update the mods in both Arma 3 folders (the copy and the active one).

5. Under the SteamApps folder make a copy of the file named appmanifest_107410.acf and rename it either:

A) appmanifest_107410-stable.acf, if you're on Stable, or

B) appmanifest_107410-dev.acf for Dev branch

6. Start Steam and right-click Arma 3 and choose Properties.

On the BETAS tab, switch to the other branch. (development or NONE). Let Steam download and patch the game to the other build.

7. Copy and paste the script below to some text file editor like Windows Notepad.

Check and correct if needed the two locations in the set commands on the third and fourth lines.

The other is the location of the Steam executable and the other the location of the library, i.e. the SteamApps folder.

The defaults are (at least in Windows 7 64bit):

C:\Program Files (x86)\Steam\Steam.exe and

C:\Program Files (x86)\Steam\SteamApps

8. Save the file as a .bat file, for example "Arma3-switch branch.bat". You can save it anywhere, for example to desktop for easy access. This is the file you run to change between versions.

Usage:

1. Make sure that Steam isn't currently doing any downloading or updating, especially for Arma 3.

2. Double click the batch file.

It should pop up a message box if it ran successfully or encountered a known error.

The script is very error sensitive to files that are in use by other processes. So don't have any files in the Arma 3 folder open when you run it. Even by just having a file explorer window open in a folder might lock the files and the script fails.

If it doesn't give you any feedback, there's something very wrong. Go check your Arma 3 folders are allright.

The script:

@echo off 
echo The Arma 3 Branch Swinger by Greenfist
set SteamEXE=C:\Program Files (x86)\Steam\Steam.exe
set SteamAppsLocation=C:\Program Files (x86)\Steam\SteamApps
set MoveModsAndUserConfig=1

set /A x=3
SET okmessage=Branch Switcher:

if not exist "%SteamAppsLocation%\Common\Arma 3-dev" (
   if not exist "%SteamAppsLocation%\Common\Arma 3-stable" (
goto wrongfolders
)
)	

if not exist "%SteamAppsLocation%\Common\Arma 3" goto wrongfolders
tasklist /FI "IMAGENAME eq Steam.exe" 2>NUL | find /I /N "Steam.exe">NUL
if %ERRORLEVEL%==0 goto steamrunning
goto :rename

:steamrunning
set SteamRan=yes
echo Closing Steam...
if %x% lss 10 ("%SteamEXE%" -shutdown) else (goto CantClose)
timeout /t %x% /nobreak > NUL 
set /A x=%x%+3
tasklist /FI "IMAGENAME eq Steam.exe" 2>NUL | find /I /N "Steam.exe">NUL 
if %ERRORLEVEL%==0 goto steamrunning
timeout /t 1 /nobreak > NUL
goto rename

:CantClose
msg * "ERROR: Can't shut down Steam. Please close it manually."
goto end

:CantRename
msg * "ERROR: Can't rename folders. Check that the Arma 3 folders at %SteamAppsLocation% are ok and not in use."
goto end

:wrongfolders
msg * "ERROR: Can't find Arma 3. Check your folder settings in the .bat file."
goto end

:manifestwrong
msg * "ERROR: Appmanifest file is missing. Sorry!"
goto end

:rename
echo Renaming starts.

if exist "%SteamAppsLocation%\Common\Arma 3-dev" (
ren "%SteamAppsLocation%\Common\Arma 3" "Arma 3-stable" 
if not exist "%SteamAppsLocation%\Common\Arma 3-stable" goto CantRename
ren "%SteamAppsLocation%\Common\Arma 3-dev" "Arma 3" 
if not exist "%SteamAppsLocation%\Common\Arma 3" goto CantRename

ren %SteamAppsLocation%\appmanifest_107410.acf appmanifest_107410-stable.acf 
ren %SteamAppsLocation%\appmanifest_107410-dev.acf appmanifest_107410.acf 
if not exist "%SteamAppsLocation%\appmanifest_107410.acf" goto manifestwrong

move "%SteamAppsLocation%\Common\Arma 3-stable\@*" "%SteamAppsLocation%\Common\Arma 3\" 

if %MoveModsAndUserConfig%==1 (
	for /f "delims=" %%a in ('dir /b /ad "%SteamAppsLocation%\Common\Arma 3-stable\@*"') do (
		echo %%a
		if not exist "%SteamAppsLocation%\Common\Arma 3\%%a" (
			move "%SteamAppsLocation%\Common\Arma 3-stable\%%a" "%SteamAppsLocation%\Common\Arma 3"
			if errorlevel 1 SET okmessage=%okmessage% Warning: Couldn't move mod folder %%a
		)
	)
	if not exist "%SteamAppsLocation%\Common\Arma 3\userconfig" (
		move "%SteamAppsLocation%\Common\Arma 3-stable\userconfig" "%SteamAppsLocation%\Common\Arma 3"
	)
)

set okmessage=%okmessage% Switched to Development Branch 
) else (
ren "%SteamAppsLocation%\Common\Arma 3" "Arma 3-dev" 
if not exist "%SteamAppsLocation%\Common\Arma 3-dev" goto CantRename
   ren "%SteamAppsLocation%\Common\Arma 3-stable" "Arma 3" 
if not exist "%SteamAppsLocation%\Common\Arma 3" goto CantRename

ren "%SteamAppsLocation%\appmanifest_107410.acf" appmanifest_107410-dev.acf 
ren "%SteamAppsLocation%\appmanifest_107410-stable.acf" appmanifest_107410.acf 
if not exist "%SteamAppsLocation%\appmanifest_107410.acf" goto manifestwrong

if %MoveModsAndUserConfig%==1 (
	for /f "delims=" %%a in ('dir /b /ad "%SteamAppsLocation%\Common\Arma 3-dev\@*"') do (
		echo %%a
	    if not exist "%SteamAppsLocation%\Common\Arma 3\%%a" (
			move "%SteamAppsLocation%\Common\Arma 3-dev\%%a" "%SteamAppsLocation%\Common\Arma 3"
			if errorlevel 1 SET okmessage=%okmessage% Warning: Couldn't move mod folder %%a
		)
	)
	if not exist "%SteamAppsLocation%\Common\Arma 3\userconfig" (
		move "%SteamAppsLocation%\Common\Arma 3-dev\userconfig" "%SteamAppsLocation%\Common\Arma 3"
	)
)

set okmessage=%okmessage% Switched to Stable Branch 
)	

if defined SteamRan (
echo Restarting Steam... 
timeout /t 1 /nobreak > NUL	
start "Steam" "%SteamEXE%"
)
msg * %okmessage%
goto end

:end
echo Closing... 
timeout /t 1 /nobreak > NUL 
exit

Edited by Greenfist

Share this post


Link to post
Share on other sites
Yesterday i find a much easier method.

-Switch to stable branch, wait for sync.

-Duplicate the Arma 3 folder in the .../Steam/SteamApps/common folder(e.g. The second should be Arma 3 stable. Now there should be .../Steam/SteamApps/common/Arma 3 and .../Steam/SteamApps/common/Arma 3 stable)

-Open steam cliend: Games->Add Non-Steam Game To My Library...->Browse

-Select Arma3.exe from the duplicated folder(e.g. .../Steam/SteamApps/common/Arma 3 stable)

-In the steam there should be two Arma 3

-Switch to the dev branch(it is only possible with the original.

If the Stable branch get update, you have have to switch back to Stable wait for sync and repeat the steps.

I wouldn't say that's easier. As you say, anytime there's an update to Stable, you have to Switch the original copy from Dev to Stable, which could involve a large download and then again when switching back to Dev. The other method avoids this by allowing you to keep both Dev and Stable installed and updated separately and update either just by renaming a couple of folders.

---------- Post added at 16:24 ---------- Previous post was at 16:10 ----------

I made this little script to switch between branches easily.

Being a very lazy person, I thought the previously suggested renaming of the folders each time manually was too much work. So I rather spend a couple of hours to automate it. :)

It's an old school batch file instead of some more sophisticated script, or an exe, because it's easy for anyone to review and make sure it's nothing malicious.

It only renames and moves some files and folders so there isn't really anything that could harm your computer or Arma. The worst it could do is to make Steam download some of the files again if something goes wrong.

It has a very basic error handling and will notify you if something doesn't go as planned. Always go check your Arma folder if the script gives you an error.

Good job Greenfist, I'm sure this will help a lot of people.

The only thing I'd say is that you can simplify it a bit by creating an additional Steam Library just for ArmA3, e.g. D:\Games\ArmA3\, as then it creates a Steamapps folder there containing the appmanifest as well as the game files, so you can just rename that folder to Steamapps_dev or Steamapps_stable and switch between the two by renaming one or the other back to Steamapps. I don't think it's possible to move an already installed game with Steam though, so for people who've already installed ArmA3 it's probably easiest to use your script as it is.

Share this post


Link to post
Share on other sites

Good job Greenfist, I'm sure this will help a lot of people.

The only thing I'd say is that you can simplify it a bit by creating an additional Steam Library just for ArmA3, e.g. D:\Games\ArmA3\, as then it creates a Steamapps folder there containing the appmanifest as well as the game files, so you can just rename that folder to Steamapps_dev or Steamapps_stable and switch between the two by renaming one or the other back to Steamapps. I don't think it's possible to move an already installed game with Steam though, so for people who've already installed ArmA3 it's probably easiest to use your script as it is.

If you've already made a new library just for Arma, you can still use the script as is. Just put the correct location of your Steamapps in the "config" section.

Creating a new library was one thing I wanted to avoid with this script.

Share this post


Link to post
Share on other sites
If you've already made a new library just for Arma, you can still use the script as is. Just put the correct location of your Steamapps in the "config" section.

Creating a new library was one thing I wanted to avoid with this script.

Yeah probably, although my layout is a bit different as I have D:\Games\ArmA3 (the library folder I set for ArmA3) which contains Steamapps and Steamapps_dev or Steamapps_stable depending on which is active and within each of those is the relevant appmanifest file and common folder. If someone's starting from scratch and copies the folders and files as per your guide it should be fine though.

I'm finding Windows 8.1 doesn't like it when I try and rename the folders though, even from an elevated command prompt and throws up a "Access is denied" error. I've got UAC disabled by setting the slider to the bottom and setting EnableLUA=0 in the registry, as per this page http://blogs.msdn.com/b/hyperyash/archive/2012/07/18/disabling-user-account-control-in-windows-8.aspx so I'm not sure why it won't let me do it.

Share this post


Link to post
Share on other sites

You could just change your folder structure to match my script, if you want to change versions with a single double-click. ;)

Rename the Arma 3 folder in your Steamapps_dev\common to Arma 3-dev and move it to Steamapps\common\

And rename the appmanifest in Steamapps_dev to appmanifest_107410-dev.acf and move that to steamapps.

Yeah, the UAC may be a problem with .bat files and cmd. Even in Win7.

edit. I just realized that the default library location is in Program files, which is a protected folder in windows 7 by default. So my batch might not work if you lack the privileges.

editedit. Maybe you could make shortcut to the bat and set it to run as admin: right-click -> properties -> Advanced -> Run as administrator :confused:

Edited by Greenfist

Share this post


Link to post
Share on other sites

That game updater tool is pretty sweet. :D

No more will i need to dread changing branch!

Will you guys add the RC branch as an option later?

Ty Tom for the nice tool. :D

Share this post


Link to post
Share on other sites

Just read up about this game updater, looks nice and does the job, but still no parallel install in Steam. At least I don't have to download the whole game each time. Thanks!

Share this post


Link to post
Share on other sites
Or You could use the new tool by Tom_48_97 called Game Updater - it's part of Arma 3 Tools suite in development branch of the tools :icon_twisted:

how on earth to run it? i have stable in my normal place and then install the dev version in its own directory using game updater. but i get a blank error message every time i try and run armaGU for the arma tools directory?

Edited by twisted
Typo

Share this post


Link to post
Share on other sites
how on earth to run it? i have stable in my normal place and then install the dev version in its own directory using game updater. but i get a blank error message every time i try and tru armaGU for the arma tools directory?

same here, clicking OK in the blank popup i get another one saying "Cannot continue, Unable to determine Arma 3 GU path."

Share this post


Link to post
Share on other sites

Hi

Can some kind soul please post an "idiots guide to setting up the Game Updater" please?

Thanks

Share this post


Link to post
Share on other sites
same here, clicking OK in the blank popup i get another one saying "Cannot continue, Unable to determine Arma 3 GU path."

Same here, is there some other steps I am supposed to follow that are hidden behind some dark magic?

Share this post


Link to post
Share on other sites

Question for BIS:

Is it possible to make the development branch with @beta folder and arma3_beta.exe? In the @beta folder should be the changed pbo-s just like it was in Arma 2.

With this we can start the stable arma with arma.exe and the beta with arma3_beta.exe.

Just to be clear. The dev branch should be the same as the stable, but there should be the @beta folder and the arma3_beta.exe too as an extra content.

Edited by danczer

Share this post


Link to post
Share on other sites

Please sign in to comment

You will be able to leave a comment after signing in



Sign In Now

×