This article's documentation is for anything that uses the Source engine. Click here for more information.

ConVar

From Valve Developer Community
Jump to navigation Jump to search
English (en)Español (es)Русский (ru)Translate (Translate)

Stub

This article or section is a stub. You can help by expanding it.

ConVar is the C++ class used to create a console variable (frequently shortened to "cvar"), which is used in the Developer Console.

Documentation on specific console variables can be found at Category:Console variables. For creating a new Console Variable see this. Developer Console Control


ConVar uses the constructor shown below:

ConVar( const char *pName, const char *pDefaultValue, int flags, const char *pHelpString, bool bMin, float fMin, bool bMax, float fMax );

The default value given as the second argument of the ConVar constructor is not the value set. To set a value, use:

pName->SetValue([value]);

Good Practices

  • Variables that you wish to be saved should be marked with flag FCVAR_ARCHIVE. These will be saved with the user bindings in config.cfg. Any cheat cvar should not be archived.
  • After whatever flags you may want to add (or 0 if you don't want any), you can set a help string. This will display when someone enters in the ConVar without any value or if they enter an invalid value. You can use \n to make a new line and use spaces after that to indent lines. Make your help-strings as rich and detailed as you want!
  • Use the flag FCVAR_CHEAT to signify a ConVar that can only be used when sv_cheats is turned on.
  • Use the flag FCVAR_REPLICATED to signify a server variable which is then replicated onto clients. For example, round timers or game rules should have this flag.
  • For multiplayer games, use FCVAR_NOTIFY to send a message in chat whenever this variable is changed. Use this for ConVars that change game mechanics.

For more tips using ConVar flags, see this page.

Examples

The code below will define a cvar named cl_test:

ConVar cl_test("cl_test", 0, 0, "Example ConVar");

Whats happening here is first, we are declaring the variable to be a ConVar, then we are setting the name of the cvar that would be used in games console, and after that, we set the default value, then flags, and finally, the help text for the console.

We can use use these cvars to initialize other variables, like if you wanted to create a integer named test you could do as so

int test = cl_test.GetInt();

You could also have it be a float, and call GetFloat()

Finally, don't forget to include convar.h in your file

See also

Developer Console Control