Steam browser protocol

For help, see the VDC Editing Help and Wikipedia cleanup process. Also, remember to check for any notes left by the tagger at this article's talk page.
Commands
There are several 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.
steam:<commands>
This opens Steam with command line arguments, which can be found here: Steam Command Line Optionssteam://backup/<id>
This opens up Steam's backup utility. If a product id is specified then the product is checkmarked automatically. Use a Steam Applaunch ID for the id.steam://connect/<IP or DNS name>[:port]
This connects the user to the server specified by the IP or DNS name. Using this, you can connect to servers for third party mods without needing to know the mod's installation path.- Example:
steam://connect/1.0.0.27:27015
- Example:
steam://connect/dns.server.com
- Example:
steam://install/<id>
This installs a product. Use a Steam Applaunch ID for the id.steam://installaddon/<addon>
This installs the specified add-on. Example: steam://installaddon/halflifehd installs HL High-Def Packsteam://open/<component>
Opens a Steam window. Known <component> values:friends
games
main
mymedia
servers
settings
steam://openurl/<url>
Opens URL in default web browser.steam://preload/<id>
This preloads a product. Use a Steam Applaunch ID for the id.steam://purchase/<id>
This opens a dialog box to buy a product from Steam. Use a Steam Applaunch ID for the id.steam://purchase/subscription/<id>
This opens up a dialog box to buy a subscription to a Steam product/service. None are available yet.steam://removeaddon/<addon>
This uninstalls the specified add-on. Example: steam://removeaddon/halflifehd uninstalls HL High-Def Packsteam://run/<id>
This opens a product. Use a Steam Applaunch ID for the id.steam://runsafe/<id>
This resets CVARs of the application with the specified Steam Applaunch ID (i.e. 211 for SDK).steam://store/<id>
This opens up the store for the specified product, if no product is specified then the default one is opened. Use a Steam Applaunch ID for the id.steam://updatenews/<id>
This opens the news about the latest updates for the specified product. Use a Steam Applaunch ID for the id.steam://validate/<id>
This Validates the files within gcf's of the Applaunch ID you choose.steam://support/?Issues=connection*
Launches the Steam connection testing utility.
Suggested
- steam://connect/<IP or DNS name>[:port]/<password>
- Connects to the specified server with the right password --Semi
- 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
- steam://vdc/<page title>
- steam://friends/add/<user>
- Prompt to add user to Friends list. --VealCalf
- steam://friends/chat/<user>
- steam://gameinfo/<IP or DNS name>[:port]
- Opens the "game info" window 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 the specified App, then shuts down Steam once the game closes. -- AiusEpsi
Ability
What can be done with these commands from a websites point of view? Its a pretty open and powerful system. A website link can start up steam and not only change any ConVar of a user, but it can also execute ConCommands like making a player join a specific server running a specific mod. It can even get the player to start up a dedicated server with a single click.
Here some examples:
steam:"-applaunch 70 -game "<mod>" +map "<map>"" - This starts up Half-Life running the specified mod then loads a specified map.
steam://connect/<IP or DNS name>[:port]" - If a mod was running at the specified server, Steam would attempt to start up that mod and connect there. This applies to any kind of Goldsource/Source server.
To view this browser based command system in action look at this server browser website and click on one of the servers.
