Settings¶
GOAT provides a default settings screen, available when the player
presses Esc while in EXPLORING
mode. Currently, only the most
important settings are supported. The settings file (INI-style) is saved
in user://settings.cfg
. When the program runs for the first time,
the file is created with the default values.
Section | Key | Default value |
---|---|---|
graphics | fullscreen_enabled | true |
graphics | glow_enabled | true |
graphics | reflections_enabled | true |
graphics | shadows_enabled | true |
graphics | ao_enabled | true |
sound | music_volume | 1.0 |
sound | effects_volume | 1.0 |
controls | mouse_sensitivity | 0.3 |
gui | subtitles | true |
gui | scope | true |
gui | language | first matched |
Note: the volume is a value between 0 (complete silence) and 1 (default bus volume), which is recalculated to a non-linear value between -80 and 0 dB (using a linear value causes the sound to almost vanish long before the volume slider reaches minimum). Mouse sensitivity is used for player’s camera rotation and inventory item rotation.
The default value of the language
setting is determined based on provided
translations and currently selected locale. Please check the
goat_settings.find_matching_loaded_locale
method for more details about the
process. The matching happens only once, when the game runs for the first time
and the language
is not yet set. After that, the value is saved with the
rest of the settings and can be changed manually to any language with provided
translations.
In order to react to changes in settings, you can connect to a signal:
goat_settings.value_changed (section, key)
Methods for reading and modifying the values are also available:
goat_settings.get_value(section, key)
goat_settings.set_value(section, key, value)
By default, any change will emit a signal and save the settings file. You can prevent the file saving:
goat_settings.autosave = false