clock for blog

Office Hours
Mon-Fri 09:00-21:00

Knowledgebase
How To: Configure games that store the same data in different folders (eg. various Steam Games)
Posted by Panagiotis Mantzouranis on 01 November 2012 05:31 PM

Some games (such as Half-Life type Steam games) install their data in a relative folder depending on various parameters (such as the account name). In an environment such as an internet station, where there are multiple in-house game accounts, this creates 4 distinct problems:

  • Multiple copies of the same game are generated on clients pcs, taking up space.
  • Personal users files move from folder to folder, making it difficult to retrieve and deploy.
  • Game updates re-download again and again, taking up time & bandwidth.
  • Centralised synchronisation becomes difficult.

In order to tackle these problems, we will use a windows feature integraded in Gizmo, called Junction Points or Junction Links. Keep in mind that the different relative folders the game might use must be known beforehand: This KB does not apply to randomly generated game folders.

You will also need to disable any online save mechanism, such as steam cloud, in order to force the game to save locally. For steam, login to each account, open each game properties (right click - properties) Updates uncheck steam cloud

Legend:

SteamAccountName = The username associated with a steam Account (used to login in Steam).

AccountID = A unique number associated with a Steam Account. Easiest way to locate is to delete all folders inside "Steam"\userdata\, login with the account and write down the folder name created inside Userdata.

GameID = A unique number associated with a Steam Game. Create a desktop shortcut by right clicking the game in steam, then edit the shortcut's properties. The GameID is in the shortcut's Target command line.

 

Example: "Batman: Arkham City (Steam version)"

This game and a few others store game progress inside C:\Program Files\Valve\Steam\userdata\AccountID\GameID\

AccountID is a number unique to each steam account, and GameID is a number unique to each Steam Game (the same number used to launch games with the -applaunch parameter). Because AccountID folder also contains account specific information, we cannot merge them together like the example above.

Instead we will be "merging" all GameID folders to one, which we will then use as PUF source.

1. Go to Tools Configure Client Tasks.

2. Create a new task - type: Junction (startupand enter the following information:

  • Junction directories - Paths of the relative folders, seperated by ; up to and including the GameID

        C:\Program Files\Valve\Steam\userdata\AccountID1\57400\;C:\Program Files\Valve\Steam\userdata\AccountID2\57400\;C:\Program Files\Valve\Steam\userdata\AccountID3\57400\

Replace AccountID1,AccountID2 etc with your Steam Account IDs

  • Target directory - Path of the unified folder we will be using. It can be any folder as long as it is not inside the Junction directories configured above. e.g

        C:\Program Files\Valve\Steam\userdata\UNIFIEDACCOUNTIDS\57400

  • Check the "Delete Junction Directory contents" box

3. Restart clients for changes to take effect.

Now you can use this centralised folder (C:\Program Files\Valve\Steam\userdata\UNIFIEDACCOUNTIDS\57400) to configure PUFs.

 

Alternative Way:

1. Go to Go to Tools Apps Application Name Game Executable Tasks.

2. Create a new task - type: Junction (Pre Launchand enter the following information:

  • Junction directories - Path of the relative folder, using %LICENSEKEYUSERID% as the AccountID

        C:\Program Files\Valve\Steam\userdata\%LICENSEKEYUSERID%\57400\

  • Target directory - Path of the unified folder we will be using. It can be any folder as long as it is not inside the Junction directories configured above. e.g

        C:\Program Files\Valve\Steam\userdata\UNIFIEDACCOUNTIDS\57400

  • Check the "Delete Junction Directory contents" box

3. Edit the steam license profile and add the Account ID that correspond to each license.

Now you can use this centralised folder (C:\Program Files\Valve\Steam\userdata\UNIFIEDACCOUNTIDS\57400) to configure PUFs.

 

The difference between the first and the alternative way is that with the first you have to modify the task every time you add a new steam account (containing this game), as well as create a new task for each game that stores inside the  AccountID folder, whereas in the second you add one task to each executable that uses this save location. Both will have the same result, use the one you prefer.

 

Note: Keep in mind that this KB does not apply to customer's own accounts, since their username/accountid is not known and configured as a junction.

 

Example: "Counter-Strike"

As soon as "Counter-Strike" is downloaded and executed in Steam, it expands its' game files in the following relative path: C:\Program Files\Valve\Steam\steamapps\SteamAccountName\counter-strike\cstrike

Notice that SteamAccountName is different, depending (in this case) on the Steam Username.

We will be merging all relative folders into one, so that changes take effect on all folders at the same time.

Follow the steps below to "merge" these folders into one

1. Go to Gizmo Server Settings Client Settings Client Tasks.

2. Create a new task - type: Junction (startupand enter the following information:

  • Junction directories - Paths of the relative folders, seperated by ; up to and including the point they vary, in our case:

        C:\Program Files\Valve\Steam\steamapps\SteamAccountName1;C:\Program Files\Valve\Steam\steamapps\SteamAccountName2;C:\Program Files\Valve\Steam\steamapps\SteamAccountName3

Replace SteamAccountName1,SteamAccountName2 etc with your Steam Account names

  • Target directory - Path of the unified folder we will be using. It can be any folder as long as it is not inside the Junction directories configured above. e.g:

        C:\Program Files\Valve\Steam\steamapps\UNIFIEDACCOUNTS

  • Check the "Delete Junction Directory contents" box

3. Restart clients for changes to take effect.

Thats it! Now you can use this centralised folder (C:\Program Files\Valve\Steam\steamapps\UNIFIEDACCOUNTS) to deploy files, configure PUFs and more.

For example, to configure saves for this game you would use C:\Program Files\Valve\Steam\steamapps\UNIFIEDACCOUNTS\counter-strike\cstrike\SAVE as a PUF path.

And if the game auto-updates, the updates will propagate to all steam accounts.

Be aware that the contents of the SteamAccountName folders will be deleted in order for the junctions to be created. You could keep a copy of the files and deploy them after the junctions have been created

 

Alternative Way (Gizmo v.1.487 and later):

1. Go to Game Application Game Executable Tasks.

2. Create a new task - type: Junction (Pre Launchand enter the following information:

  • Junction directories - Paths of the relative folder, using %LICENSEKEYUSER% as the SteamAccountName.

        C:\Program Files\Valve\Steam\steamapps\%LICENSEKEYUSER%

  • Target directory - Path of the unified folder we will be using. It can be any folder as long as it is not inside the Junction directories configured above. e.g:

        C:\Program Files\Valve\Steam\steamapps\UNIFIEDACCOUNTS

  • Check the "Delete Junction Directory contents" box

Thats it! Now you can use this centralised folder (C:\Program Files\Valve\Steam\steamapps\UNIFIEDACCOUNTS) to deploy files, configure PUFs and more.

 

The difference between the first and the alternative way is that with the first you have to modify the task every time you add a new steam account (containing the game) whereas in the second you have to add the task to every executable that uses this save location (half-life, counter strike, cs source etc). Both will have the same result, use the one you prefer.

Valve has started migrating to a new file system. In effect, it is phasing out the .gcf format and replacing it with the new .acf + folder. As a result, managing Half-Life based PUF is now much easier. The game is installed in a common directory for all steam accounts, and the PUF is located inside the new folder e.g.

Counter-Strike: C:\Program Files\Valve\Steam\steamapps\common\Half-Life\cstrike\SAVE

Counter-Strike Condition ZeroC:\Program Files\Valve\Steam\steamapps\common\Half-Life\czero\SAVE

 

 

(4 vote(s))
Helpful
Not helpful