#pragma once

#include "CoreMinimal.h"
#include "S3AnalyticsConfig.h"
#include "ArchivesConfig.h"
#include "BalanceToolGameConfig.h"
#include "S3BeginnerTutorialLevelConfig.h"
#include "BotMatchConfig.h"
#include "S3LobbyBotConfig.h"
#include "DedicatedServerGameConfig.h"
#include "S3SaveFullProfileLocationConfig.h"
#include "S3FriendsListGameConfig.h"
#include "HitValidationGameConfig.h"
#include "AnimBudgeterGameConfig.h"
#include "JwtGameConfig.h"
#include "S3MatchConfig.h"
#include "HangTimesPerStep.h"
#include "S3MarketingConfig.h"
#include "S3EntitlementConfig.h"
#include "S3MirrorsDefaultRetryPolicyConfig.h"
#include "S3OnlineConfig.h"
#include "S3SecurityConfig.h"
#include "S3KrakenSdkValidationConfig.h"
#include "S3ContentVersionConfig.h"
#include "S3DisconnectionBotReplacementConfig.h"
#include "S3CommentatorConfig.h"
#include "S3SeenPopupsConfig.h"
#include "S3DynamicContentConfig.h"
#include "S3AnalyticsRules.h"
#include "S3InboxConfig.h"
#include "S3AFKConfig.h"
#include "S3GameConfigsData.generated.h"

USTRUCT(BlueprintType)
struct FS3GameConfigsData
{
	GENERATED_BODY()

public:
	UPROPERTY(EditAnywhere, BlueprintReadWrite)
	FS3AnalyticsConfig Analytics;

	UPROPERTY(EditAnywhere, BlueprintReadWrite)
	FArchivesConfig Archives;

	UPROPERTY(EditAnywhere, BlueprintReadWrite)
	FBalanceToolGameConfig BalanceTool;

	UPROPERTY(EditAnywhere, BlueprintReadWrite, SkipSerialization)
	bool BalanceTool_IsSet;

	UPROPERTY(EditAnywhere, BlueprintReadWrite)
	FS3BeginnerTutorialLevelConfig BeginnerTutorialLevel;

	UPROPERTY(EditAnywhere, BlueprintReadWrite)
	FBotMatchConfig BotMatch;

	UPROPERTY(EditAnywhere, BlueprintReadWrite)
	FS3LobbyBotConfig LobbyBot;

	UPROPERTY(EditAnywhere, BlueprintReadWrite, SkipSerialization)
	bool LobbyBot_IsSet;

	UPROPERTY(EditAnywhere, BlueprintReadWrite)
	FDedicatedServerGameConfig DedicatedServer;

	UPROPERTY(EditAnywhere, BlueprintReadWrite)
	FS3SaveFullProfileLocationConfig SaveFullProfileLocations;

	UPROPERTY(EditAnywhere, BlueprintReadWrite)
	bool EnableNetAsyncLoading;

	UPROPERTY(EditAnywhere, BlueprintReadWrite)
	bool EnablePlayersConnectionStatus;

	UPROPERTY(EditAnywhere, BlueprintReadWrite)
	bool EnablePlayerIdInSurvey;

	UPROPERTY(EditAnywhere, BlueprintReadWrite)
	bool EnableBotsInCustomMatch;

	UPROPERTY(EditAnywhere, BlueprintReadWrite)
	bool DisableNavigationDuringMatchmaking;

	UPROPERTY(EditAnywhere, BlueprintReadWrite)
	float RTMTimeoutThreshold;

	UPROPERTY(EditAnywhere, BlueprintReadWrite)
	float GameLoadingTimeout;

	UPROPERTY(EditAnywhere, BlueprintReadWrite)
	bool EnableHapticVibration;

	UPROPERTY(EditAnywhere, BlueprintReadWrite)
	bool EnableWinGDKAccountMismatchPopup;

	UPROPERTY(EditAnywhere, BlueprintReadWrite)
	bool EnableAntiMoveHack;

	UPROPERTY(EditAnywhere, BlueprintReadWrite)
	bool EnablePostIISCinematic;

	UPROPERTY(EditAnywhere, BlueprintReadWrite)
	bool EnablePlayStationTrophiesIISSync;

	UPROPERTY(EditAnywhere, BlueprintReadWrite)
	bool EnableDSQuestsUpdate;

	UPROPERTY(EditAnywhere, BlueprintReadWrite)
	TMap<FString, bool> CrossPromoManagerPlatforms;

	UPROPERTY(EditAnywhere, BlueprintReadWrite)
	FS3FriendsListGameConfig FriendsList;

	UPROPERTY(EditAnywhere, BlueprintReadWrite)
	FHitValidationGameConfig HitValidation;

	UPROPERTY(EditAnywhere, BlueprintReadWrite)
	FAnimBudgeterGameConfig AnimBudgeter;

	UPROPERTY(EditAnywhere, BlueprintReadWrite)
	FJwtGameConfig Jwt;

	UPROPERTY(EditAnywhere, BlueprintReadWrite)
	FS3MatchConfig Match;

	UPROPERTY(EditAnywhere, BlueprintReadWrite)
	TArray<FHangTimesPerStep> HangTimes;

	UPROPERTY(EditAnywhere, BlueprintReadWrite)
	FS3MarketingConfig Marketing;

	UPROPERTY(EditAnywhere, BlueprintReadWrite)
	FS3EntitlementConfig EntitlementConfig;

	UPROPERTY(EditAnywhere, BlueprintReadWrite, SkipSerialization)
	bool EntitlementConfig_IsSet;

