Steam browser protocol

From Valve Developer Community
Revision as of 04:12, 19 September 2010 by 10minuteman (talk | contribs)
Jump to navigation Jump to search

There are numerous system-wide commands available that interact with Steam. All of them open up Steam if it is not open. They can either be typed into a command box (Start-> Run) or through your browser's address bar (you can normally create links to them as you would web page links). Use a Steam Application ID in place of <id> (i.e. 211 for the Source SDK).

Implemented commands

steam:"<commands>"
Opens Steam with command line arguments, which can be found here.
Note.pngNote:If you forget the closing quote on a steam:"<command>", you will get an assertion failed error from Steam.exe/BootStrapperApp.cpp.
steam://AddNonSteamGame
steam://advertise/<id>
Opens up the store for an application.
steam://ackMessage/ackGuestPass/<pass>
Accepts the Gift or Guest Pass.
steam://appnews/<id>
Opens up the news page for an app.
steam://backup/<id>
Opens up the Backup Wizard and checks the specified application. If an application is not specified then nothing will be checked.
steam://browsemedia
steam://checksysreqs/<id>
Checks if users computer meets system requirements of app.
steam://connect/<IP or DNS name>[:<port>][/<password>]
Connects the user to the server specified by the IP or DNS name. You don't have to specify anything for connecting a third party mod server, it will be automaticly detected.
  • Example: steam://connect/1.0.0.27:27015
  • Example: steam://connect/dns.server.com
steam://defrag/<id>
Defragments files of the application.
steam://friends/
Opens Friends. These sub-commands are accepted:
add/<id>
Adds user with specified id number
friends/<id>
Shows list of users with whom you recently played
joinchat/<id>
Joins a chat with a specified id number
message/<id>
Send a message
players
Shows table of recent players you've played with
settings/hideoffline
Toggle offline friends from friends list
settings/showavatars
Toggle avatars in friends list
settings/sortbyname
Sorts friends list by name
status/away
Sets status as away
status/busy
Sets status as busy
status/offline
Sets status as offline
status/online
Sets status as online
steam://guestpasses/
Opens up the Guest Passes window
steam://hardwarepromo/
Tests whether the user has hardware that matches a promotional offer.
  • Example: steam://hardwarepromo/305 (ATi)
  • Example: steam://hardwarepromo/609 (nVidia)
steam://install/<id>
Installs an application.
steam://installaddon/<addon>
Installs the specified add-on.
  • Example: steam://installaddon/halflifehd installs HL High-Def Pack.
  • Example: steam://installaddon/hl2russian installs HL2 Russian Pack.
steam://nav/<component>
Opens a Steam window, but doesn't make Steam window active.. Known <component> values:
downloads
games
games/details
games/details/<id>
games/grid
games/list
media
tools
steam://open/<component>
Opens a Steam window. Known <component> values:
activateproduct
downloads
friends
games
games/details
games/grid
games/list
largegameslist
minigameslist
main
Your "favorite window".
mymedia
news
registerproduct
CD key registration (e.g Prey)
tools
servers
settings
steam://openurl/<url>
Opens URL in the system's default web browser.
steam://paypal/cancel
Cancels an ongoing PayPal transaction.
steam://preload/<id>
Preloads an application.
steam://publisher/<name>
Loads the specified publisher catalogue in the Store. Type the publisher's name in lowercase, e.g. activision or valve.
Icon-Bug.pngBug:Somehow broken.  [todo tested in ?]
steam://purchase/<id>
Opens a dialog box to buy an application from Steam.
steam://purchase/subscription/<id>
Opens up a dialog box to buy a subscription to a Steam product/service. None are available yet.
steam://removeaddon/<addon>
Uninstalls the specified add-on.
  • Example: steam://removeaddon/halflifehd uninstalls HL High-Def Pack
