Custom Editor (Per-User) Settings

I’m working on a module that uses UDeveloperSettings for global module settings that should apply for all users (in the Project Settings menu).

However there are some debug settings in there that should ideally only apply on a per-user basis (in the Editor Settings menu). Putting them in UDeveloperSettings causes any changes to stomp other users’ settings.

Is there a UDeveloperSettings comparable class for editor/debug settings that works for a per-user basis?

I got as far as this, not sure if it’s the correct approach:

UCLASS(config="Game")
class UMyUserSettings : public UObject
{
	GENERATED_BODY()

public:

	UPROPERTY(Config, EditAnywhere)
	bool bTestConfig{false};
};

And then in the editor module .cpp StartupModule function:

SettingsModule->RegisterSettings(
	"Editor",
	"Plugins",
	"MyPlugin",
	NSLOCTEXT("MyPlugin", "LocalSettingsName", "MyPlugin (Local)"),
	NSLOCTEXT("MyPlugin", "LocalSettingsDesc", "Local debug and UI settings."),
	GetMutableDefault<UMyUserSettings>()
);

This does display the settings in the Editor settings window, but this doesn’t save modified settings unless I click the Save As Default button, and then they’re saved into the Config folder which IS included in version control, while I was hoping to save to local Saved config settings only?

Ok so developer settings also seems to work for putting it in the editor prefs window (registering in StartupModule not needed), but same issue that it only saves the setting between sessions if I save as default.

UCLASS(Config="Game")
class UMyUserSettings : public UDeveloperSettings
{
  GENERATED_BODY()

	
public:
	
  virtual FName GetContainerName() const override { return FName("Editor"); }
  virtual FName GetCategoryName() const override { return FName("Plugins"); }
	
  UPROPERTY(Config, EditAnywhere)
  bool bTestConfig{false};
};

Ok sorry for spam.

I changed the UCLASS(config="Game") macro to use a custom name:

UCLASS(config="MyPluginConfig")

And I verified that when I toggle the test boolean it DOES create the .ini file:

Saved\Config\WindowsEditor\MyPluginConfig.ini

The boolean is saved as True, but when I reload the editor, the property is false in editor settings.

;METADATA=(Diff=true, UseCommands=true)
[/Script/MyEditorModule.MyUserSettings]
bTestConfig=True

Alright, I end up doing this a lot, but I solved the issue shortly after posting. Sorry again for spam, but in case anyone else comes across this:

This works if you have default config saved too.

Hit the Save As Default button in Editor preferences to create the default save .ini for your settings, and THEN changing settings (without saving default) will create the local .ini settings file in Saved\Config and will correctly restore those local settings between sessions.