	UPROPERTY(EditAnywhere, BlueprintReadWrite)
	bool EnableCrossPromoPopupDisplay;

	UPROPERTY(EditAnywhere, BlueprintReadWrite)
	bool EnableGammaPopup;

	UPROPERTY(EditAnywhere, BlueprintReadWrite, SkipSerialization)
	bool EnableGammaPopup_IsSet;

	UPROPERTY(EditAnywhere, BlueprintReadWrite)
	TMap<FString, bool> MatchmakingCrossplayPlatforms;

	UPROPERTY(EditAnywhere, BlueprintReadWrite)
	FS3MirrorsDefaultRetryPolicyConfig MirrorsDefaultRetryPolicy;

	UPROPERTY(EditAnywhere, BlueprintReadWrite)
	FS3OnlineConfig Online;

	UPROPERTY(EditAnywhere, BlueprintReadWrite)
	FS3SecurityConfig Security;

	UPROPERTY(EditAnywhere, BlueprintReadWrite)
	FS3KrakenSdkValidationConfig KrakenSdkValidation;

	UPROPERTY(EditAnywhere, BlueprintReadWrite)
	FS3ContentVersionConfig ContentVersion;

	UPROPERTY(EditAnywhere, BlueprintReadWrite)
	FS3DisconnectionBotReplacementConfig DisconnectionBotReplacement;

	UPROPERTY(EditAnywhere, BlueprintReadWrite)
	FS3CommentatorConfig Commentator;

	UPROPERTY(EditAnywhere, BlueprintReadWrite)
	TMap<FString, FS3SeenPopupsConfig> SeenPopupsConfig;

	UPROPERTY(EditAnywhere, BlueprintReadWrite)
	TMap<FString, bool> SocialCrossfriendsPlatforms;

	UPROPERTY(EditAnywhere, BlueprintReadWrite)
	TMap<FString, bool> SocialCrossprogressionPlatforms;

	UPROPERTY(EditAnywhere, BlueprintReadWrite)
	bool EnableMoriPreviewButton;

	UPROPERTY(EditAnywhere, BlueprintReadWrite)
	bool EnableRealtimeMoriPreview;

	UPROPERTY(EditAnywhere, BlueprintReadWrite)
	bool EnableAntiCamping;

	UPROPERTY(EditAnywhere, BlueprintReadWrite)
	bool EnableConsumableQueryFromKraken;

	UPROPERTY(EditAnywhere, BlueprintReadWrite)
	bool EnableLimitRegressionEvents;

	UPROPERTY(EditAnywhere, BlueprintReadWrite)
	bool EnableLobbyKickPlayerForCharacterOwnership;

	UPROPERTY(EditAnywhere, BlueprintReadWrite)
	bool EnableLocalStartSnapping;

	UPROPERTY(EditAnywhere, BlueprintReadWrite)
	bool EnableUmgStore;

	UPROPERTY(EditAnywhere, BlueprintReadWrite)
	bool EnableContainerAgressiveMemorySaving;

	UPROPERTY(EditAnywhere, BlueprintReadWrite)
	bool EnableFirstMoveAfterForcedUpdates;

	UPROPERTY(EditAnywhere, BlueprintReadWrite)
	float DSProviderOnShutdownNotificationDelay;

	UPROPERTY(EditAnywhere, BlueprintReadWrite)
	bool EnableAlwaysSendCrashWithUI;

	UPROPERTY(EditAnywhere, BlueprintReadWrite)
	FS3DynamicContentConfig DynamicContent;

	UPROPERTY(EditAnywhere, BlueprintReadWrite)
	TArray<FString> EnableSimulateMovementOptimization;

	UPROPERTY(EditAnywhere, BlueprintReadWrite)
	TArray<FString> DisableSecretRewards;

	UPROPERTY(EditAnywhere, BlueprintReadWrite, SkipSerialization)
	bool DisableSecretRewards_IsSet;

	UPROPERTY(EditAnywhere, BlueprintReadWrite)
	bool EnableBattlePass;

	UPROPERTY(EditAnywhere, BlueprintReadWrite, SkipSerialization)
	bool EnableBattlePass_IsSet;

	UPROPERTY(EditAnywhere, BlueprintReadWrite)
	bool EnableReplaceDisabledCharacter;

	UPROPERTY(EditAnywhere, BlueprintReadWrite, SkipSerialization)
	bool EnableReplaceDisabledCharacter_IsSet;

	UPROPERTY(EditAnywhere, BlueprintReadWrite)
	bool EnableDeniedStateTransition;

	UPROPERTY(EditAnywhere, BlueprintReadWrite)
	FS3AnalyticsRules AnalyticsRules;

	UPROPERTY(EditAnywhere, BlueprintReadWrite)
	TMap<FString, FString> AnalyticsRulesHVS;

	UPROPERTY(EditAnywhere, BlueprintReadWrite)
	FS3InboxConfig Inbox;

	UPROPERTY(EditAnywhere, BlueprintReadWrite, SkipSerialization)
	bool Inbox_IsSet;

	UPROPERTY(EditAnywhere, BlueprintReadWrite)
	FS3AFKConfig AFK;

	UPROPERTY(EditAnywhere, BlueprintReadWrite)
	bool EnableEncryption;

	UPROPERTY(EditAnywhere, BlueprintReadWrite, SkipSerialization)
	bool EnableEncryption_IsSet;

public:
	DEADBYDAYLIGHT_API FS3GameConfigsData();
};

FORCEINLINE uint32 GetTypeHash(const FS3GameConfigsData) { return 0; }
