<?xml version="1.0" encoding="UTF-8" ?> <class name="ConfigFile" inherits="Reference" category="Core" version="3.2"> <brief_description> Helper class to handle INI-style files. </brief_description> <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: [codeblock] [section] some_key=42 string_example="Hello World!" a_vector=Vector3( 1, 0, 2 ) [/codeblock] 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: [codeblock] 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") [/codeblock] Keep in mind that section and property names can't contain spaces. Anything after a space will be ignored on save and on load. </description> <tutorials> </tutorials> <methods> <method name="erase_section"> <return type="void"> </return> <argument index="0" name="section" type="String"> </argument> <description> Deletes the specified section along with all the key-value pairs inside. </description> </method> <method name="erase_section_key"> <return type="void"> </return> <argument index="0" name="section" type="String"> </argument> <argument index="1" name="key" type="String"> </argument> <description> </description> </method> <method name="get_section_keys" qualifiers="const"> <return type="PoolStringArray"> </return> <argument index="0" name="section" type="String"> </argument> <description> Returns an array of all defined key identifiers in the specified section. </description> </method> <method name="get_sections" qualifiers="const"> <return type="PoolStringArray"> </return> <description> Returns an array of all defined section identifiers. </description> </method> <method name="get_value" qualifiers="const"> <return type="Variant"> </return> <argument index="0" name="section" type="String"> </argument> <argument index="1" name="key" type="String"> </argument> <argument index="2" name="default" type="Variant" default="null"> </argument> <description> 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 [code]default[/code] argument, or [code]null[/code] if it is omitted. </description> </method> <method name="has_section" qualifiers="const"> <return type="bool"> </return> <argument index="0" name="section" type="String"> </argument> <description> Returns [code]true[/code] if the specified section exists. </description> </method> <method name="has_section_key" qualifiers="const"> <return type="bool"> </return> <argument index="0" name="section" type="String"> </argument> <argument index="1" name="key" type="String"> </argument> <description> Returns [code]true[/code] if the specified section-key pair exists. </description> </method> <method name="load"> <return type="int" enum="Error"> </return> <argument index="0" name="path" type="String"> </argument> <description> 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 [constant OK], [constant FAILED] or [code]ERR_*[/code] constants listed in [@GlobalScope]. If the load was successful, the return value is [constant OK]. </description> </method> <method name="load_encrypted"> <return type="int" enum="Error"> </return> <argument index="0" name="path" type="String"> </argument> <argument index="1" name="key" type="PoolByteArray"> </argument> <description> </description> </method> <method name="load_encrypted_pass"> <return type="int" enum="Error"> </return> <argument index="0" name="path" type="String"> </argument> <argument index="1" name="pass" type="String"> </argument> <description> </description> </method> <method name="save"> <return type="int" enum="Error"> </return> <argument index="0" name="path" type="String"> </argument> <description> 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 [constant OK], [constant FAILED] or [code]ERR_*[/code] constants listed in [@GlobalScope]. If the load was successful, the return value is [constant OK]. </description> </method> <method name="save_encrypted"> <return type="int" enum="Error"> </return> <argument index="0" name="path" type="String"> </argument> <argument index="1" name="key" type="PoolByteArray"> </argument> <description> </description> </method> <method name="save_encrypted_pass"> <return type="int" enum="Error"> </return> <argument index="0" name="path" type="String"> </argument> <argument index="1" name="pass" type="String"> </argument> <description> </description> </method> <method name="set_value"> <return type="void"> </return> <argument index="0" name="section" type="String"> </argument> <argument index="1" name="key" type="String"> </argument> <argument index="2" name="value" type="Variant"> </argument> <description> 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 [code]null[/code] value deletes the specified key if it exists, and deletes the section if it ends up empty once the key has been removed. </description> </method> </methods> <constants> </constants> </class>