EXCEPTION_ACCESS_VIOLATION

I am trying to use a custom made GameUserSettings class, and replaced the default one in DefaultEngine.ini.
Now wherenver i try opening the project i get this:

Unhandled Exception: EXCEPTION_ACCESS_VIOLATION reading address 0x0000000000000240

UE4Editor_Engine
UE4Editor_Engine
UE4Editor_JourneyFrameworkMainMenuSystem!UJF_GameUserSettings::ApplyAdvancedSettings() [C:\Users\dan00\Documents\Unreal Plugins\JourneyFramework\Plugins\JourneyFrameworkMainMenuSystem\Source\JourneyFrameworkMainMenuSystem\Private\Misc\JF_GameUserSettings.cpp:36]
UE4Editor_JourneyFrameworkMainMenuSystem!UJF_GameUserSettings::ApplySettings() [C:\Users\dan00\Documents\Unreal Plugins\JourneyFramework\Plugins\JourneyFrameworkMainMenuSystem\Source\JourneyFrameworkMainMenuSystem\Private\Misc\JF_GameUserSettings.cpp:21]
UE4Editor_UnrealEd
UE4Editor_UnrealEd
UE4Editor
UE4Editor_UnrealEd
UE4Editor
UE4Editor
UE4Editor
UE4Editor
kernel32
ntdll

i have no idea what i did wrong, i went through my code a bunch of times and couldnt find anything. Here is my source code:

.cpp:

#include "Misc/JF_GameUserSettings.h"
#include "GameFramework/GameUserSettings.h"
#include "AudioDevice.h"
#include "Engine/Engine.h"
#include "Kismet/KismetMathLibrary.h"
#include "RHI.h"

/*
Constructor
*/
UJF_GameUserSettings::UJF_GameUserSettings() {
	LoadConfigIni();
}

void UJF_GameUserSettings::ApplySettings(bool bCheckForCommandLineOverrides) {
	Super::ApplyNonResolutionSettings();

	ApplyAdvancedSettings();

	Super::ApplyResolutionSettings(bCheckForCommandLineOverrides);

	SaveConfig();
}

void UJF_GameUserSettings::ApplyAdvancedSettings() {
	//Misc
	if (bEnableBloom) {
		GetWorld()->Exec(GetWorld(), TEXT("r.DefaultFeature.Bloom 1"));
	}
	else
	{
		GetWorld()->Exec(GetWorld(), TEXT("r.DefaultFeature.Bloom 0"));
	}

	if (bMotionBlur) {
		GetWorld()->Exec(GetWorld(), TEXT("r.DefaultFeature.MotionBlur 1"));
	}
	else
	{
		GetWorld()->Exec(GetWorld(), TEXT("r.DefaultFeature.MotionBlur 0"));
	}

	//Check for ray tracing
	if (bRayTracing && GRHISupportsRayTracing) {
		GetWorld()->Exec(GetWorld(), TEXT("r.RayTracing 1"));
	}
	else {
		GetWorld()->Exec(GetWorld(), TEXT("r.RayTracing 0"));
	}

	if (bRayTracing && ShadowsType == EShadowsType::RayTraced && GRHISupportsRayTracing) {
		GetWorld()->Exec(GetWorld(), TEXT("r.RayTracing.Shadows 1"));
	}
	else {
		GetWorld()->Exec(GetWorld(), TEXT("r.RayTracing.Shadows 0"));
	}

	if (bRayTracing && AmbientOcclusionType == EAmbientOcclusionType::RayTraced && GRHISupportsRayTracing) {
		GetWorld()->Exec(GetWorld(), TEXT("r.RayTracing.AmbientOcclusion 1"));
	}
	else
	{
		GetWorld()->Exec(GetWorld(), TEXT("r.RayTracing.AmbientOcclusion 0"));
	}

	if (bRayTracing && ReflectionsType == EReflectionsType::RayTracing && GRHISupportsRayTracing) {
		GetWorld()->Exec(GetWorld(), TEXT("r.RayTracing.Reflections 1"));
	}
	else
	{
		GetWorld()->Exec(GetWorld(), TEXT("r.RayTracing.Reflections 0"));
	}

	if (bRayTracing && TranslucencyType == ETranslucencyType::RayTracing && GRHISupportsRayTracing) {
		GetWorld()->Exec(GetWorld(), TEXT("r.RayTracing.Translucency 1"));
	}
	else
	{
		GetWorld()->Exec(GetWorld(), TEXT("r.RayTracing.Translucency 0"));
	}

	switch (GIType)
	{
	case EGlobalIlluminationType::Off:
		GetWorld()->Exec(GetWorld(), TEXT("r.RayTracing.GlobalIllumination 0"));
		GetWorld()->Exec(GetWorld(), TEXT("r.SSGI.Quality 0"));
		break;

	case EGlobalIlluminationType::RayTraced:
		if (bRayTracing && GRHISupportsRayTracing) {
			GetWorld()->Exec(GetWorld(), TEXT("r.SSGI.Quality 0"));

			switch (RTGIType)
			{
			case ERayTracingGlobalIlluminationType::FinalGather:
				GetWorld()->Exec(GetWorld(), TEXT("r.RayTracing.GlobalIllumination 1"));
				GetWorld()->Exec(GetWorld(), TEXT("r.RayTracing.GlobalIllumination.EnableFinalGather 1"));
				break;

			case ERayTracingGlobalIlluminationType::BruteForce:
				GetWorld()->Exec(GetWorld(), TEXT("r.RayTracing.GlobalIllumination 1"));
				GetWorld()->Exec(GetWorld(), TEXT("r.RayTracing.GlobalIllumination.EnableFinalGather 0"));
				break;

			default:
				break;
			}
			break;
		}
		else
		{
			break;
		}

	case EGlobalIlluminationType::ScreenSpace:
		GetWorld()->Exec(GetWorld(), TEXT("r.RayTracing.GlobalIllumination 0"));
		GetWorld()->Exec(GetWorld(), TEXT("r.SSGI.Quality " + UKismetMathLibrary::Clamp(ScreenSpaceGIQuality, 1, 4)));
		break;

	default:
		break;
	}
}



