Steam won't start in Offline Mode [duplicate]

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.


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.