Unaffiliated

Home Documentation & Help
Steamworks Documentation
Creating a retail "Gold Master" disk

Before you begin

Before customizing a Steam gold master disk, first package your game files in one or more depots and create a retail disc.

Customizing the Steamworks Setup Application

The Steamworks SDK includes a customizable installer that you can include on your gold master. The installer is designed to help users install Steam and begin loading your game as quickly as possible. The installer has also been designed to ensure compatibility with the installation portion of the Games for Windows certification.
To get started, copy all files from the tools\goldmaster\disk_assets folder in the SDK to your gold master's build output folder (See building retail discs for Steam Pipe).

Configuration

The setup application can be customized through modifying configuration files and replacing files in the resources directory. Setup uses two configuration files: setup.ini (always loaded) and a localized configuration file (resources\setup_<language>.ini).

setup.ini is the first configuration file loaded by the setup application. This file is used to configure all language independent settings. The values in this file can be overridden by language specific configuration files. The syntax is "parameter" "value". The following parameters are available:
  1. Game - Game name that appears in the setup menu
  2. AppID - Application ID for your game, provided by Valve
  3. URL - URL the user is directed to when the technical support button is selected
  4. RequiredSize - Amount of disk space (in KB) that your game will occupy after installation. If Steam is not installed, this value will be used by the Steam's installer to warn the user if they choose to install Steam to a drive which does not have enough free disk space to install your game.
  5. FontName - Font used for menu text
  6. FontHeight - Height of menu text
  7. MenuPos - X and Y coordinates (in pixels) for the top left corner of the menu (ex: "200 324")
  8. MenuStyle - Alignment of menu text (0 = left, 1 = center, 2 = right)
  9. ColorDefault - RGB color for menu text (ex: "255 255 255")
  10. ColorHover - RGB color for menu text when the mouse is hovering over the text (ex: "250 180 60")
  11. ColorDown - RBG color for menu text when a mouse button is depressed over the text (ex: "0 0 0")

Setup can also display a EULA before installing your game. The EULA must be an RTF file. Setup will try to load the EULA from resources\eula_<language>.rtf. If a localized version is not available, it will try to load resources\eula.rtf. If both files do not exist, it will skip displaying a EULA.

Localization

On startup, the setup application will load each resources\setup_<language>.ini configuration file. The user will then be asked to select a language from a dropdown listing each supported language. These localized configuration files can override any value defined in setup.ini, and also define the strings shown to a user for each language. If you do not support a language for which the SDK supplies a localized ini file, simply delete the ini file.
If you need to support a language that is currently not supported by Steam, please let us know in the Steamworks Development Discussions

Graphics and Sound Effects

The following files can be replaced to customize the setup application and Steam installation for your game:
  1. splash.tga - Image displayed by Steam while installing files from disk (392x165 pixels)
  2. icon.ico - Icon used in autorun.inf as the icon for your installation disk
  3. resources\setup.bmp and resources\setup_<language>.bmp - Image used for the background of setup.exe (640x480 pixels). Setup will first search for a localized version, and then load setup.bmp if a localized version doesn't exist.
  4. resources\click.wav - Played when a button is click in setup.exe (delete to play no sound)
  5. resources\hover.wav - Played when a mouse hovers over a button in setup.exe (delete to play no sound)
  6. resources\launch.wav - Played when setup.exe starts (delete to play no sound)
The font name, height, color and other text attributes can be configured through setup.ini. See Configuration for more details.

Installscript

Before installing Steam, Installscript can be used to have the setup application install all 3rd-party applications your game depends on. When installed from the setup application, users running Windows Vista will only need to authorize one UAC elevation for the entire installation process (a requirement for Games For Windows certification). If not installed through the setup application, Steam will need to ask for elevation a second time when executing your game's Installscript prior to launching your game.
There are some important differences between running Installscript from the setup application, and running it from Steam:
  1. The setup application can only run applications listed under the Run Process key in your Installscript.
  2. The setup application will not run any process marked with AsCurrentUser in your Installscript. The setup application will only be run by administrators, so the Installscript should only contain applications which need to be run by administrators.
  3. Because the Installscript run from the setup application will run prior to installing Steam and your game, the %INSTALLDIR% Installscript variable will refer to the resources directory on the install media and you will not have access to the install path for your game.

Because of these limitations, you should create a new version of your installscript that contains only applications that need to be run by an administrator (DirectX redist, MSVC++ redist, etc.). After creating and signing the new installscript vdf through the game admin, move the file to resources\installscript.vdf.

For more information about Installscript, see Making and Using an InstallScript.

Testing

Once you have built your installation files and customized the setup application, you will have a gold master image you can use for testing and replication. If your depots have not been uploaded to the public Steam universe, you will need to test your gold master with a Steam client configured to use your local content server. When testing on a machine with an existing installation of Steam, simply place the steam_dev.cfg which points to your local content server in the same directory as your Steam installation. When testing on a machine which does not have Steam installed, you will need to:
  • Create the directory you plan to install Steam into
  • Place a copy of the steam_dev.cfg that points to your local content server in this new directory
  • Select your new directory when installing Steam through your gold master
When you have a final version of your gold master, you should test it on computers WITH and WITHOUT Steam installed to check both install paths. Steam should show the status of your game as 100% after the installation is completed.