Manipulating the game menu items

From Valve Developer Community
Jump to: navigation, search

This tutorial will show you how to add new game menu items to the main HL2 game menu that will execute the console commands to hide and show the current FPS. Changing the game menu items of the HL2 GUI is as easy as changing the values in the ../SteamApps/SourceMods/YourMod/Resource/GameMenu.res using any text editor. If you have not started to create your own HL2 mod you will need to extract the GameMenu.res file from the ../SteamApps/source engine.gcf group file using GCFScape. Look under root/hl2/resource/GameMenu.res to find the file. You will need to extract the GameMenu.res file into the ../SteamApps/<USERNAME>/half-life2/hl2/resource folder. Or if you want to customize your own mod then extract the file to ../SteamApps/SourceMods/YourMod/Resource/GameMenu.res.

Once you have opened the ../SteamApps/SourceMods/YourMod/Resource/GameMenu.res file scroll down to the bottom and add the following lines before the last curly bracket } at the end of the file ...

		"label" "Show FPS"
		"command" "engine cl_showfps 1"
		"label" "Hide FPS"
		"command" "engine cl_showfps 0"
Note:To have a menu option show up only while in-game, use "OnlyInGame" "1". To prevent a menu item showing up while in-game use, "notmulti" "1" and "notsingle" "1".

From the example above you can see that we have added 2 new label entries. The first entry "Show FPS" will set cl_showfps to 1 which will display the current FPS on the screen. The second entry will hide the current FPS.

You may also notice that the label for the quit item is "#GameUI_GameMenu_Quit". That is because it is a localized string in ../Resource/gameui_english.txt . (A copy of gameui_english.txt can be found in the ../SteamApps/source engine.gcf group file) You can also add your own strings in gameui_english.txt or HL2_english.txt and use them to label your game menu items.

Note:If you are making your own mod then you will need to make sure that you make a copy of ../Resource/HL2_english.txt and rename it to ../Resource/NameOfYourMod_english.txt. Otherwise Source will not be able to locate it.