My hard drive started to fail recently. I've managed to copy almost all data to another drive, but 280 sectors (140kB) were corrupted. Since that drive also contains my Steam library, I want to check it for any corruption.

However, I don't want to right-click >200 game title's in my library, go to their properties, local data and verify the installation. Is there a way to check the integrity of all installed Steam games? Or do I have to check them one-by-one?

  • 1
    You can select multiple titles in Steam library by holding Shift + left mouse but unfortunately Steam only has options to "add to favorites" and "set categories" when several games are selected.
    – user598527
    Sep 1, 2018 at 7:20
  • Still good to know, as my categories where gone from a unrelated experiment, thanks!
    – Zeta
    Sep 1, 2018 at 7:25

4 Answers 4


Steam doesn't provide a way to check the integrity of all of your games at once. However, someone has made a script that you can try to run that verifies all of your games in one shot.

A link to the Reddit post can be found here. It gives an overview of what the script is. In order to run this script, you will need AutoIt. After downloading AutoIt, you can run the script. According to the post, you should be able to even see what the script is composed of as well.

The Reddit posts points out a few things to keep in mind:

  • Your computer should not be actively in use when the script is running
  • Steam windows showing the game that is being verified will still pop-up, but they should be automatically be closed upon completion. If you are using other programs with the tool running, it is possible it may close the wrong window
  • You can skip specific games if you wish by adding the games SteamId to the "validationBlacklist.txt" file in this format: 15620 20570 220240 19900 50130 50620

There is also a link to a self-contained .exe version of the script, however the link for that one does not appear to want to work (at least for me). Note that you should also be cautious when downloading files like this off the internet, so take any chances at your own risk! Also be sure to follow the instructions listed in the Reddit post. It is a bit of a lengthy one to post all of it here.


Here is a way to recheck and update all installed games, on Linux, using steamcmd.

Steamcmd is closed source and updates itself from the net, similar to the Steam client; the useful thing is that it works from the CLI.

Install steamcmd from Ubuntu multiverse or https://media.steampowered.com/installer/steamcmd_linux.tar.gz. It will self-update on first run.

If some of your libraries are on removable media, check that they are all active in Steam's settings, Download section. Close Steam.

Substitute your Steam login name in the following command, and run:

steamcmd +login $mylogin $(
  steamcmd +login $mylogin +apps_installed +quit \
  |grep -Po '(?<=^AppID )[0-9]+(?= : )' \
  |sort -V \
  |while read appid; do \
    echo +app_update "$appid" validate; done \
) +quit

The checks take some time, but should run unattended.

It's possible to get spurious errors if your connection is flaky; you can insert something like |awk 'f{print} /$lastsuccessappid/{f=1}' immediately after the |sort -V term to continue after the last successful check.

  • While this is a good hint for Linux users, my question is/was Windows specific (or rather: I'm not on Linux, so I can't use your awesome script :/ )
    – Zeta
    Apr 1, 2021 at 18:54
  • 1
    steamcmd is available for windows, you'd just have to adapt the script to powershell or batch utilities. Oct 20, 2021 at 22:25
  • Well. As someone who is running Linux and ran across this post a couple of years later .... This method worked great, thanks. May 25, 2023 at 12:00

Building off of @Tobu 's answer, for windows, since similar utilities for parsing text is much harder on windows, I went for a cross-platform solution. You can follow the directions for installing steamcmd for your platform at https://developer.valvesoftware.com/wiki/SteamCMD (You'll need to run it once first to finish the install)

I'm looking at creating a github project for this, so I can auto-build deno binaries with this embedded so you wouldn't have to install deno to run this. I'll update if I finish that.

I have a slightly more complete script in a github gist if you want to look at that: https://gist.github.com/josh-hemphill/25f73281faf08f0be0ed72b2cd2aa1da

Using Deno for the scripting, I achieved the same thing with some code like this.

// ran using deno run -A ./this-script.ts <my username> <steam library directory>
let user = Deno.args[0]
let lib = Deno.args[1]
await Deno.run({cmd:['steamcmd','+login',user,'+quit']}).status()
const p = Deno.run({
  cmd: [
  stdout: "piped",
await p.status();
const output = new TextDecoder().decode(await p.output());

const games = output.split("\n").filter((v) => v.startsWith("AppID")).map(
  (v) => {
    const cols = v.split(" : ");
    return {
      id: cols[0].split(" ")[1],
      name: cols[1].slice(1, cols[1].length - 2),
      dir: cols[2].replace(" \r", ""),

for (const game of games) {
  await Deno.run({
    cmd: [
  • Updating what happened. Turns out steamcmd got stuck or errored on one without actually causing a non-zero exit code, so it tried to continue, and freaked out. I'm now looking at directly calling the steam api or DLLs myself, but that's not documented for this purpose. Nov 11, 2021 at 10:39

Here is an updated version of the script, that doesn't get confused by dlc's: https://gist.github.com/bernstein82/89384f9b7e05544e582e3b5267ad4583

also, i'd recommend installing autoit with scoop, so it can be removed without side effects.

  • Can you copy paste the script? since the repo is removed? this is why we do not use links, but instead paste the script here. Jul 29, 2023 at 15:40

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .