Windows 7/8/8.1 Steam Survival Kit - Steam

It's coming. Y2K24 will be on us before we know it. Will it be the end of the civilisation or a new beginning? There are only a few things you need to do to be fully prepared for the worst!

Preface
Unless you want to back up existing packages, no action is required until December (or in the case of macOS 10.11 and 10.12, August)!

However, you may read on to be ready for what is to happen ahead of time and get to know your tools at your pace.



I am a Linux user. The only instances of Windows 7 I have at home are installed on another computer not used for gaming and a virtual machine without 3D acceleration. While some things will be tested, I cannot guarantee instant or reliable support in case you get stuck in the process.

Please understand this, and don't hesitate to ask elsewhere and link to other resources that could complement this guide, especially if things drastically change at some point.

Also, do it at your own risk! Steam is, after all, software that is always connected to the Internet, and it may be a bad idea to keep that running in the background if you can't be sure if it's secure.
Preparation Phase 1: Prevention
If your Internet availability is shoddy, it may be best that you save this page for offline use within your browser, although it will be worth coming back to it online as there may be major edits to it, especially following year 2024.

Preventing client updates
Check your calendar. Is it December?
No? Worry not, this procedure is not so urgent, and if you miss it, you will be able to roll back to the latest working version once it gets archived, as detailed in Post-Y2K24: For the Unprepared. However, it is worth reading on just to have an idea of what the process is like at the time of writing, and hopefully it won't change by the time it becomes important.

Is it 30th of December? 31st?!
Big scary countdown banner

...again, while it is time to act now, if you forget to do this, you can always roll back. Still, doing it ahead of time is a much quicker process, so I encourage that you read on.

By the way, pssst—the red banner is only cosmetic, it's the update which bricks the client, not the client itself.

Editing steam.cfg
Using steam.cfg, client updates can be prevented permanently. Edit it before the client-bricking update lands, preferably as late into 2023 as possible, in order to receive the latest working update.
  1. Navigate to the Steam directory:
    • Windows 32-bit:
      C:\Program Files\Steam
    • Windows 64-bit:
      C:\Program Files (x86)\Steam
    ...and our special guests, since the procedure works the same way:
    • Linux:
      ~/.local/share/Steam
    • MacOS:
      ~/Library/Application Support/Steam
  2. Create a new file, steam.cfg, unless it is already present
  3. Paste this in:
    BootStrapperInhibitAll=enable
    If you want, you could do this ahead of time, just make sure to prepend it with a # so that it is commented out (ignored) until needed.
Preparation Phase 2: SteamCMD
Hurray, the apocalypse wasn't so bad after all!

...is what I would have said if reality wasn't a thing. As has been the case with Steam retiring the old library and Windows XP, simply using an old client version won't suffice forever. Launching games is possible only using Offline Mode, and downloads/updates haven't worked for years, due to the download algorithm changing over time.

If downloading/updating games still works, don't panic and keep using the client as usual for now.

However, there is a likely hero in this battle for survival for when things go rogue, and that is SteamCMD!

Keeping downloads operational for the long term
While the client (service) will forever and ever stay a requirement for launching Steamworks API-powered games, or, rather, those that refuse to work without it, or additional DRM on top of it, downloading games should still be possible using SteamCMD. Considering it is an actively updated command line utility, there is no good reason to remove compatibility for older OSes, unless, perhaps, the web transitions to a new version of SSL that won't be supported on older OSes, or Valve compiles it against libraries that were never added to older OSes.

Moreover, with the industry transitioning away from older OSes... I guess you can imagine Steam might not exactly keep blooming with new game releases that can be played on them.

In any case, to be affected as little as possible, NOW is the time to learn SteamCMD!

SteamCMD summarised for players
First of all, while it involves the command line and it is mainly used by developers and game server administrators, please don't be scared away. Yes, accomplishing things with it isn't a one click operation (until someone makes a batch script or software I may include here), but it is worth getting a hang of.

Installing
From the SteamCMD wiki page, under Downloading SteamCMD, download the zip archive and extract it to the desired location. For other OSes, follow the instructions on the page.

Launching and logging in
Anytime before launching SteamCMD, make sure to close any running instance of Steam in order to prevent it from interfering with the Steam installation.