#pragma region Getters And Setters

void UJF_GameUserSettings::SetBloom(bool Set) {
	bEnableBloom = Set;
}

bool UJF_GameUserSettings::ReturnBloom() {
	return bEnableBloom;
}

void UJF_GameUserSettings::SetMotionBlur(bool Set) {
	bMotionBlur = Set;
}

bool UJF_GameUserSettings::ReturnMotionBlur()
{
	return bMotionBlur;
}

void UJF_GameUserSettings::SetRayTracing(bool Set) {
	bRayTracing = Set;
}

bool UJF_GameUserSettings::GetRayTracing() {
	return bRayTracing;
}

void UJF_GameUserSettings::SetShadowType(EShadowsType Set) {
	ShadowsType = Set;
}

EShadowsType UJF_GameUserSettings::GetShadowType() {
	return ShadowsType;
}

void UJF_GameUserSettings::SetAmbientOcclusionType(EAmbientOcclusionType Set) {
	AmbientOcclusionType = Set;
}

EAmbientOcclusionType UJF_GameUserSettings::GetAmbientOcclusionType() {
	return AmbientOcclusionType;
}

void UJF_GameUserSettings::SetReflectionType(EReflectionsType Set) {
	ReflectionsType = Set;
}

EReflectionsType UJF_GameUserSettings::GetReflectionType() {
	return ReflectionsType;
}

void UJF_GameUserSettings::SetTranslucencyType(ETranslucencyType Set) {
	TranslucencyType = Set;
}

ETranslucencyType UJF_GameUserSettings::GetTranslucencyType() {
	return TranslucencyType;
}

void UJF_GameUserSettings::SetGlobalIlluminationType(EGlobalIlluminationType Set) {
	GIType = Set;
}

EGlobalIlluminationType UJF_GameUserSettings::GetGlobalIlluminationType() {
	return GIType;
}

void UJF_GameUserSettings::SetSSGIQuality(int32 Set) {
	ScreenSpaceGIQuality = Set;
}

int32 UJF_GameUserSettings::GetSSGIQuality() {
	return ScreenSpaceGIQuality;
}

void UJF_GameUserSettings::SetRTGIType(ERayTracingGlobalIlluminationType Set) {
	RTGIType = Set;
}

ERayTracingGlobalIlluminationType UJF_GameUserSettings::GetRTGIType() {
	return RTGIType;
}

void UJF_GameUserSettings::SetVolumetricLighting(bool Set) {
	bVolumetricLighting = Set;
}

bool UJF_GameUserSettings::GetVolumetricLighting() {
	return bVolumetricLighting;
}

void UJF_GameUserSettings::SetRAPI(int32 Set) {
	RendAPI = Set;
}

int32 UJF_GameUserSettings::GetRAPI() {
	return RendAPI;
}

#pragma endregion

.h:

#pragma once

#include "CoreMinimal.h"
#include "GameFramework/GameUserSettings.h"
#include "JF_GameUserSettings.generated.h"


UENUM(BlueprintType)
/*
Shadow types
*/
enum class EShadowsType : uint8 {
	Raster	  UMETA(DisplayName="Rasterized"),
	RayTraced UMETA(DisplayName="Ray Traced")
};

