Coldest has a fairly simple console system that allows tweaking a number of parameters that are not currently connected to GUI widgets in the settings screen. It is important to note that there is very little error-checking in the console so it is possible to break things if you are not careful. However, it should always be possible to recover from a mistake by deleting the ~/.coldest/autoexec.cfg file (On Windows replace ~ with your user's AppData path). The game will recreate them the next time it starts.
As of right now, there are a handful of commands that can be used in the console. They currently consist of:
- set and setsave Used to change console variables. Syntax: set [variable name] [value]. Note that spaces are not allowed in value at this time, which means no spaces are allowed in player or server names either. A full explanation of the difference between set and setsave is below.
- kill Sends a suicide request to the server. Intended for use by players if they find themselves in a situation they cannot get out of any other way.
- exit or quit Properly exit the game from the console. Mostly useful if there is a graphical issue that prevents use of the regular menu. Better than killing the process because this allows the console to write out any configuration changes before exiting.
- help Fairly useless right now, but at some point in the future should list some of the information on this page.
- auth Authenticate as admin with the server. This allows you to use the send command.
- send Send a command to the server. Enter the command exactly the same as if you were running it locally, but prefix it with send. For example send set map riverside will change the server's map to riverside.
- connect Mostly intended for internal use only. This attempts to connect to the address set in the serveraddr cvar.
- restartgl Also mostly for internal use. This forces the game to restart the OpenGL context, which is useful when starting up and after changing graphical options. It should be called automatically by the settings page when a change requiring it is made.
- reloadres Forces a reload of the current map. This is intended for development testing only and is probably not safe to use in a regular game.
Note that all commands are case-sensitive.
First, it is a good idea to have a basic understanding of how console variables are handled. They can be created and altered using the aforementioned set and setsave commands, the only difference being whether the variable is saved through a restart of the game. Variables changed using setsave are only written to autoexec.cfg when the game exits, so if it crashes before it has a chance to do so they will not be saved and will remain the value they were prior to the crashed run.
In addition, setsave just marks the variable for saving, so even if it is subsequently changed using just set, the most recent value will still be saved at game exit. For example, one potential place that this could come up is the map variable. If a server admin runs setsave map riverside then later runs set map oneway the value written to autoexec.cfg will be "oneway" because it was the most recent value. For this reason it is a good idea to only use setsave immediately before a restart. Do note that regular map changes after a game ends no longer set the map variable, so that is not a concern anymore.
There are too many cvars defined by default to list them all here, but they should all be found in a clean copy of autoexec.cfg (i.e. one created by the game from scratch). Note that as new cvars are added to the game, they will not necessarily show up in autoexec.cfg until they are setsaved or autoexec.cfg has to be recreated. They will be present in the game, but by default it only marks all cvars for saving when it first creates autoexec.cfg, so if you already have an autoexec.cfg created by an older version then new cvars won't be in the file. This is okay because the game defaults all variables to a sane value to begin with. These values can then be overridden by the values in autoexec.cfg, but do not need to be if the defaults are fine.
Some variables have actions associated with them because in some cases when a variable is changed other parts of the game need to be explicitly told about it because it's not practical for them to poll the console for changes. Some of these include:
- map Set this variable to change the map. For example, set map oneway will change the map to oneway. At this time there are a few maps shipped with the game that are not complete, but I think they should all work to some extent.
- shadowres Controls the resolution of the shadowmap textures. It is recommended that this be a power of two, although on newer cards other values should work too.
- reflectionres Same as shadowres, but for the water reflection texture.
- laghax Causes the netcode to simulate the specified amount of lag. Note that if this is set on both the client and server it will cause double the amount of lag (for instance, setting it to 50 on both will cause a minimum possible ping of 100). This is the best way to use it as lag will never be one-way in actual usage.
There are others, but they can be set from the settings screen so it is recommended that they be changed through that.
More variables will be added here as they are found to be useful to players.