For convenience, use whichever you prefer:
  • Desktop shortcut
    After creating the shortcut, in the Target field, append:
    +login <username>
    — replacing <username> with your Steam username.
  • Batch/shell script
    Going for this option most likely means you understand how it's done, and since this guide addresses multiple OSes, I will leave you to it. For now.

Launch SteamCMD as prepared earlier. If this is the first time you are launching it or any updates arrived since the last time you used it, it will self-update, so wait for that to finish.

You will be prompted to log in using your Steam credentials. Once you successfully log in, you will be presented with a Steam> prompt.

In order to learn the usage of commands yourself, use this command:
find <query>
— replacing <query> with a search query or full command/convar name.

Linking steamapps
In order to prepare SteamCMD to be used for managing an existing game library, its steamapps directory needs to be linked into the SteamCMD installation.

Close SteamCMD, remove its steamapps directory, then run this command:
  • Windows (may require running as administrator):
    mklink -d "C:\path\to\SteamCMD\steamapps" "C:\path\to\Steam\steamapps"
  • Linux/macOS:
    ln -s /path/to/Steam/steamapps /path/to/SteamCMD/steamapps

Downloading and updating games
The simplest way to download/update games is to use your Games page while SteamCMD is running. Picking download location and moving across library folders is unimplemented, but the Steam client can be used to accomplish that.

If you want to use the command line, in order to download/update games, use the command:
app_update <appid>
— replacing <appid> with the App ID of the game to download/update, shown in the Properties dialogue of each game under Updates, or in the URL of the Steam Community hub of the game (linked to in your Games page).

Additional arguments:
-validate (recommended): validate Steam application after download -language <lang>: download with desired language -beta <betaname> -betapassword <pwd>: download beta, and specify password if it is required

Downloading and updating Workshop content
The simplest method is to press Subscribe on the mod you want, and the next time you use app_update, the Workshop item will be downloaded.

Otherwise, in order to manually download/update Workshop content, obtain the App ID of the game to download content for, and obtain the Published File ID from the end of the URL of a Workshop listing page.

Use the command:
workshop_download_item <appid> <PublishedFileID>

Uploading Workshop content
Refer to Steam Workshop Implementation Guide > SteamCmd Integration.