UENUM(BlueprintType)
/*
AO Types
*/
enum class EAmbientOcclusionType : uint8 {
	ScreenSpace	UMETA(DisplayName="Screen Space"),
	RayTraced	UMETA(DisplayName="Ray Traced")
};

UENUM(BlueprintType)
/*
GI Types
*/
enum class EGlobalIlluminationType : uint8 {
	Off			UMETA(DisplayName="Off"),
	ScreenSpace	UMETA(DisplayName="Screen Space"),
	RayTraced	UMETA(DisplayName="Ray Traced")
};

UENUM(BlueprintType)
/*
RAPI Types
*/
enum class ERenderingAPI : uint8 {
	DX10	UMETA(DisplayName="DirectX 10 (Legacy)"),
	DX11	UMETA(DisplayName="DirectX 12"),
	DX12	UMETA(DisplayName="DirectX 11"),
	Vulkan	UMETA(DisplayName="Vulkan"),
	OpenGL	UMETA(DisplayName="OpenGL")
};

/*
 Custom GameUserSettings Class
 Saves to the GameUserSettings.ini file
 */
UCLASS(config = GameUserSettings)
class JOURNEYFRAMEWORKMAINMENUSYSTEM_API UJF_GameUserSettings : public UGameUserSettings
{
	GENERATED_BODY()
	
public:

	UJF_GameUserSettings();

	/*
	Applys all settings and saves them
	*/
	virtual void ApplySettings(bool bCheckForCommandLineOverrides) override;

#pragma region Advanced Functions

	UFUNCTION(BlueprintCallable, Category = "Journey Framework|Main Menu System|Custom Game User Settings")
		/*
		Applys advanced settings. Like ray tracing, AA types and GI types
		*/
		void ApplyAdvancedSettings();


	#pragma region Bloom

	UFUNCTION(BlueprintCallable, Category = "Journey Framework|Main Menu System|Custom Game User Settings")
		void SetBloom(bool Set);

	UFUNCTION(BlueprintCallable, Category = "Journey Framework|Main Menu System|Custom Game User Settings")
		bool ReturnBloom();

	#pragma endregion

	#pragma region Motion Blur

	UFUNCTION(BlueprintCallable, Category = "Journey Framework|Main Menu System|Custom Game User Settings")
		void SetMotionBlur(bool Set);

	UFUNCTION(BlueprintCallable, Category = "Journey Framework|Main Menu System|Custom Game User Settings")
		bool ReturnMotionBlur();

	#pragma endregion

	#pragma region Ray Tracing

	UFUNCTION(BlueprintCallable, Category = "Journey Framework|Main Menu System|Custom Game User Settings")
		void SetRayTracing(bool Set);

	UFUNCTION(BlueprintCallable, Category = "Journey Framework|Main Menu System|Custom Game User Settings")
		bool GetRayTracing();
		
		#pragma region Shadows

		UFUNCTION(BlueprintCallable, Category = "Journey Framework|Main Menu System|Custom Game User Settings")
			void SetShadowType(EShadowsType Set);

		UFUNCTION(BlueprintCallable, Category = "Journey Framework|Main Menu System|Custom Game User Settings")
			EShadowsType GetShadowType();

		#pragma endregion

		#pragma region Ambient Occlusion

		UFUNCTION(BlueprintCallable, Category = "Journey Framework|Main Menu System|Custom Game User Settings")
			void SetAmbientOcclusionType(EAmbientOcclusionType Set);

		UFUNCTION(BlueprintCallable, Category = "Journey Framework|Main Menu System|Custom Game User Settings")
			EAmbientOcclusionType GetAmbientOcclusionType();

		#pragma endregion

		#pragma region Reflections

		UFUNCTION(BlueprintCallable, Category = "Journey Framework|Main Menu System|Custom Game User Settings")
			void SetReflectionType(EReflectionsType Set);

		UFUNCTION(BlueprintCallable, Category = "Journey Framework|Main Menu System|Custom Game User Settings")
			EReflectionsType GetReflectionType();

		#pragma endregion

		#pragma region Translucency

		UFUNCTION(BlueprintCallable, Category = "Journey Framework|Main Menu System|Custom Game User Settings")
			void SetTranslucencyType(ETranslucencyType Set);

		UFUNCTION(BlueprintCallable, Category = "Journey Framework|Main Menu System|Custom Game User Settings")
			ETranslucencyType GetTranslucencyType();

		#pragma endregion

		#pragma region Global Illumination

