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.