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.

Settings screen

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