Steam browser protocol
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 menu) or through your browser's addressbar.
- steam:%c This opens Steam with command line arguments. Replace %c with command line arguments found here: Steam Command Line Options
- steam://store/%id This opens up the store for the specified product, if no product is specified then the default one is opened. Replace %id with a product number from this page Steam Applaunch IDs.
- steam://backup/%id This opens up Steam's backup utility. If a product id is specified then the product is checkmarked automatically. Replace %id with a product number from this page Steam Applaunch IDs.
- steam://run/%id This opens a product. Replace %id with a product number from this page Steam Applaunch IDs.
- steam://updatenews/%id This opens the news about the latest updates for the specified product. Replace %id with a product number from this page Steam Applaunch IDs.
- steam://install/%id This installs a product. Replace %id with a product number from this page Steam Applaunch IDs.
- steam://preload/%id This preloads a product. Replace %id with a product number from this page Steam Applaunch IDs.
- steam://purchase/subscription/%i This opens up a dialog box to buy a subscription to a Steam product/service. None are available as of writing.
- steam://purchase/%id This opens a dialog box to buy a product from Steam. Since Counter-Strike: Condition Zero and the Valve Premier Pack can no longer be purchased by themselves, because they have been replace with Half-Life 2, this is useful. Replace %i with: 7 for Counter-Strike: Condition Zero, 8 for Valve Premier Pack, 9 for Half-Life 2 Bronze, 10 for Half-life 2 Silver, or 13 for Half-Life 2 Gold.
- steam://validate/%id This Validates the files within gcf's of the Applaunch ID you choose.
- steam://installaddon/%addon This installs the specified add-on. Example: steam://installaddon/halflifehd installs HL High-Def Pack
- steam://removeaddon/%addon This uninstalls the specified add-on. Example: steam://removeaddon/halflifehd uninstalls HL High-Def Pack
- steam://connect/<ip or dns name> This connects the user to the server specified by the ip or dns name (i.e 10.0.0.1:27015 or server.happy.com ).
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 c_var of a user it can also execute commands 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: (the wiki doesnt support them as links so copy / paste them with quotationmarks into a new browser window)
steam:"-applaunch 70 -game "your_mod" +map "yourmap"" - This starts up Half-Life 1 running your_mod and loading a map called yourmap.bsp.
steam:"-applaunch 320 -game "your_mod" +connect "18.104.22.168:27015"" - This starts up Half-Life 2 DM running your_mod and joining the server with the IP 22.214.171.124 on port 27015.
To view this browser based command system in action look at this server browser website and click on one of the servers.
Note: If you forget the closing quote on a steam:"%c" command, you will get an assertion failed error from Steam.exe/BootStrapperApp.cpp.