diff --git a/Source/RWTHVRToolkit/Private/RWTHVRToolkit.cpp b/Source/RWTHVRToolkit/Private/RWTHVRToolkit.cpp
index 5053d5245556c244d7d36e0a1930c9ba3b09f09d..677edb94830aaa0158f936d2b3af44431e9a3dee 100644
--- a/Source/RWTHVRToolkit/Private/RWTHVRToolkit.cpp
+++ b/Source/RWTHVRToolkit/Private/RWTHVRToolkit.cpp
@@ -4,11 +4,6 @@
 #include "LiveLinkClient.h"
 #include "RWTHVRToolkitSettings.h"
 
-#if WITH_EDITOR
-	#include "ISettingsModule.h"
-	#include "ISettingsSection.h"
-#endif
-
 #define LOCTEXT_NAMESPACE "FRWTHVRToolkitModule"
 
 void FRWTHVRToolkitModule::StartupModule ()
@@ -18,32 +13,13 @@ void FRWTHVRToolkitModule::StartupModule ()
 	FCoreDelegates::OnFEngineLoopInitComplete.AddRaw(this, &FRWTHVRToolkitModule::OnEngineLoopInitComplete);
 
 #if WITH_EDITOR
-	if (ISettingsModule* SettingsModule = FModuleManager::GetModulePtr<ISettingsModule>("Settings"))
-	{
-		ISettingsSectionPtr SettingsSection = SettingsModule->RegisterSettings(
-			"Project", "Plugins", "RWTH VR Toolkit",
-			LOCTEXT("RWTHVRToolkitSettingsName", "RWTH VR Toolkit"),
-			LOCTEXT("RWTHVRToolkitSettingsDescription", "Configure the RWTH VR Toolkit."),
-			GetMutableDefault<URWTHVRToolkitSettings>()
-		);
-		if (SettingsSection.IsValid())
-		{
-			SettingsSection->OnModified().BindRaw(this, &FRWTHVRToolkitModule::HandleSettingsSaved);
-		}
-	}
+	GetMutableDefault<URWTHVRToolkitSettings>()->OnSettingChanged().AddRaw(this, &FRWTHVRToolkitModule::HandleSettingsSaved);
 #endif
 }
 
 void FRWTHVRToolkitModule::ShutdownModule()
 {
-	ConsoleActivation.Unregister();
-	
-#if WITH_EDITOR
-	if (ISettingsModule* SettingsModule = FModuleManager::GetModulePtr<ISettingsModule>("Settings"))
-	{
-		SettingsModule->UnregisterSettings("Project", "Plugins", "RWTH VR Toolkit");
-	}
-#endif
+	ConsoleActivation.Unregister();	
 }
 
 void FRWTHVRToolkitModule::OnEngineLoopInitComplete()
@@ -51,10 +27,9 @@ void FRWTHVRToolkitModule::OnEngineLoopInitComplete()
 	ApplyDefaultPreset();
 }
 
-bool FRWTHVRToolkitModule::HandleSettingsSaved()
+void FRWTHVRToolkitModule::HandleSettingsSaved(UObject* Settings, FPropertyChangedEvent& PropertyChangedEvent)
 {
 	ApplyDefaultPreset();
-	return true;
 }
 
 void FRWTHVRToolkitModule::ApplyDefaultPreset()
diff --git a/Source/RWTHVRToolkit/Public/RWTHVRToolkit.h b/Source/RWTHVRToolkit/Public/RWTHVRToolkit.h
index 8bd51d2c06e6adf7ba6fdfba1c9d2212816c97d3..09d2ff296521492d9badfc81083d0e039cbd2110 100644
--- a/Source/RWTHVRToolkit/Public/RWTHVRToolkit.h
+++ b/Source/RWTHVRToolkit/Public/RWTHVRToolkit.h
@@ -16,7 +16,7 @@ public:
 private:
 
 	void OnEngineLoopInitComplete();
-	bool HandleSettingsSaved();
+	void HandleSettingsSaved(UObject* Settings, FPropertyChangedEvent& PropertyChangedEvent);
 	void ApplyDefaultPreset();
 	
 	FActivateConsoleInShipping ConsoleActivation;	
diff --git a/Source/RWTHVRToolkit/Public/RWTHVRToolkitSettings.h b/Source/RWTHVRToolkit/Public/RWTHVRToolkitSettings.h
index fa39851c0c28b67b8cf9b320f29a353996596489..d229f2675f28d6a22a805dcfab5d05f2908310e3 100644
--- a/Source/RWTHVRToolkit/Public/RWTHVRToolkitSettings.h
+++ b/Source/RWTHVRToolkit/Public/RWTHVRToolkitSettings.h
@@ -9,6 +9,7 @@
 #include "Engine/EngineTypes.h"
 #include "Templates/SubclassOf.h"
 #include "LiveLinkPreset.h"
+#include "Utility/DemoConfig.h"
 
 #include "RWTHVRToolkitSettings.generated.h"
 
@@ -16,11 +17,18 @@
 /**
  * Settings for LiveLink.
  */
-UCLASS(config=Game, defaultconfig)
-class RWTHVRTOOLKIT_API URWTHVRToolkitSettings : public UObject
+UCLASS(config=RWTHVRToolkit, defaultconfig)
+class RWTHVRTOOLKIT_API URWTHVRToolkitSettings : public UDemoConfig
 {
 	GENERATED_BODY()
 
+	virtual FName GetCategoryName() const override { return "Plugins"; };
+
+#if WITH_EDITOR
+	virtual FText GetSectionText() const override { return FText::FromString("RWTH VR Toolkit"); };
+#endif
+
+
 public:
 	URWTHVRToolkitSettings() = default;