ConfigFile

Helper class to handle INI-style files.

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:

More...

Members

Aliases

BaseClasses
alias BaseClasses = AliasSeq!(typeof(_GODOT_base), typeof(_GODOT_base).BaseClasses)
Undocumented in source.

Functions

clear
void clear()
eraseSection
void eraseSection(String section)

Deletes the specified section along with all the key-value pairs inside. Raises an error if the section does not exist.

eraseSectionKey
void eraseSectionKey(String section, String key)

Deletes the specified key in a section. Raises an error if either the section or the key do not exist.

getSectionKeys
PoolStringArray getSectionKeys(String section)

Returns an array of all defined key identifiers in the specified section. Raises an error and returns an empty array if the section does not exist.

getSections
PoolStringArray getSections()

Returns an array of all defined section identifiers.

getValue
Variant getValue(String section, String key, VariantArg2 _default)

Returns the current value for the specified section and key. If either the section or the key do not exist, the method returns the fallback default value. If default is not specified or set to null, an error is also raised.

hasSection
bool hasSection(String section)

Returns true if the specified section exists.

hasSectionKey
bool hasSectionKey(String section, String key)

Returns true if the specified section-key pair exists.

load
GodotError 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 error code constants (OK on success).

loadEncrypted
GodotError loadEncrypted(String path, PoolByteArray key)

Loads the encrypted config file specified as a parameter, using the provided key to decrypt it. The file's contents are parsed and loaded in the ConfigFile object which the method was called on. Returns one of the error code constants (OK on success).

loadEncryptedPass
GodotError loadEncryptedPass(String path, String password)

Loads the encrypted config file specified as a parameter, using the provided password to decrypt it. The file's contents are parsed and loaded in the ConfigFile object which the method was called on. Returns one of the error code constants (OK on success).

opAssign
typeof(null) opAssign(typeof(null) n)
opEquals
bool opEquals(ConfigFile other)
opEquals
bool opEquals(typeof(null) n)
parse
GodotError parse(String data)

Parses the passed string as the contents of a config file. The string is parsed and loaded in the ConfigFile object which the method was called on. Returns one of the error code constants (OK on success).

save
GodotError 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 error code constants (OK on success).

saveEncrypted
GodotError saveEncrypted(String path, PoolByteArray key)

Saves the contents of the ConfigFile object to the AES-256 encrypted file specified as a parameter, using the provided key to encrypt it. The output file uses an INI-style structure. Returns one of the error code constants (OK on success).

saveEncryptedPass
GodotError saveEncryptedPass(String path, String password)

Saves the contents of the ConfigFile object to the AES-256 encrypted file specified as a parameter, using the provided password to encrypt it. The output file uses an INI-style structure. Returns one of the error code constants (OK on success).

setValue
void setValue(String section, String key, VariantArg2 value)

Assigns a value to the specified key of the specified section. If either the section 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.

toHash
size_t toHash()

Mixins

__anonymous
mixin baseCasts
Undocumented in source.

Static functions

_new
ConfigFile _new()

Construct a new instance of ConfigFile. Note: use memnew!ConfigFile instead.

Static variables

_classBindingInitialized
bool _classBindingInitialized;
Undocumented in source.

Structs

GDNativeClassBinding
struct GDNativeClassBinding
Undocumented in source.

Unions

__anonymous
union __anonymous
Undocumented in source.

Variables

_GODOT_internal_name
enum string _GODOT_internal_name;
Undocumented in source.

Mixed In Members

From mixin baseCasts

as
inout(To) as()
Undocumented in source. Be warned that the author may not have intended to support it.
as
inout(To) as()
Undocumented in source. Be warned that the author may not have intended to support it.
as
inout(ToRef) as()
Undocumented in source. Be warned that the author may not have intended to support it.
opCast
template opCast(To)
Undocumented in source.
opCast
template opCast(To)
Undocumented in source.
opCast
template opCast(ToRef)
Undocumented in source.
opCast
void* opCast()
Undocumented in source. Be warned that the author may not have intended to support it.
opCast
godot_object opCast()
Undocumented in source. Be warned that the author may not have intended to support it.
opCast
bool opCast()
Undocumented in source. Be warned that the author may not have intended to support it.

Detailed Description

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 create a simple ConfigFile and save it on disk:

# Create new ConfigFile object. var config = ConfigFile.new()

# Store some values. config.set_value("Player1", "player_name", "Steve") config.set_value("Player1", "best_score", 10) config.set_value("Player2", "player_name", "V3geta") config.set_value("Player2", "best_score", 9001)

# Save it to a file (overwrite if already exists). config.save("user://scores.cfg")

This example shows how the above file could be loaded:

var score_data = {} var config = ConfigFile.new()

# Load data from a file. var err = config.load("user://scores.cfg")

# If the file didn't load, ignore it. if err != OK: return

# Iterate over all sections. for player in config.get_sections(): # Fetch the data for each section. var player_name = config.get_value(player, "player_name") var player_score = config.get_value(player, "best_score") score_dataplayer_name = player_score

Keep in mind that section and property names can't contain spaces. Anything after a space will be ignored on save and on load. ConfigFiles can also contain manually written comment lines starting with a semicolon (;). Those lines will be ignored when parsing the file. Note that comments will be lost when saving the ConfigFile. This can still be useful for dedicated server configuration files, which are typically never overwritten without explicit user action.

Meta