Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Revise Installation Directory #1

Open
jens1101 opened this issue May 7, 2019 · 4 comments
Open

Revise Installation Directory #1

jens1101 opened this issue May 7, 2019 · 4 comments
Assignees
Milestone

Comments

@jens1101
Copy link
Owner

jens1101 commented May 7, 2019

If I set the installation directory to: ~/Downloads/steam then a steamapps folder will automatically be created within it. There you will have a bunch of files and folders that are used while the download persists. However once the download is done then all the game's files are move outward to ~/Downloads/steam.

I don't think this is really desired. I think it should move the completed downloads into a common folder within the steamapps folder.

This will have to be investigated and maybe steamapps/common should be appended to the installation directory.


After investigating this: it seems that SteamCmd only does the above for non-library install folders. So, I think the expected behaviour should be:

  • If the download folder is not a Steam library folder then issue a warning in the console and download the game into it's own sub-folder.
  • If the download folder is not a Steam library folder then just let SteamCmd do it's thing.
@jens1101
Copy link
Owner Author

I had a look into this. Here are a few points to note:

  • install_folder_list will list all available steam volumes. This can maybe be used to tell SteamCMD where to download an app to.

  • When forcing the install directory the correct way to do it would be to use the following folder structure: [Download folder]/steamapps/common/[game install dir]. The way to find the game install dir is by running app_info_print [appId] and looking at "config" > "installdir". This will give you the correct folder name for the game.

    Note the app_info_print is not synchronous. If it doesn't have the information on hand it will request it and return to the command line.

These two points can allow for further convenience functions (#16).

@jens1101 jens1101 added this to the v2.2 milestone Oct 10, 2020
@jens1101 jens1101 self-assigned this Oct 10, 2020
@jens1101
Copy link
Owner Author

The app_info_print command is a bit of an issue, since there is no way I can force it to be synchronous and there is also no way for me to know when it's done. I may want to investigate if there exits a Steam API that I can call with Axios to get this information instead.

@jens1101
Copy link
Owner Author

I have investigated this issue. The best I could find is this URL for XCOM2: http://clientconfig.akamai.steamstatic.com/appinfo/268500/sha/163238418f51174e7882ac5faec80da1fe17bbc5.txt.gz. "268500" is the app ID, however I do not know what the hash is. I have posted a question about this on Stack Overflow.

The solutions I am currently pursuing:

  • Figure out how to dynamically generate that hash in the URL.
  • Figure out if I can call the app_info_print command multiple times until it returns something.

@jens1101
Copy link
Owner Author

It turns out the problem is much less complicated than it sounds. If you force_install_dir to a Steam library then SteamCmd will recognise it as a Steam library folder and install the app in the correct location.

I also found out about a few other nice commands:

  • install_folder_list lists all Steam library folders. Note that if you create a new library folder while SteamCmd is running then you need to restart SteamCmd before it will recognise the new folder.
  • apps_installed which lists all the apps you've installed, their ID, name, and their installation locations. For games installed in steam library folders it will not resolve the full path to the game, but instead will only resolve to the path of the library.

@jens1101 jens1101 moved this to Backlog in Steam CMD Jun 13, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
Status: Backlog
Development

No branches or pull requests

1 participant