# Controls

![The Titanfall 2 Controls settings menu with the added sv\_cheats highlighted](https://3680263823-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-LPXG6BIVWwbrvVSOiBw-887967055%2Fuploads%2Fgit-blob-fc19817cd8ec6f1729495419e17f1db2bff8bc43%2Fsnapshot0014.jpg?alt=media)

## File Location

The Controls menu file is located in `englishclient_frontend.bsp.pak000_dir.vpk`**,** and is made up of two files:

* `resource\ui\menus\controls.menu`
* `scripts\vscripts\ui\menu_controls.nut`

## How it works

Each settings toggle that resides in the Controls menu and other menu's like Advanced HUD are layed out like this:

```
SwchAutoSprint
		{
			ControlName				RuiButton
			InheritProperties		ControlsSwitchButton
			style					DialogListButton
			pin_to_sibling			ImgGeneralSubheaderBackground
			pin_corner_to_sibling	TOP_LEFT
			pin_to_sibling_corner	BOTTOM_LEFT
			xpos					-22
			navUp					BtnControllerOpenAdvancedMenu [$GAMECONSOLE]
			navUp					SwchMouseInvertY [!$GAMECONSOLE]
			navDown					SwchHoldToRodeo
			tabPosition				1
			ConVar					"autosprint_type"
			list
			{
				"#MENU_AUTOMATIC_SPRINT_OFF"			0
				"#MENU_AUTOMATIC_SPRINT_ON"				1
				"#MENU_AUTOMATIC_SPRINT_ON_PILOTONLY"	2
				"#MENU_AUTOMATIC_SPRINT_ON_TITANONLY"	3
			}
		}
```

`SwchAutoSprint` is the variable name of the setting.

`pin_to_sibling` is the variable name of the setting above it.

`navUp` is the variable name of the setting you will navigate to when pressing up (usually above it).

`navDown` is the variable name of the setting you will navigate to when pressing down (usually below it).

`ConVar` the source variable that you are modifying e.g `cl_showpos`, `cl_showfps`, or `sv_cheats`.

`list` a set of options for the `Convar`:

```
list
{
    "Disable" 0
    "Enable" 1
}
```

## Adding Descriptions

In the `menu_controls.nut` file, create a new line close to the other settings to keep them organised an easy to come back to later. You will now need to setup a new button for your setting variable:

```
SetupButton( Hud_GetChild( menu, "SwitchEnableCheats" ), "Enable Cheats", "Toggles `1sv_cheats`0 Enables extra commands." )
```

The new setting I'm creating is for `sv_cheats` which I've called `SwitchEnableCheats`.

`"Enable Cheats"` is the setting name that you will see in the menu (see screenshot for example).

``"Toggles `1sv_cheats`0 Enables extra commands."`` is the description of the setting.

You will notice that there is a `` `1 `` and a `` `0 ``. These will change the color of the text. 1 sets it blue and 0 sets it back white.

The last thing you will need to do is add one more line to the file under this function, which is already in the file:

```
void function Controller_ResetToDefaults()
{

}
```

Add your new setting to the function like this:

```
SetConVarToDefault( "sv_cheats" )
```

`sv_cheats` being the Source Variable that you added.

## Avoiding Errors

When adding new settings, make sure you adjust the `pin_to_sibling`, `navUp`, and `navDown` of the previous and next setting, otherwise you can overlap them.
