63

I recently find myself needing to start Steam in offline mode rather frequently (my wife is hogging my account to play Plants Vs. Zombies, and most of what I play doesn't really need to be online).

I was wondering if there is some way to launch Steam in offline mode without first logging in (and selecting it from the menu), since that usually beats the purpose.

While I know that killing my network connection before launching Steam is an option, I am looking for a more "civilized" way, such as a command line switch or something of the sort.

  • 2
    Hm, this would have been useful to know when Steam went down worldwide for three hours yesterday, preventing everyone everywhere from playing any of their steam games! – BlueRaja - Danny Pflughoeft Jan 6 '12 at 20:24
  • 9
    Steam now supports Offline mode via simple command line parameter: Steam.exe -offline – DiGi Jul 21 '13 at 23:29
33

I can confirm that creating/editing steam.cfg (in the same directory as the Steam executable) with the following lines works, as long as you've set Steam to remember your password (thanks DarkAnime):

BootStrapperInhibitAll=enable
ForceOfflineMode=enable

If you want to manage this with a command-line parameter, you could create a script to do something like the following (Windows .bat file):

IF "%1"=="offline" (
    IF EXIST steam.cfgx (
        rename steam.cfgx steam.cfg
    )
)
ELSE (
    IF EXIST steam.cfg (
        rename steam.cfg steam.cfgx
    )
)
start steam.exe

It used to be that you could hit "Cancel" while Steam was starting up and it would allow you to start offline mode from there, but that no longer works.

  • 4
    This answer is obsolete does not work and should be unaccepted – Jeff Atwood Oct 29 '16 at 22:49
  • I second this, it doesn't work any more and the next answer does work. – Elliott Nov 19 '17 at 14:58
24

New, working solution (2016-04-01 and it still works):

Make sure you've set Steam to remember your password. Now open <Steam_installation_dir>/config/loginusers.vdf and change value of WantsOfflineMode to 1. Default location of this file:

  • Windows (32-bit): C:\Program Files\Steam\config\loginusers.vdf
  • Windows (64-bit): C:\Program Files (x86)\Steam\config\loginusers.vdf
  • Linux: ~/.steam/steam/config/loginusers.vdf
  • Mac: ~/Library/Application Support/Steam/config/loginusers.vdf

If you don't want warning about launching Steam in offline mode just do the same with SkipOfflineModeWarning. If you can't see those values, just add them so it looks like this:

"users"
{
    "<your profile number>"
    {
        "AccountName"       "<your login>"
        "PersonaName"       "<your display name>"
        "RememberPassword"      "1"
        "Timestamp"     "<timestamp>"
        "WantsOfflineMode"      "1"
        "SkipOfflineModeWarning"        "1"
    }
}

There can be of course more users listed.

You can change those values back to 0 to launch Steam in online mode.

NOTE: Steam will automatically reset SkipOfflineModeWarning to 0 when it closes. To prevent this you can set the file to read-only, but then you can't switch back easily to online mode nor make Steam remember another user. Alternatively you can use some script to change those values for you.

To automate this on Windows machines, save

Const ForReading = 1
Const ForWriting = 2

Set objFSO = CreateObject("Scripting.FileSystemObject")
Set objFile = objFSO.OpenTextFile("config\loginusers.vdf", ForReading)

Do Until objFile.AtEndOfStream
    strLine = objFile.ReadLine
    If InStr(strLine, "WantsOfflineMode") = 0 And InStr(strLine, "SkipOfflineModeWarning") = 0 Then
        strText = strText & strLine & vbCrLf
    End If
Loop
objFile.Close

If WScript.Arguments.Count = 1 Then
    strText = Replace(strText, "RememberPassword", "WantsOfflineMode"" ""1"" ""SkipOfflineModeWarning"" ""1"" ""RememberPassword")
    mode = WScript.Arguments(0)
Else
    strText = Replace(strText, "RememberPassword", "WantsOfflineMode"" ""0"" ""SkipOfflineModeWarning"" ""0"" ""RememberPassword")
    mode = "online"
End If

Set objFile = objFSO.OpenTextFile("config\loginusers.vdf", ForWriting)
objFile.WriteLine strText 

objFile.Close

Set objShell = CreateObject("WScript.Shell")

If (mode = "offline") Or (mode = "online") Then
    objShell.Exec("Steam.exe")
Else
    objShell.Run("steam://rungameid/" & mode)
End If

as steam.vbs in your Steam directory and make two shortcuts to it. Add offline as parameter to one of them and it's done. I have two Steam shortcuts on my desktop now. Steam Online with path "C:\Program Files (x86)\Steam\steam.vbs" and Steam Offline with path "C:\Program Files (x86)\Steam\steam.vbs" offline.

I added support for games, so you can launch them in offline mode. Just start steam.vbs with app id as parameter. Example: "C:\Program Files (x86)\Steam\steam.vbs" 440 launches Team Fortress 2 in offline mode.

  • As of the present time, this solution appears not to work anymore. – Kyralessa Feb 1 '15 at 0:48
  • Solution works fine. Code I gave to automate it does not. I'll update it later. – Piotr Kowalski Feb 6 '15 at 10:53
  • Still works. Now you can launch games in offline mode too with this script. – Piotr Kowalski Sep 2 '15 at 23:32
  • It's worth noting that the SkipOfflineModeWarning setting is reset each time Steam runs. For a permanent solution, if you don't want to use the script each time you launch, you can set loginusers.vdf to be read-only. – Alexander Pruss Feb 1 '16 at 16:06
  • If you set loginusers.vdf to read-only you can't switch back to online mode easily. You have to uncheck read-only flag first, which is much more to do than simply running shortcut from desktop. I see no problem using script every time you run Steam. Also when that file is read-only you can't make Steam remember new users. – Piotr Kowalski Feb 8 '16 at 9:39

protected by Community Dec 16 '11 at 20:45

Thank you for your interest in this question. Because it has attracted low-quality or spam answers that had to be removed, posting an answer now requires 10 reputation on this site (the association bonus does not count).

Would you like to answer one of these unanswered questions instead?

Not the answer you're looking for? Browse other questions tagged or ask your own question.