GameMenu.res

is the file that controls the menu buttons that will appear in the in-game menu. Mods can use this for adding new command buttons to their main menu. 
They are simply a text document saved with a .res extension. 
== Example ==
 from :
== Example #2 ==
 from , 20th Anniversary Update / :
== File format ==
=== Parameters ===
Parameter 	Purpose
name 	
label 	The display text of the button. If appended with a pound symbol, it will correspond to the corresponding key-value pair in gameui_<LANGUAGE>.txt.
command 	The command to run when the button is clicked, not to be confused with a console command (although console commands can be run using engine <command>). See List of commands for a list.
notsingle 	If set to "1", will not display in singleplayer.
notmulti 	If set to "1", will not display in multiplayer.
notsteam 	If set to "1", will not display if game is launched with .
InGameOrder 	
OnlyInGame 	If set to "1", will only display if the user is currently ingame.
ConsoleOnly 	If set to "1", will only display on consoles, such as the Xbox 360.
Caps 	(?)
NotInGame 	If set to "1", will not display while ingame. Opposite of "OnlyInGame"
MenuCategory 	λ Sets the category that your options will appear under. (If it is not set, any options lacking this param will appear on the "main" category and possibly any other category too.)
ExcludeFromMenuCategory	Any categories listed for the option this param is listed under will not appear. For example, the achievements option the pause menu will not show while playing either a workshop campaign or Lost Coast, as they will not and do not, respectively, have them.
=== Commands ===
This is the list of commands that can be assigned to a GameMenu button. You can try these in the console with gamemenucommand. Some of these only work on multiplayer mods, some command can't be issued in the main menu and some only works on the Xbox 360 platform.
There are several undocumented commands and those are not shown here.
Command 	What it does 	Notes
OpenPlayerListDialog 	Players can mute other players here 	Non-functional on singleplayer branch
OpenNewGameDialog 	Shows the chapter selection window 	
OpenLoadGameDialog 	Shows the load game window 	X360 has a different dialog.
OpenSaveGameDialog 	Shows the save game window 	X360 has a different dialog.
OpenBonusMapsDialog 	Shows the "Bonus Maps" dialog 	
OpenOptionsDialog 	Shows the options dialog 	X360 has a different dialog.
OpenControllerDialog 	Shows controller settings; Sets controls to controller friendly inputs 	Only works on console UI.; Mainly used for the Android port for the Nvidia Shield line of devices, doesn't show controller settings - just changes the settings.
OpenBenchmarkDialog 	Opens the Lost Coast benchmark dialog 	
OpenServerBrowser 	Shows a list of game servers 	Also opens on singleplayer.
OpenFriendsDialog 	Shows a list of Steam friends 	Non-functional.
OpenLoadDemoDialog 	Does nothing (maybe it's supposed to show demoui) 	
OpenCreateMultiplayerGameDialog 	Shows the listen server creation dialog 	First page works on singleplayer.
OpenChangeGameDialog 	Non-functional, players can load other games/mods here 	(Leftover from GoldSrc?)
OpenLoadCommentaryDialog 	Shows a dialog with a list of commentaries 	This is for multiplayer games
OpenLoadSingleplayerCommentaryDialog	Shows the new game dialog, but this one starts the game in commentary mode 	This is for singleplayer games
OpenMatchmakingBasePanel 	Unknown, maybe used for Team Fortress 2 	On Source 2013 this opens an transparent panel covering the whole screen, effectively making the menu unusable
OpenAchievementsDialog 	Shows the achievements dialog 	Shows a message if the player is not using Steam or is logged off. On X360 the native dialog is shown.
Quit 	Shows the quit confirmation dialog 	
QuitNoConfirm 	Closes the game without confirmation 	
ResumeGame 	Hides the menu when in-game 	
Disconnect 	Disconnects from the game 	Shows a confirmation dialog on X360
DisconnectNoConfirm 	Disconnects from the game without confirmation 	Also closes all dialogs if the Matchmaking Base Panel is open
engine <concommand> 	Executes console command <concommand>. Some creative examples include engine connect.2341 	
RestartWithNewLanguage 	Closes the game and makes it start in a new language next time. 	Only works on PC. Used when the spoken language is modified in the Audio options. Works by setting a string value called a "Relaunch URL" in regedit with value steam://run/<appid>/<language>. This makes Steam execute this URL after the current game exits. (doesn't work with mods)
SwitchExpansion 	Loads a different expansion, similar to "SwitchCategory" λ 	Only has an effect or even works if the game is launched through steam and isn't on the "steam_legacy" beta branch or is launched with the "-game hl2_complete" launch param in either a terminal or .bat file. Each command used has the corresponding mod / game folder affixed to the end of it, "SwitchExpansion hl2" will change to base HL2, ".. episodic" will change to Episode One, etc. etc.
SwitchCategory 	Similar to "SwitchExpansion", though this will just switch your menu options available to those of a different mod.	
== Files ==
Inside the folder.
== References ==
GameMenu.res by massivegod https://gamebanana.com/scripts/2341
"gamemenu.res" - ; Valve Software
== Notes ==
λ: I have tried to add in more commands and menu options myself three times so far, I can get it to work almost entirely except for the fact it doesn't load any other game properly and will still keep the game that was previously loaded active. For example, if you added in menu options for "Portal" and tried to load the game through the HL2 20thAnniv menu, it would just not load it at all. It'll look like it loaded, but the loading bar is fake or it's just reloading the prior game files. So as far as I'm concerned, you will not be able to set up your own mods or other Source games (e.g., HL: Source, Portal) as I have tried and failed. This is less of a note, and more of a warning / advisement for others looking to try this. -veeanti
Category:Source
Category:Plain text formats
Category:Plain text files