Configuration Library Wildcard config values, arrays, encryption, asset paths, and config file utilities for Unreal projects.
Use this library to read and write Unreal config files with wildcard Blueprint pins, native config arrays, encrypted strings, and path-safe config file utilities.
Want Advanced Config Features? Configuration Toolkit is a dedicated plugin for advanced Unreal config management, supporting wildcards, encryption, and cross-platform workflows.
View on Fab
Project Settings
Configure config-file behavior in Project Settings > Plugins > Windows Native Toolkit, under the Config Files category.
Most nodes expose an optional File Name pin.
File Name Result Empty Uses the default file name from WNT config settings. GameResolves Unreal's generated Game.ini. EngineResolves Unreal's generated Engine.ini. Profiles/UserAResolves under Unreal's generated config directory and appends .ini if needed. Absolute .ini path Uses that exact file path.
Editor Packaged
Saved/Config/WindowsEditor/
Field Details Purpose Writes one Blueprint value to a config key. The Value pin is a wildcard pin, so the connected pin type controls serialization. Gives bool return valueNeeds Section, Key, Value, File Name.
FString SerializedValue = TEXT ( "600.0" );
GConfig-> SetString ( TEXT ( "Player" ), TEXT ( "Speed" ), * SerializedValue, GGameIni);
GConfig-> Flush ( false , GGameIni);
Field Details Purpose Reads one config key back into the connected wildcard output pin type. Gives bool return value; output pin(s) ValueNeeds Section, Key, Value, File Name.
FString SerializedValue;
if (GConfig-> GetString ( TEXT ( "Player" ), TEXT ( "Speed" ), SerializedValue, GGameIni))
{
const float Speed = FCString :: Atof ( * SerializedValue);
}
Field Details Purpose Writes a Blueprint array using Unreal's native repeated config key format. Gives bool return valueNeeds Section, Key, Values, File Name.
TArray < FString > Items = { TEXT ( "Sword" ), TEXT ( "Shield" ) };
GConfig-> SetArray ( TEXT ( "Inventory" ), TEXT ( "Items" ), Items, GGameIni);
GConfig-> Flush ( false , GGameIni);
Field Details Purpose Reads a native config array back into the connected Blueprint array type. Gives bool return value; output pin(s) ValuesNeeds Section, Key, Values, File Name.
TArray < FString > Items;
const int32 Count = GConfig-> GetArray ( TEXT ( "Inventory" ), TEXT ( "Items" ), Items, GGameIni);
Field Details Purpose Adds one value to a config array only if an equivalent serialized value does not already exist. Gives bool return valueNeeds Section, Key, Value, File Name.
TArray < FString > Items;
GConfig-> GetArray ( TEXT ( "Inventory" ), TEXT ( "Items" ), Items, GGameIni);
Items. AddUnique ( TEXT ( "Potion" ));
GConfig-> SetArray ( TEXT ( "Inventory" ), TEXT ( "Items" ), Items, GGameIni);
GConfig-> Flush ( false , GGameIni);
Field Details Purpose Removes all matching values from a config array. Gives bool return valueNeeds Section, Key, Value, File Name.
TArray < FString > Items;
GConfig-> GetArray ( TEXT ( "Inventory" ), TEXT ( "Items" ), Items, GGameIni);
Items. Remove ( TEXT ( "Potion" ));
GConfig-> SetArray ( TEXT ( "Inventory" ), TEXT ( "Items" ), Items, GGameIni);
GConfig-> Flush ( false , GGameIni);
Field Details Purpose Encrypts one string with the AES key from WNT config settings and stores it as Base64 text. Gives bool return valueNeeds Section, Key, Value, File Name.
const bool bSuccess = UConfigurationLibrary :: WriteEncryptedString ( TEXT ( "Auth" ), TEXT ( "Token" ), TEXT ( "SecretValue" ), TEXT ( "Game" ));
Field Details Purpose Reads a Base64 config value and decrypts it with the AES key from WNT config settings. Gives bool return value; output pin(s) ValueNeeds Section, Key, Value, File Name.
FString Value;
const bool bSuccess = UConfigurationLibrary :: ReadEncryptedString ( TEXT ( "Auth" ), TEXT ( "Token" ), Value, TEXT ( "Game" ));
Field Details Purpose Converts an asset object reference to a soft object path string without loading anything new. Gives FString return valueNeeds Asset.
const FString Path = UConfigurationLibrary :: ConvertAssetToPath (Asset);
Field Details Purpose Converts a class reference to a soft class path string. Gives FString return valueNeeds Class.
const FString Path = UConfigurationLibrary :: ConvertClassToPath (ActorClass);
Field Details Purpose Converts a path string to a soft asset reference without loading the asset. Gives bool return value; output pin(s) AssetNeeds Path, Asset.
TSoftObjectPtr < UObject > Asset;
const bool bSuccess = UConfigurationLibrary :: ConvertPathToSoftAssetReference ( TEXT ( "/Game/UI/WBP_Menu.WBP_Menu" ), Asset);
Field Details Purpose Converts a path string to a soft class reference without loading the class. Gives bool return value; output pin(s) ClassNeeds Path, Class.
TSoftClassPtr < UObject > Class;
const bool bSuccess = UConfigurationLibrary :: ConvertPathToSoftClassReference ( TEXT ( "/Game/BP/BP_Enemy.BP_Enemy_C" ), Class);
Field Details Purpose Removes one scalar key or all repeated array entries for that key. Gives bool return valueNeeds Section, Key, File Name.
const bool bSuccess = UConfigurationLibrary :: ClearConfigKey ( TEXT ( "Player" ), TEXT ( "Speed" ), TEXT ( "Game" ));
Field Details Purpose Removes every key from one config section. Gives bool return valueNeeds Section, File Name.
const bool bSuccess = UConfigurationLibrary :: ClearConfigSection ( TEXT ( "Player" ), TEXT ( "Game" ));
Field Details Purpose Removes a whole section and all keys stored inside it. Gives bool return valueNeeds Section, File Name.
const bool bSuccess = UConfigurationLibrary :: RemoveConfigSection ( TEXT ( "Player" ), TEXT ( "Game" ));
Field Details Purpose Deletes a generated project config file and unloads it from GConfig when possible. Gives bool return valueNeeds File Name.
const bool bSuccess = UConfigurationLibrary :: DeleteConfigFile ( TEXT ( "Profiles/UserA" ));
Field Details Purpose Checks whether a key exists in a config file. Leave Section empty to search every section in the file. Gives bool return valueNeeds Section, Key, File Name.
const bool bExists = UConfigurationLibrary :: DoesConfigKeyExist ( TEXT ( "Player" ), TEXT ( "Speed" ), TEXT ( "Game" ));
Field Details Purpose Checks whether the resolved config file exists on disk. Gives bool return valueNeeds File Name.
const bool bExists = UConfigurationLibrary :: DoesConfigFileExist ( TEXT ( "Game" ));
Field Details Purpose Returns every section name currently known for the resolved config file. Gives TArray<FString> return valueNeeds File Name.
const TArray < FString > Sections = UConfigurationLibrary :: GetConfigSections ( TEXT ( "Game" ));
Field Details Purpose Forces the resolved config file to flush from GConfig to disk. Gives bool return valueNeeds File Name.
const bool bSuccess = UConfigurationLibrary :: FlushConfig ( TEXT ( "Game" ));
Write Config Value and Read Config Value are Blueprint wildcard nodes. In native C++, use GConfig directly when you need exact typed serialization logic.
Soft object and soft class reads do not load assets. Use Unreal's async loading nodes when you need the loaded object or class.
Encrypted string nodes require a 32-character, 32-byte AES key in Project Settings > Plugins > Windows Native Toolkit, under Config Files.
For generated configs on UE 5.4+, make sure the target file allows saving sections when you expect writes to persist.
Last updated on
File, folder, drive, and async file-operation nodes for Windows Native Toolkit.
Network Utilities Library
Connectivity, ping, DNS, interface, Wi-Fi, Ethernet, local-IP, and public-IP nodes.