ConVar

From Valve Developer Community
Jump to: navigation, search
Español Русский

For a description of what a Console Variable is, see Commands and variables.

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


A 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 ConVar 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 ConVar 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 ConVar 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 ConVars 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