Hi everyone,
I’m trying to use UDeveloperSettings to store user configuration for my UE plugin, but I’ve encountered some inconsistent API behavior that doesn’t match the documentation.
Here’s my setup:
UCLASS(Config = FavoritesPlusRecords, ProjectUserConfig, meta = (DisplayName = “Favorites+ Records”))
class FAVORITESPLUS_API UFavoritesPlusRecords : public UDeveloperSettings
{
GENERATED_BODY()
public:
void SaveAndUpdate()
{
    SaveConfig();
    // Without calling this function, the disk file is not created/updated
    UpdateProjectUserConfigFile();
}
private:
UPROPERTY(Config)
TArray<FSoftObjectPath> FavoriteRecords;
};
I’ve discovered two issues:
1. SaveConfig() doesn’t actually save to disk
The SaveConfig() method’s comment says “Save configuration out to ini files”, but in reality, it doesn’t write anything to the disk file. I have to call UpdateProjectUserConfigFile() to actually persist the changes.
2. UpdateProjectUserConfigFile() writes to the wrong path
When debugging with a breakpoint in the SaveConfig() method, I can see that the target path is:
/Saved/Config/WindowsEditor/FavoritesPlusRecords.ini
This is the correct path I expected for a ProjectUserConfig.
However, UpdateProjectUserConfigFile() actually writes the file to:
/Config/UserFavoritesPlusRecords.ini
This is completely different from what SaveConfig() was targeting!
Questions
1. Is this the expected behavior, or am I missing something in my setup?
2. What’s the proper way to save ProjectUserConfig settings to the correct path (Saved/Config/WindowsEditor/)?
3. Should I be using a different API combination, or is there a specific configuration I’m missing?
Any help would be greatly appreciated! Thanks in advance! ![]()