W3cubDocs

/Godot 3.1

ConfigFile

Inherits: Reference < Object

Category: Core

Brief Description

Helper class to handle INI-style files.

Methods

void erase_section ( String section )
PoolStringArray get_section_keys ( String section ) const
PoolStringArray get_sections ( ) const
Variant get_value ( String section, String key, Variant default=null ) const
bool has_section ( String section ) const
bool has_section_key ( String section, String key ) const
Error load ( String path )
Error save ( String path )
void set_value ( String section, String key, Variant value )

Description

This helper class can be used to store Variant values on the filesystem using INI-style formatting. The stored values are identified by a section and a key:

[section]
some_key=42
string_example="Hello World!"
a_vector=Vector3( 1, 0, 2 )

The stored data can be saved to or parsed from a file, though ConfigFile objects can also be used directly without accessing the filesystem.

The following example shows how to parse an INI-style file from the system, read its contents and store new values in it:

var config = ConfigFile.new()
var err = config.load("user://settings.cfg")
if err == OK: # if not, something went wrong with the file loading
    # Look for the display/width pair, and default to 1024 if missing
    var screen_width = config.get_value("display", "width", 1024)
    # Store a variable if and only if it hasn't been defined yet
    if not config.has_section_key("audio", "mute"):
        config.set_value("audio", "mute", false)
    # Save the changes by overwriting the previous file
    config.save("user://settings.cfg")

Keep in mind that section and property names can’t contain spaces. Anything after a space will be ignored on save and on load.

Method Descriptions

void erase_section ( String section )

Deletes the specified section along with all the key-value pairs inside.

PoolStringArray get_section_keys ( String section ) const

Returns an array of all defined key identifiers in the specified section.

PoolStringArray get_sections ( ) const

Returns an array of all defined section identifiers.

Variant get_value ( String section, String key, Variant default=null ) const

Returns the current value for the specified section and key. If the section and/or the key do not exist, the method returns the value of the optional default argument, or null if it is omitted.

bool has_section ( String section ) const

Returns true if the specified section exists.

bool has_section_key ( String section, String key ) const

Returns true if the specified section-key pair exists.

Error load ( String path )

Loads the config file specified as a parameter. The file’s contents are parsed and loaded in the ConfigFile object which the method was called on. Returns one of the @GlobalScope.OK, @GlobalScope.FAILED or ERR_* constants listed in @GlobalScope. If the load was successful, the return value is @GlobalScope.OK.

Error save ( String path )

Saves the contents of the ConfigFile object to the file specified as a parameter. The output file uses an INI-style structure. Returns one of the @GlobalScope.OK, @GlobalScope.FAILED or ERR_* constants listed in @GlobalScope. If the load was successful, the return value is @GlobalScope.OK.

void set_value ( String section, String key, Variant value )

Assigns a value to the specified key of the specified section. If the section and/or the key do not exist, they are created. Passing a null value deletes the specified key if it exists, and deletes the section if it ends up empty once the key has been removed.

© 2014–2019 Juan Linietsky, Ariel Manzur, Godot Engine contributors
Licensed under the MIT License.
http://docs.godotengine.org/en/3.1/classes/class_configfile.html