Using custom library folders (usually unneeded)
Bug: force_install_dir removes all custom library folders, each folder will have to be re-added when Steam client starts (library_folder_add isn't even present in SteamCMD). This is presumably since SteamCMD always uses the main install directory first, edits the library folder configuration there, and only then switches to the forced location.

SteamCMD, by default, uses the location it's stored in. If a Steam client installation is present, it will use it as well, inheriting its custom library folders.

In order to switch to a location not managed by Steam client, use this command:
force_install_dir <library_folder>
— replacing <library_folder> with the path to the library folder to switch to. Enclose it in quotes ("D:\Some Path\Steam") if it contains spaces.

For additional convenience, for each library folder you have, you may create a copy of the shortcut you made, each with this argument appended to Target field:
+force_install_dir <library_folder>
Just don't run multiple SteamCMD instances at once!
Preparation Phase 3: Backups
What's safer than making backups, especially if they are available to all? Here's how you can feel even safer and contribute, everyone wins!

Manual backup
If you want to create a backup of the last working Steam version, simply make a copy of the package folder, as well as the Steam executable.

Automated backup
This script was developed for use in a Linux terminal, and makes a local backup as well as requests remote archival (ex. to Wayback Machine), including SteamCMD.

#!/bin/bash package_url="http://media.steampowered.com/client" lists=$(echo steam_client_{win32,ubuntu12,osx}.txt steam_cmd_{win32,linux,osx}.txt) backup_prefix="/mnt/hdd/Archive/steam_client_archive" # Change to directory to store manifests and lists in mkdir -p "$backup_prefix/tmp" cd "$backup_prefix/tmp" for manifest_name in steam_client_{win32,ubuntu12,osx} steam_cmd_{win32,linux,osx}; do # Retrieving all URLs to archive echo "Getting manifest and filenames" manifest_url="$package_url/$manifest_name" echo "$manifest_url" > $manifest_name.txt curl -sO "$manifest_url" grep -e \"file\" -e \"zipvz\" $manifest_name | cut -d\" -f4 | sed "s|^|$package_url/|" | awk '!x[$0]++' >> $manifest_name.txt # Making a local backup version=$(grep \"version\" $manifest_name | cut -d\" -f4) backup_path="$backup_prefix/$manifest_name/$version" if [[ -d "$backup_path" ]]; then echo "Backing up $manifest_name $version" mkdir -p "$backup_path" mv $manifest_name "$backup_path/$manifest_name.manifest" xargs -n1 curl -O --output-dir "$backup_path" < $manifest_name.txt else # Skip if already present echo "Skipping backup of $manifest_name $version, backup already present" fi done # Archiving URLs remotely # Example usage: Wayback Machine - Save Page Now script by overcast07 # Obtain from https://github.com/overcast07/wayback-machine-spn-scripts # Substitute `spn` with path to spn.sh unless installed via AUR cat $lists > url_list.txt spn url_list.txt # Cleaning up rm $lists steam_client_{win32,ubuntu12,osx} steam_cmd_{win32,linux,osx} url_list.txt
Post-2024: For the Prepared
Time is ticking, and Y2K24 is just a few days/hours/seconds away. If you edited steam.cfg as per Preparation Phase 1: Prevention and Steam starts up just fine, you are done!

As of now, downloads in the main client and SteamCMD are both still operational on the last supported versions, so sit back and enjoy gaming without any disruptions or care in the world. For now.

When that changes, refer to Preparation Phase 2: SteamCMD if you forget how SteamCMD works. Considering all software changes, it may be worth returning to this guide online to check if the usage of SteamCMD changed in the meantime.
Post-2024: For the Unprepared
Oh no, the apocalypse is here!

Fear not, Steam isn't totally toast. You may follow this procedure to downgrade to the last working version.

Obtaining Steam executable
Note: Skip this part if you already have a working Steam installation.

It is possible to use Steam's updater with nothing more than the main Steam executable. If you don't already have a working Steam installation (or the bricked update made the main executable useless), here's how you can get it.

The executable version doesn't matter. These files have been archived using Wayback Machine. Obtain an archived version for:

Then, during or after download, remove the SHA1 file hash from the name (everything after .zip), unzip to the location you wish Steam to be installed in (or has been), and proceed with the instructions below.

The quick, online way
Using copies of Steam packages and manifests that have been archived online, it is possible to have the client downgrade itself.

  1. If you previously enrolled to Steam Client Beta, launch Steam with -clearbeta and dismiss the "Steam needs to be online to update" error
  2. Exit Steam
  3. Launch Steam with:
    -forcesteamupdate -forcepackagedownload -overridepackageurl http://web.archive.org/web/<date>if_/media.steampowered.com/client -exitsteam
    — replacing <date> according to The Downgrade Table section under Wayback Machine date

    Note: If this doesn't work, also append -textmode
  4. Steam should downgrade itself and exit
  5. Done! Start the client, and it should work
    Note: On Windows, if you get a dialogue about the Steam registry path not being writable, click Repair
  6. Before launching Steam another time, create steam.cfg as per Preparation Phase 1: Prevention

Protip: In order to use the VGUI-based UI (used before the 2023 revision), try using steam://restartinuimode/vgui. It supposedly works on Windows, but seems to be unreliable on Linux.

Otherwise, downgrade to version 1689034492 and launch Steam with -vgui.

However (TODO), Chat/Friends Network is problematic, this is being tested.

Note: For this to work, ALL packages and the package manifest must be archived as per the client manifest to a file server or a digital archive service such as Wayback Machine. Each "file" entry corresponds to a path under http://media.steampowered.com/client/.

The long, offline way
  1. Download package files (WIP, add URL)
  2. Navigate to the Steam directory, as outlined before
  3. Remove the contents of package folder
  4. Extract files from the downloaded archive into package
  5. Launch Steam, let it update, and on the Extracting package... step, press Cancel
  6. Remove package > tmp
  7. From the downloaded archive, copy steam_client_* files to package, confirm overwriting
  8. Launch Steam again
  9. Before launching Steam another time, create steam.cfg as per Preparation Phase 1: Prevention
  10. Done!
New Temporary Method of Downgrading
After seeing 2 reports of incomplete downgrades, I realised there has to be a backup plan.

The method I am presenting is definitely not one I prefer as the trust solely lies on me, instead of Save Page Now making sure that the archival was done directly by Internet Archive. I am presenting a way of making use of an old-fashioned reupload.

Note: Doing this yourself requires that you run or use someone else's web server and that all files are kept separately, not compressed to a single file.

The other other method
Instead of the URL you got originally, use this one:
  1. Navigate to this page[archive.org]
  2. Use The Downgrade Table and find the manifest version you need
  3. Navigate to the directory of the OS you are using (steam_client_<your_OS>), and under it, navigate to the directory of the version you want to use
  4. Copy the URL for step 3 of The quick, online way

Restoring the client in case of an incomplete downgrade
If you give up, it is sufficient to do this and not lose any of your data:
  1. Delete steam.cfg if it was previously created
  2. Launch Steam with these arguments:
    -forcesteamupdate -forcepackagedownload -exitsteam
  3. The client will exit; the next time you start it, it should be back to normal
The Downgrade Table
Note: Manifest version corresponds to the Unix time the build was finalised, which can be used to determine the date.

steam_client_win32 - Windows
steam_client_ubuntu12 - Linux (regardless of distribution)
steam_client_osx - macOS

Wayback Machine date
Manifest version
Notes
Windows Copy URL [archive.org]
Linux Bins only [web.archive.org]
macOS Not archived
1674790765
Fixes, last update before the removal of -no-browser and -noreactlogin
Windows 20230428150517
Linux 20230428151547
macOS 20230428151718
1682573004
Windows 20230429120402
Linux 20230429111303
macOS 20230429111700
1682708537
Windows 20230531113527
Linux 20230531115543
macOS 20230531120503
1685488080
Preload banner hotfix, last update before new desktop UI and -oldbigpicture removal
Windows 20230615094110
Linux 20230615100150
macOS 20230615100909
1686779606
Initial new desktop UI version, -oldbigpicture removed
Windows 20230616094017
Linux 20230616100000
macOS 20230616100708
1686880776
Windows 20230622105532
Linux 20230622111310
macOS 20230622112008
1687386907
Windows 20230711162631
Linux 20230711164652
macOS 20230711165536
1689034492
Generic notification sounds, fixes, last update before -vgui removal
Windows 20230801221717
Linux 20230801223706
macOS 20230801224603
1690583737
Windows 20230912101259
Linux 20230912103102
macOS 20230912103901
1694466342
Indonesian language, fixes, removal of steam://restartinuimode/vgui
The Downgrade Table (SteamCMD)
steam_cmd_win32 - SteamCMD Windows
steam_cmd_linux - SteamCMD Linux
steam_cmd_osx - SteamCMD macOS

Wayback Machine date
Manifest version
Notes
Windows 20230429132649
Linux 20230429132800
macOS 20230429132904
1682708339
Windows 20230531121408
Linux 20230531121804
macOS 20230531122030
1685487853
Windows 20230615102027
Linux 20230615102308
macOS 20230615102600
1686781763
Windows 20230616101802
Linux 20230616102105
macOS 20230616102432
1686881296
Windows 20230622113010
Linux 20230622113308
macOS 20230622113612
1687387651
Windows 20230711170621
Linux 20230711170811
macOS 20230711171116
1689034828
Windows 20230801225604
Linux 20230801230052
macOS 20230801230100
1690585855
Windows 20230816111604
Linux 20230816112003
macOS 20230816112207
1691628584
Windows 20230912104902
Linux 20230912105204
macOS 20230912105405
1694466999
Troubleshooting
In case downgrading causes additional issues, they will be addressed here.

Friends list no longer works
While a direct workaround hasn't been found yet, it is possible to use Steam Chat in Big Picture Mode, or alternatively in a browser here. Note that some functionality like in-game status and game invites won't work in the browser.

In the case of Firefox, PWAsForFirefox[addons.mozilla.org] can be used to more closely replicate the original experience without having to fix the client itself.
Extras
Here are some extra procedures, for convenience.

Keeping the client offline forever
Note: Don't do this unless the client stops being able to connect to begin with, otherwise downloads/updates, multiplayer and other Steamworks features won't be available!

  1. Navigate to the Steam directory, as outlined before
  2. Enter config directory
  3. Edit loginusers.vdf
  4. Under the desired user's SteamID64, add these lines:
    "WantsOfflineMode" "1" "SkipOfflineModeWarning" "1"

Removing the countdown banner
Get Assistance/Provide Feedback
While the comment section is open for everyone, due to the high volume of comments, it is advised to use the public forum instead. That way, it is easier to find previous cases so that the same questions don't need to be answered in full again.


-- Mirrored from Steam