		UFUNCTION(BlueprintCallable, Category = "Journey Framework|Main Menu System|Custom Game User Settings")
			void SetGlobalIlluminationType(EGlobalIlluminationType Set);

		UFUNCTION(BlueprintCallable, Category = "Journey Framework|Main Menu System|Custom Game User Settings")
			EGlobalIlluminationType GetGlobalIlluminationType();

			#pragma region SSGI

			UFUNCTION(BlueprintCallable, Category = "Journey Framework|Main Menu System|Custom Game User Settings")
				void SetSSGIQuality(int32 Set);

			UFUNCTION(BlueprintCallable, Category = "Journey Framework|Main Menu System|Custom Game User Settings")
				int32 GetSSGIQuality();

			#pragma endregion

			#pragma region Ray Traced GI

			UFUNCTION(BlueprintCallable, Category = "Journey Framework|Main Menu System|Custom Game User Settings")
				void SetRTGIType(ERayTracingGlobalIlluminationType Set);

			UFUNCTION(BlueprintCallable, Category = "Journey Framework|Main Menu System|Custom Game User Settings")
				ERayTracingGlobalIlluminationType GetRTGIType();

			#pragma endregion

			#pragma region Volumetric Lighting

			UFUNCTION(BlueprintCallable, Category = "Journey Framework|Main Menu System|Custom Game User Settings")
				void SetVolumetricLighting(bool Set);

			UFUNCTION(BlueprintCallable, Category = "Journey Framework|Main Menu System|Custom Game User Settings")
				bool GetVolumetricLighting();

			#pragma endregion
	#pragma endregion

	#pragma region RAPI

	UFUNCTION(BlueprintCallable, Category = "Journey Framework|Main Menu System|Custom Game User Settings")
		/*
		Sets the rendering API. REQUIRES CUSTOM LAUNCHER PROGRAM AND INI PARSER!
		@param	int32	Set:	What to set the value to. (0 = DX10, 1 = DX11, 2 = DX12, 3 = Vulkan, 4 = OpenGL)
		*/
		void SetRAPI(int32 Set);

	UFUNCTION(BlueprintCallable, Category = "Journey Framework|Main Menu System|Custom Game User Settings")
		/*
		Returns the current value of RendAPI.
		@returns	int32	RendAPI:	0 = DX10, 1 = DX11, 2 = DX12, 3 = Vulkan, 4 = OpenGL
		*/
		int32 GetRAPI();

	#pragma endregion

#pragma endregion

protected:

#pragma region Advanced Visual Variables

	#pragma region Quality
	UPROPERTY(Config, EditAnywhere, BlueprintReadWrite)
		bool bMotionBlur;

	UPROPERTY(Config, EditAnywhere, BlueprintReadWrite)
		bool bDynamicResolution;

	UPROPERTY(Config, EditAnywhere, BlueprintReadWrite)
		bool bEnableBloom;

	UPROPERTY(Config, EditAnywhere, BlueprintReadWrite)
		bool bVolumetricLighting;

	UPROPERTY(Config, EditAnywhere, BlueprintReadWrite)
		bool bRayTracing;

	UPROPERTY(Config, EditAnywhere, BlueprintReadWrite)
		int32 DLSSQuality;

	UPROPERTY(Config, EditAnywhere, BlueprintReadWrite)
		int32 ScreenSpaceGIQuality;
	#pragma endregion

	#pragma region Type

	UPROPERTY(Config, EditAnywhere, BlueprintReadWrite)
		EShadowsType ShadowsType;

	UPROPERTY(Config, EditAnywhere, BlueprintReadWrite)
		EReflectionsType ReflectionsType;

	UPROPERTY(Config, EditAnywhere, BlueprintReadWrite)
		ETranslucencyType TranslucencyType;

	UPROPERTY(Config, EditAnywhere, BlueprintReadWrite)
		EAmbientOcclusionType AmbientOcclusionType;

	UPROPERTY(Config, EditAnywhere, BlueprintReadWrite)
		EGlobalIlluminationType GIType;

	UPROPERTY(Config, EditAnywhere, BlueprintReadWrite)
		ERayTracingGlobalIlluminationType RTGIType;

	UPROPERTY(Config, EditAnywhere, BlueprintReadWrite)
		int32 RendAPI;

	#pragma endregion
#pragma endregion

#pragma region Sensitivity Variables

	UPROPERTY(Config)
		float XBaseSentitivity;

	UPROPERTY(Config)
		float YBaseSensitivity;

#pragma endregion

#pragma region Sound

	UPROPERTY(Config, EditAnywhere, BlueprintReadWrite)
		float MasterVolume;

#pragma endregion
};

I will be happy to provide more info if necessary.