Config Files
Ryzom uses his own config file system. It's used for the client, the server and tools using the same layout.
Client
There's 2 files: client.cfg
and client_default.cfg
. Both files are used. The client load client.cfg
at the beginning and inside the cfg, there a link to the default one.
The default cfg contains all the generic values and client.cfg override some variables for a specific system.
This system is pretty useful because if we have to add a new variable, we can patch client_default.cfg and it'll not erase the user specific variables that are in client.cfg (this file is never patched).
Server
It's the same system. The *_default.cfg is where the default value are, and *.cfg are special values for a dedicated server. So if you have to modify a value, always edit the cfg and not the default cfg.
All default cfg include common.cfg. This is a great way to add variables that are used by all services so you don't have to duplicate them in all cfg. If you put a variable in common.cfg, all services will see it.
The current problem with *.cfg in server is that it s full of garbage. Lot of variables are in all .cfg but is only use by one or 2 services. A task will be to clean the *.cfg by checking which variable is used by which service and remove them in other cfg. Of a variable is used by more than one service, then move it in common.cfg.