steam://run/<id>
Runs an application. It will be installed if necessary.
steam://runsafe/<id>
Resets CVARs of a Source game.
steam://rungameid/<id>
Same as run, but with support for mods and non-Steam shortcuts.
steam://settings/
Same as steam://open/settings, but also allows for subcommands for each page:
account
friends
interface
ingame
downloads
voice
steam://store/<id>
Opens up the store for an app, if no app is specified then the default one is opened.
steam://support/<params>
Launches the Steam Support utility, running all tests. Enter valid support string to filter results.
steam://uninstall/<id>
Deletes the specified apps' cache files.
steam://updatenews/<id>
Opens the news about the latest updates for an app.
steam://url/<named page>
Opens a special, named web pages:
ChatBanListAdmin/...
CommunitySearch/
CommunityFriendsThatPlay/<id>
CommunityGroupSearch/
DownloadsSupportInfo
GroupEventsPage/<id>
GroupSteamIDPage/<id>
GroupSteamIDAdmin/<id>
LeaveGroupPage
LegalInformation
PrivacyPolicy
SSA
SteamIDAchievementsPage/<id>
SteamIDControlPage
SteamIDEditPage
SteamIDLoginPage/<pass>
Opens the internal auto-sign in page. Won't work unless the correct one-time password is included.
SteamIDPage/<id>
Store
StoreAccount
Storefront
StoreFrontPage
Opens store homepage in Steam store tab.
SupportFrontPage
Opens support.steampowered.com in your default browser
steam://validate/<id>
Validates the local files of an app.

Suggested commands

The following commands are community suggestions and are not presently featured in Steam:

Connect protocol

  • steam://connect/<IP or DNS name>[:port]/'command1 "arg1" "arg2";command2 "arg1";password "blah";etc..'
    • Connects to the specified server after executing the specified commands --ts2do
    • An alternate syntax which makes more sense if you're familiar with HTTP URL syntax: steam://connect/<IP or DNS name>[:port]/?cvar1=value&cvar2=value&password=blah&etc.. --The MAZZTer 21:03, 31 Jul 2008 (PDT)
    • A similar syntax could be: steam://connect/?ip=<ip>:<port>&password=<password>&hltv=<true/false>&gamedetails=<true/false>&cvars="<cvar1> <value>;<cvar2> <value>;" where gamedetails refers to Server Info (similar to proposed protocol below); and all data under cvars is automatically compiled into a one-time .cfg file. -- JRod 17:13, 22 Nov 2008 (PST)

Overlay Browser

  • steam://overlay/<Website or Arguments From Steam://url>
    • Opens the overlay ingame with the specified parameter, helpful for opening steam groups ingame so players can join. --DontWannaName
      • Second this request, would be great for creating communities for/in L4D Captain-p0t-n00dle 10:02, 10 May 2009 (UTC)
        • Great suggestion. Would love to see that available. Holek 13:16, 16 March 2010 (UTC)

Other

  • steam://server/<IP:PORT> <ADD | Delete>
    • Allows for making links to add said server to favorites.- Jay7981
  • steam://runadv/<AppID> <parameters>
    • Runs an app allowing you to specify advanced parameters like -windowed. -ultradude25
  • steam://vdc/<page title>
  • steam://gameinfo/<IP or DNS name>[:port]
    • Opens the "Game Info" dialog for the specified server. Maybe also integrated into the server browser, so you don't have to add a server to the favorites to have access to that window. --Koraktor
  • steam://runsingle/<AppID>
    • Runs an app, then shuts down Steam once the game closes. -- AiusEpsi
      • This is stupid. All Source games needs Steam open in order to do anything concerning gcf files, which is the game itself.--Sortie 23:53, 5 Apr 2007 (PDT)
        • It shuts down Steam AFTER the game is ran and closed! Leopard84
  • steam://forceupdate/<AppID>
    • Forces update (if autoupdate fails) of all files (including all linked .gcf) for defined AppID. -- Dwarden
      • I don't get the point. Useless in my point of view. -Rotzi
        • Restarting Steam would be simpler, and have the same effect. --TomEdwards 08:23, 13 Sep 2006 (PDT)
          • I'm afraid it's not that simple, see my post here. -- Dwarden
            • Yea, my steam REFUSES to update ANYTHING, even after re-installing it. A force update would be nice. --PanFrie 04:50, 1 Feb 2008 (EST)
  • steam://friends/message/<id OR username>
    • This would update the /friends/message/ command to allow users to more easily add their IM links to their webpages (i.e. social networking sites). It just seems a little odd that you have to know your numerical steam ID in order to use this command. The /friends/add/ command could also include this functionality.
  • steam://checkbuild/<AppID>
    • Compares actual local build of AppID with latest version available at Steam servers for defined AppID.
Results displayed in way: '<AppID> - <ActualLocalBuild>:<LatestBuildAtSteamServers> and if they don't match, it offers user dialog to force update to latest build.