FAH6 Client.cfg

General
The file client.cfg stores the configuration of the F@H client. It was first documented on this wiki on Client.cfg for the v5 F@H client. This page documents the client.cfg generated by the v6 F@H client.

It looks like an ordinary ASCII text file, but the client actually reads it as a binary file. Therefore do not attempt to manually edit the file. The client, for instance, expects the file to use UNIX line endings.

The information on this page reflects the Linux client v6.23 Beta R1.

Format
Its format appears to be that of an .ini file. With sections in square brackets, and individual settings in name equals value format. Each section is ended with an empty line.

When running  and accepting the default values, the client.cfg has the contents as depicted below.

Behaviour
It appears that the client only writes settings in client.cfg if they are changed from their defaults. The default values proposed by the configuration menu are loaded from the existing client.cfg if the file is readable, or from preprogrammed values inside the program if no client.cfg is available.

If the proxy password is set, it used to appear to be encrypted with the v5 client, now its stored clear text.

If you were to go through the advanced options but don't change any of the defaults, the resulting client.cfg is slightly different as if you would have skipped the advanced options:

Invalid content in the client.cfg results in the file being overwritten with default values, i.e. no user name or team #.

Editing the client.cfg
The client.cfg file is not a text file in a regular sense, it's actually a UNIX text file which the client reads as a binary as mentioned above. It should therefore also be treated as a binary file.

DO NOT manually modify the client.cfg. Make all changes using the FAH client configuration. (see -config and -configonly flags). Manual modification of any F@h client files is against the EULA. And as noted above, if you make a mistake, it can cause points for completed work to be credited to a user name other than yours.

Here is what Dick Howell, the author of qd, and Adam Beberg, the author of Cosm, had to say about the client.cfg:

The client.cfg file is not really a text. It is managed by the Cosm package, which is used by the client as an aid to machine-independence. You've got the right idea with the newlines. The routines which handle the config file are fairly picky about the format, expecting that it will only be manipulated by the client itself, when it is first started or later run with the -config flag. Here is what Adam Beberg, who wrote Cosm, says about it in the header file for the config file functions: The Rules: o These are binary files, not text. You're not supposed to have to edit them. o Config files contain ascii, not unicode. o No linefeeds (\n) in section/keys/values - those are line separators. o No '=' or '[' in keys, and avoid ']'. o Everything is case sensitive. o Blank lines are ignored, but added at the end of sections for humans. o Any improperly formatted line is discarded. o Comment lines don't exist, that's what documentation is for. o The majority of cases the config will only be read, so optimize for reading.

See also: Cosm API - Program Config File Functions

Which option changes what client.cfg setting
Legend: If there are more O lines below a single S line, it means that all those options are required to set that value in client.cfg
 * S: The setting in client.cfg
 * O: The option in the -configonly menu or the label in the Graphical client
 * N: A note on the circumstances needed for this value of the setting

Links