How do I save user settings made at run-time?

Let’s say I have four buttons in-game that allow the user to set graphics settings to low, med, high, epic. I believe I understand how to do this by throwing console commands such as r.PostProcessingQuality 0, etc.

The problem is that these settings won’t be saved when the user closes and relaunches the game. What is the best way to go about saving these sorts of settings?

On blueprints I wouldn’t know.

But on C++ you could take a look at the ShooterGame sample. Specifically, it creates a class derived from UGameUserSettings, and create variables for what you wanna save. For example:

	/**
	 * Graphics Quality
	 *	0 = Low
	 *	1 = Medium
	 *	2 = High
	 *	3 = Epic
	 */
	UPROPERTY(config)
	int32 GraphicsQuality;

Then override the function virtual void ApplySettings() and define what to do with the new variables there, e.g.

void UShooterGameUserSettings::ApplySettings()
{
	ScalabilityQuality.SetFromSingleQualityLevel(GraphicsQuality);
	Super::ApplySettings();
}