Tutorial: Setting up a Mod: Part 2 - Splash Screens (Steam) Last edited 10 months ago2023-06-28 04:46:05 UTC

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 when it refers to a WON HL installation, refer to the Steam HL installation instead.

Furthermore, you'll have to create the following new folders in your mod folder if they don't already exist.

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.

The Game Menu

You wanna edit the menu links, right? Copy the GameMenu.res in the resource folder from the valve folder to your mod's equivalent. Open the copy with a text editor. You'll see a bunch of segments of parameters.
    "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 explanatory) 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: 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 available: 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.


That's not all you can customize, oh no. You can customize 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:
    "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.
Limitations of edits
You can't delete an element (radio button for example) because the menu code is still "aware" of it and thus will put default values on the element. This is annoying if you are trying to remove "Training Room" from the new game dialog for example.

An "ugly workaround" to that problem is to set a negative X and Y position to "hide" the element, but anyone with the knowledge could restore the "hidden" element or do something to trigger it so don't rely too much on it.

Adding interactive elements such as "check boxes", "radio buttons", "text edits" are pointless since the menu code has no "awareness" of them even if they will get displayed.
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 your mod's folder, you might need to restart your Steam client to see the change in your Steam's library.

Now you should be all customized up and ready.
Original title: Tutorial: Splash Screens for Steam


Commented 15 years ago2009-03-26 17:10:55 UTC Comment #100714
I found the Steam Splash Creator included with the tutorial didn't work for me fsr.... I got this one from fpsbanana, and it worked for me.
Commented 14 years ago2010-02-26 12:39:51 UTC Comment #100715
nice but hard
Commented 13 years ago2010-08-18 13:53:06 UTC Comment #100716
TY captain terror! ...and chickenfist for making this tutorial!
Commented 13 years ago2011-01-30 13:05:45 UTC Comment #100717
steam recently added a way to add a second 32x32 sized icon to display in the game description area (but no way to add game info text to show up on steam yet??? anyone?)

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
Commented 9 years ago2014-08-14 03:53:33 UTC Comment #100718
The splash screen method is not working, i cant see it ingame. The icon method works tho. Pleas help
Commented 9 years ago2014-09-03 06:43:45 UTC Comment #100719
Is SSC virus/Trojan free? Im asking because on Virus Total the detection ratio is 1/55 and im super cautious about this kind of stuff
Commented 9 years ago2015-02-18 18:47:52 UTC Comment #100720
You have to place the background folder into the resource folder, then the splash screen should work.
Commented 2 years ago2022-02-14 20:44:47 UTC Comment #104121
Yeah I just can't seem to get the icon to work
oh well
Commented 5 months ago2023-11-21 00:18:31 UTC Comment #105646
Half-Life 25th Anniversary changes
Due to Valve reworking the game menu to visually look like the old WON menu screen, the structure of GameMenu.res is changing and in flux until Valve finalizes it.
As usual, switch to the steam_legacy beta to continue using the old specs in the meantime.
  • 2024-05-08 - Safe to say the new specs have stabilized.
    • Mods no longer crashes if gamemenu is missing the WON-style help texts.
    • Mods with custom code may still crash from the differences in the UI resource files like new game dialog and option pages and may still require the legacy branch.

You must log in to post a comment. You can login or register a new account.