In this tutorial you'll find out how to use a custom splash screen in Steam HL. Start by reading
the related tutorial for WON HL if you haven't already.
Modding the Steam main menu is slightly more complicated then in WON HL, but oh so much more flexible.
Creating your mod
Do this like in the first part of the WON tutorials, except that your mod should be located in:
C:\Program Files\Valve\Steam\SteamApps\yourname\half-life\yourmodFurthermore, you'll have to create the following new folders if they don't already exist.
- yourmod\resource
- yourmod\resource\background
- yourmod\gfx
Splash Screens
This can be done easily using a program called
Steam Splash Creator.
Then make your splash picture: 1024x768 is recommended. Save it somewhere as a Windows Bitmap (.BMP). Open up Steam Splash Creator and press Load Image. Select your image and press "OK". Now press
Make Splash select the
background/ folder you created earlier, and you're done.
You wanna edit the menu links, right? Open
GameMenu.res in the resource folder with a text editor. You'll see a bunch of segments of parameters.
"9"
{
"label" "#GameUI_GameMenu_FindServers"
"command" "OpenServerBrowser"
"notsingle" "1"
}
This one, for example, is the Find Servers button.
"label" controls the label, shockingly enough. #GameUI_GameMenu_FindServers gets the title from the language file, but unless you're planning on multi-language support you can just change it to anything you want.
"command" controls what happens when you press the button. OpenServerBrowser is a Steam client command that opens the server browser. (Damn, it's all so self explainatory) You can change it to any other Steam command, such as OpenLoadGameDialog which would cause the button to open the load game dialog instead.
Available commands are:
- ResumeGame
- Disconnect
- OpenPlayerListDialog
- OpenNewGameDialog
- OpenLoadGameDialog
- OpenSaveGameDialog
- OpenServerBrowser
- OpenCreateMultiplayerGameDialog
- OpenLoadDemoDialog
- OpenChangeGameDialog
- OpenOptionsDialog
- Quit
I'll let you guess what they do.
You can also use engine commands.
Entering
engine <console command>, would cause the button to execute the console command when pressed. Example:
"command" "engine map c1a0"
This would cause the button to start the map c1a0.
The third parameter,
"notsingle" makes the button invisible in singleplayer mode. Other similar parameters are avalible:
notmulti,
OnlyInGame and
notsteam. They can be used together, like this:
"notsingle" "1"
"OnlyInGame" "1"
This would cause the button to only be visible when in a multiplayer game.
Dialogs
That's not all you can customise, oh no. You can customise all the dialogs as well. They all have their own .res file in the
resource folder.
NewGameDialog.res contains the new game dialog (Couldn't guess, could you?).
The dialogs are more complex then the menu. If you open the .res you'll see segments like these:
"Training"
{
"ControlName" "RadioButton"
"fieldName" "Training"
"xpos" "40"
"ypos" "94"
"wide" "220"
"tall" "24"
"autoResize" "0"
"pinCorner" "0"
"visible" "1"
"enabled" "1"
"tabPosition" "1"
"labelText" "#GameUI_TrainingRoom"
"textAlignment" "west"
"dulltext" "0"
"default" "0"
"SubTabPosition" "1"
}
This is the
Training Room radio button.
"labelText" changes the label. The other stuff should be self-explanatory enough, you'll have to try and change them and see what happens.
You can also change the colour of these dialogs, but I won't explain this in any detail. The colour scheme is contained in
ClientScheme.res. You should be able to figure it out or find some old Steam skin creation tutorial, as the process is pretty much the same.
Steam Games icon
As you might have noticed, some games have small icons in the Steam games list. You can, too.
Create a 16x16 32bit tga, name it icon.tga and put in
yourmod/gfx. Open liblist.gam and add a new line;
icon "gfx/icon"Now you should be all customised up and ready.
to make the 32x32 icon, put your 32x32 tga icon file in same location as the 16x16 but add "_big" to the end of the file name
oh well
As usual, switch to the steam_legacy beta to continue using the old specs in the meantime.