#pragma once

/*
* SDK generated by Dumper-7
*
* https://github.com/Encryqed/Dumper-7
*/

// Package: ReplicationGraph

#include "Basic.hpp"

#include "Engine_classes.hpp"
#include "ReplicationGraph_structs.hpp"
#include "CoreUObject_classes.hpp"


namespace SDK
{

// Class ReplicationGraph.ReplicationGraph
// 0x0538 (0x0560 - 0x0028)
#pragma pack(push, 0x1)
class alignas(0x10) UReplicationGraph : public UReplicationDriver
{
public:
	TSubclassOf<class UNetReplicationGraphConnection> ReplicationConnectionManagerClass;             // 0x0028(0x0008)(ZeroConstructor, Config, IsPlainOldData, NoDestructor, UObjectWrapper, HasGetValueTypeHash, NativeAccessSpecifierPublic)
	class UNetDriver*                             NetDriver;                                         // 0x0030(0x0008)(ZeroConstructor, IsPlainOldData, NoDestructor, UObjectWrapper, HasGetValueTypeHash, NativeAccessSpecifierPublic)
	TArray<class UNetReplicationGraphConnection*> Connections;                                       // 0x0038(0x0010)(ZeroConstructor, UObjectWrapper, NativeAccessSpecifierPublic)
	TArray<class UNetReplicationGraphConnection*> PendingConnections;                                // 0x0048(0x0010)(ZeroConstructor, UObjectWrapper, NativeAccessSpecifierPublic)
	uint8                                         Pad_58[0x40];                                      // 0x0058(0x0040)(Fixing Size After Last Property [ Dumper-7 ])
	TArray<class UReplicationGraphNode*>          GlobalGraphNodes;                                  // 0x0098(0x0010)(ZeroConstructor, Protected, UObjectWrapper, NativeAccessSpecifierProtected)
	TArray<class UReplicationGraphNode*>          PrepareForReplicationNodes;                        // 0x00A8(0x0010)(ZeroConstructor, Protected, UObjectWrapper, NativeAccessSpecifierProtected)
	uint8                                         Pad_B8[0x4A0];                                     // 0x00B8(0x04A0)(Fixing Struct Size After Last Property [ Dumper-7 ])

public:
	static class UClass* StaticClass()
	{
		STATIC_CLASS_IMPL("ReplicationGraph")
	}
	static const class FName& StaticName()
	{
		STATIC_NAME_IMPL(L"ReplicationGraph")
	}
	static class UReplicationGraph* GetDefaultObj()
	{
		return GetDefaultObjImpl<UReplicationGraph>();
	}
};
#pragma pack(pop)
DUMPER7_ASSERTS_UReplicationGraph;

// Class ReplicationGraph.BasicReplicationGraph
// 0x0030 (0x0590 - 0x0560)
class UBasicReplicationGraph final : public UReplicationGraph
{
public:
	class UReplicationGraphNode_GridSpatialization2D* GridNode;                                      // 0x0558(0x0008)(ZeroConstructor, IsPlainOldData, NoDestructor, UObjectWrapper, HasGetValueTypeHash, NativeAccessSpecifierPublic)
	class UReplicationGraphNode_ActorList*        AlwaysRelevantNode;                                // 0x0560(0x0008)(ZeroConstructor, IsPlainOldData, NoDestructor, UObjectWrapper, HasGetValueTypeHash, NativeAccessSpecifierPublic)
	TArray<struct FConnectionAlwaysRelevantNodePair> AlwaysRelevantForConnectionList;                // 0x0568(0x0010)(ZeroConstructor, NativeAccessSpecifierPublic)
	TArray<class AActor*>                         ActorsWithoutNetConnection;                        // 0x0578(0x0010)(ZeroConstructor, UObjectWrapper, NativeAccessSpecifierPublic)
	uint8                                         Pad_588[0x8];                                      // 0x0588(0x0008)(Fixing Struct Size After Last Property [ Dumper-7 ])

public:
	static class UClass* StaticClass()
	{
		STATIC_CLASS_IMPL("BasicReplicationGraph")
	}
	static const class FName& StaticName()
	{
		STATIC_NAME_IMPL(L"BasicReplicationGraph")
	}
	static class UBasicReplicationGraph* GetDefaultObj()
	{
		return GetDefaultObjImpl<UBasicReplicationGraph>();
	}
};
DUMPER7_ASSERTS_UBasicReplicationGraph;

// Class ReplicationGraph.ReplicationGraphNode
// 0x0028 (0x0050 - 0x0028)
class UReplicationGraphNode : public UObject
{
public:
	TArray<class UReplicationGraphNode*>          AllChildNodes;                                     // 0x0028(0x0010)(ZeroConstructor, Protected, UObjectWrapper, NativeAccessSpecifierProtected)
	uint8                                         Pad_38[0x18];                                      // 0x0038(0x0018)(Fixing Struct Size After Last Property [ Dumper-7 ])

public:
	static class UClass* StaticClass()
	{
		STATIC_CLASS_IMPL("ReplicationGraphNode")
	}
	static const class FName& StaticName()
	{
		STATIC_NAME_IMPL(L"ReplicationGraphNode")
	}
	static class UReplicationGraphNode* GetDefaultObj()
	{
		return GetDefaultObjImpl<UReplicationGraphNode>();
	}
};
DUMPER7_ASSERTS_UReplicationGraphNode;

// Class ReplicationGraph.ReplicationGraphNode_ActorList
// 0x0080 (0x00D0 - 0x0050)
class UReplicationGraphNode_ActorList : public UReplicationGraphNode
{
public:
	uint8                                         Pad_50[0x80];                                      // 0x0050(0x0080)(Fixing Struct Size After Last Property [ Dumper-7 ])

public:
	static class UClass* StaticClass()
	{
		STATIC_CLASS_IMPL("ReplicationGraphNode_ActorList")
	}
	static const class FName& StaticName()
	{
		STATIC_NAME_IMPL(L"ReplicationGraphNode_ActorList")
	}
	static class UReplicationGraphNode_ActorList* GetDefaultObj()
	{
		return GetDefaultObjImpl<UReplicationGraphNode_ActorList>();
	}
};
DUMPER7_ASSERTS_UReplicationGraphNode_ActorList;

// Class ReplicationGraph.ReplicationGraphNode_ActorListFrequencyBuckets
// 0x00B8 (0x0108 - 0x0050)
class UReplicationGraphNode_ActorListFrequencyBuckets final : public UReplicationGraphNode
{
public:
	uint8                                         Pad_50[0xB8];                                      // 0x0050(0x00B8)(Fixing Struct Size After Last Property [ Dumper-7 ])

public:
	static class UClass* StaticClass()
	{
		STATIC_CLASS_IMPL("ReplicationGraphNode_ActorListFrequencyBuckets")
	}
	static const class FName& StaticName()
	{
		STATIC_NAME_IMPL(L"ReplicationGraphNode_ActorListFrequencyBuckets")
	}
	static class UReplicationGraphNode_ActorListFrequencyBuckets* GetDefaultObj()
	{
		return GetDefaultObjImpl<UReplicationGraphNode_ActorListFrequencyBuckets>();
	}
};
DUMPER7_ASSERTS_UReplicationGraphNode_ActorListFrequencyBuckets;

// Class ReplicationGraph.ReplicationGraphNode_DynamicSpatialFrequency
// 0x0030 (0x0100 - 0x00D0)
class UReplicationGraphNode_DynamicSpatialFrequency final : public UReplicationGraphNode_ActorList
{
public:
	uint8                                         Pad_D0[0x30];                                      // 0x00D0(0x0030)(Fixing Struct Size After Last Property [ Dumper-7 ])

public:
	static class UClass* StaticClass()
	{
		STATIC_CLASS_IMPL("ReplicationGraphNode_DynamicSpatialFrequency")
	}
	static const class FName& StaticName()
	{
		STATIC_NAME_IMPL(L"ReplicationGraphNode_DynamicSpatialFrequency")
	}
	static class UReplicationGraphNode_DynamicSpatialFrequency* GetDefaultObj()
	{
		return GetDefaultObjImpl<UReplicationGraphNode_DynamicSpatialFrequency>();
	}
};
DUMPER7_ASSERTS_UReplicationGraphNode_DynamicSpatialFrequency;

// Class ReplicationGraph.ReplicationGraphNode_ConnectionDormancyNode
// 0x0080 (0x0150 - 0x00D0)
class UReplicationGraphNode_ConnectionDormancyNode final : public UReplicationGraphNode_ActorList
{
public:
	uint8                                         Pad_D0[0x80];                                      // 0x00D0(0x0080)(Fixing Struct Size After Last Property [ Dumper-7 ])

public:
	static class UClass* StaticClass()
	{
		STATIC_CLASS_IMPL("ReplicationGraphNode_ConnectionDormancyNode")
	}
	static const class FName& StaticName()
	{
		STATIC_NAME_IMPL(L"ReplicationGraphNode_ConnectionDormancyNode")
	}
	static class UReplicationGraphNode_ConnectionDormancyNode* GetDefaultObj()
	{
		return GetDefaultObjImpl<UReplicationGraphNode_ConnectionDormancyNode>();
	}
};
DUMPER7_ASSERTS_UReplicationGraphNode_ConnectionDormancyNode;

// Class ReplicationGraph.ReplicationGraphNode_DormancyNode
// 0x0010 (0x00E0 - 0x00D0)
class UReplicationGraphNode_DormancyNode final : public UReplicationGraphNode_ActorList
{
public:
	uint8                                         Pad_D0[0x10];                                      // 0x00D0(0x0010)(Fixing Struct Size After Last Property [ Dumper-7 ])

public:
	static class UClass* StaticClass()
	{
		STATIC_CLASS_IMPL("ReplicationGraphNode_DormancyNode")
	}
	static const class FName& StaticName()
	{
		STATIC_NAME_IMPL(L"ReplicationGraphNode_DormancyNode")
	}
	static class UReplicationGraphNode_DormancyNode* GetDefaultObj()
	{
		return GetDefaultObjImpl<UReplicationGraphNode_DormancyNode>();
	}
};
DUMPER7_ASSERTS_UReplicationGraphNode_DormancyNode;

// Class ReplicationGraph.ReplicationGraphNode_GridCell
// 0x0050 (0x0120 - 0x00D0)
class alignas(0x10) UReplicationGraphNode_GridCell final : public UReplicationGraphNode_ActorList
{
public:
	uint8                                         Pad_D0[0x40];                                      // 0x00D0(0x0040)(Fixing Size After Last Property [ Dumper-7 ])
	class UReplicationGraphNode*                  DynamicNode;                                       // 0x0110(0x0008)(ZeroConstructor, IsPlainOldData, NoDestructor, UObjectWrapper, HasGetValueTypeHash, NativeAccessSpecifierPrivate)
	class UReplicationGraphNode_DormancyNode*     DormancyNode;                                      // 0x0118(0x0008)(ZeroConstructor, IsPlainOldData, NoDestructor, UObjectWrapper, HasGetValueTypeHash, NativeAccessSpecifierPrivate)

public:
	static class UClass* StaticClass()
	{
		STATIC_CLASS_IMPL("ReplicationGraphNode_GridCell")
	}
	static const class FName& StaticName()
	{
		STATIC_NAME_IMPL(L"ReplicationGraphNode_GridCell")
	}
	static class UReplicationGraphNode_GridCell* GetDefaultObj()
	{
		return GetDefaultObjImpl<UReplicationGraphNode_GridCell>();
	}
};
DUMPER7_ASSERTS_UReplicationGraphNode_GridCell;

// Class ReplicationGraph.ReplicationGraphNode_GridSpatialization2D
// 0x0210 (0x0260 - 0x0050)
class UReplicationGraphNode_GridSpatialization2D final : public UReplicationGraphNode
{
public:
	uint8                                         Pad_50[0x210];                                     // 0x0050(0x0210)(Fixing Struct Size After Last Property [ Dumper-7 ])

public:
	static class UClass* StaticClass()
	{
		STATIC_CLASS_IMPL("ReplicationGraphNode_GridSpatialization2D")
	}
	static const class FName& StaticName()
	{
		STATIC_NAME_IMPL(L"ReplicationGraphNode_GridSpatialization2D")
	}
	static class UReplicationGraphNode_GridSpatialization2D* GetDefaultObj()
	{
		return GetDefaultObjImpl<UReplicationGraphNode_GridSpatialization2D>();
	}
};
DUMPER7_ASSERTS_UReplicationGraphNode_GridSpatialization2D;

// Class ReplicationGraph.ReplicationGraphNode_AlwaysRelevant
// 0x0018 (0x0068 - 0x0050)
class UReplicationGraphNode_AlwaysRelevant final : public UReplicationGraphNode
{
public:
	class UReplicationGraphNode*                  ChildNode;                                         // 0x0050(0x0008)(ZeroConstructor, IsPlainOldData, NoDestructor, Protected, UObjectWrapper, HasGetValueTypeHash, NativeAccessSpecifierProtected)
	uint8                                         Pad_58[0x10];                                      // 0x0058(0x0010)(Fixing Struct Size After Last Property [ Dumper-7 ])

public:
	static class UClass* StaticClass()
	{
		STATIC_CLASS_IMPL("ReplicationGraphNode_AlwaysRelevant")
	}
	static const class FName& StaticName()
	{
		STATIC_NAME_IMPL(L"ReplicationGraphNode_AlwaysRelevant")
	}
	static class UReplicationGraphNode_AlwaysRelevant* GetDefaultObj()
	{
		return GetDefaultObjImpl<UReplicationGraphNode_AlwaysRelevant>();
	}
};
DUMPER7_ASSERTS_UReplicationGraphNode_AlwaysRelevant;

// Class ReplicationGraph.ReplicationGraphNode_AlwaysRelevant_ForConnection
// 0x0020 (0x00F0 - 0x00D0)
class UReplicationGraphNode_AlwaysRelevant_ForConnection final : public UReplicationGraphNode_ActorList
{
public:
	uint8                                         Pad_D0[0x10];                                      // 0x00D0(0x0010)(Fixing Size After Last Property [ Dumper-7 ])
	TArray<struct FAlwaysRelevantActorInfo>       PastRelevantActors;                                // 0x00E0(0x0010)(ZeroConstructor, NativeAccessSpecifierPublic)

public:
	static class UClass* StaticClass()
	{
		STATIC_CLASS_IMPL("ReplicationGraphNode_AlwaysRelevant_ForConnection")
	}
	static const class FName& StaticName()
	{
		STATIC_NAME_IMPL(L"ReplicationGraphNode_AlwaysRelevant_ForConnection")
	}
	static class UReplicationGraphNode_AlwaysRelevant_ForConnection* GetDefaultObj()
	{
		return GetDefaultObjImpl<UReplicationGraphNode_AlwaysRelevant_ForConnection>();
	}
};
DUMPER7_ASSERTS_UReplicationGraphNode_AlwaysRelevant_ForConnection;

// Class ReplicationGraph.ReplicationGraphNode_TearOff_ForConnection
// 0x0020 (0x0070 - 0x0050)
class UReplicationGraphNode_TearOff_ForConnection final : public UReplicationGraphNode
{
public:
	TArray<struct FTearOffActorInfo>              TearOffActors;                                     // 0x0050(0x0010)(ZeroConstructor, NativeAccessSpecifierPublic)
	uint8                                         Pad_60[0x10];                                      // 0x0060(0x0010)(Fixing Struct Size After Last Property [ Dumper-7 ])

public:
	static class UClass* StaticClass()
	{
		STATIC_CLASS_IMPL("ReplicationGraphNode_TearOff_ForConnection")
	}
	static const class FName& StaticName()
	{
		STATIC_NAME_IMPL(L"ReplicationGraphNode_TearOff_ForConnection")
	}
	static class UReplicationGraphNode_TearOff_ForConnection* GetDefaultObj()
	{
		return GetDefaultObjImpl<UReplicationGraphNode_TearOff_ForConnection>();
	}
};
DUMPER7_ASSERTS_UReplicationGraphNode_TearOff_ForConnection;

// Class ReplicationGraph.NetReplicationGraphConnection
// 0x02B0 (0x02D8 - 0x0028)
class UNetReplicationGraphConnection : public UReplicationConnectionDriver
{
public:
	class UNetConnection*                         NetConnection;                                     // 0x0028(0x0008)(ZeroConstructor, IsPlainOldData, NoDestructor, UObjectWrapper, HasGetValueTypeHash, NativeAccessSpecifierPublic)
	uint8                                         Pad_30[0x140];                                     // 0x0030(0x0140)(Fixing Size After Last Property [ Dumper-7 ])
	class AReplicationGraphDebugActor*            DebugActor;                                        // 0x0170(0x0008)(ZeroConstructor, IsPlainOldData, NoDestructor, UObjectWrapper, HasGetValueTypeHash, NativeAccessSpecifierPublic)
	uint8                                         Pad_178[0x10];                                     // 0x0178(0x0010)(Fixing Size After Last Property [ Dumper-7 ])
	TArray<struct FLastLocationGatherInfo>        LastGatherLocations;                               // 0x0188(0x0010)(ZeroConstructor, NativeAccessSpecifierPublic)
	uint8                                         Pad_198[0x58];                                     // 0x0198(0x0058)(Fixing Size After Last Property [ Dumper-7 ])
	TArray<class UReplicationGraphNode*>          ConnectionGraphNodes;                              // 0x01F0(0x0010)(ZeroConstructor, UObjectWrapper, NativeAccessSpecifierPrivate)
	class UReplicationGraphNode_TearOff_ForConnection* TearOffNode;                                  // 0x0200(0x0008)(ZeroConstructor, IsPlainOldData, NoDestructor, UObjectWrapper, HasGetValueTypeHash, NativeAccessSpecifierPrivate)
	uint8                                         Pad_208[0xD0];                                     // 0x0208(0x00D0)(Fixing Struct Size After Last Property [ Dumper-7 ])

public:
	static class UClass* StaticClass()
	{
		STATIC_CLASS_IMPL("NetReplicationGraphConnection")
	}
	static const class FName& StaticName()
	{
		STATIC_NAME_IMPL(L"NetReplicationGraphConnection")
	}
	static class UNetReplicationGraphConnection* GetDefaultObj()
	{
		return GetDefaultObjImpl<UNetReplicationGraphConnection>();
	}
};
DUMPER7_ASSERTS_UNetReplicationGraphConnection;

// Class ReplicationGraph.ReplicationGraphDebugActor
// 0x0010 (0x0298 - 0x0288)
class AReplicationGraphDebugActor final : public AActor
{
public:
	class UReplicationGraph*                      ReplicationGraph;                                  // 0x0288(0x0008)(ZeroConstructor, IsPlainOldData, NoDestructor, UObjectWrapper, HasGetValueTypeHash, NativeAccessSpecifierPublic)
	class UNetReplicationGraphConnection*         ConnectionManager;                                 // 0x0290(0x0008)(ZeroConstructor, IsPlainOldData, NoDestructor, UObjectWrapper, HasGetValueTypeHash, NativeAccessSpecifierPublic)

public:
	void ClientCellInfo(const struct FVector& CellLocation, const struct FVector& CellExtent, const TArray<class AActor*>& Actors);
	void ServerCellInfo();
	void ServerPrintAllActorInfo(const class FString& Str);
	void ServerPrintCullDistances();
	void ServerSetConditionalActorBreakpoint(class AActor* Actor);
	void ServerSetCullDistanceForClass(class UClass* Class_0, float CullDistance);
	void ServerSetPeriodFrameForClass(class UClass* Class_0, int32 PeriodFrame);
	void ServerStartDebugging();
	void ServerStopDebugging();

public:
	static class UClass* StaticClass()
	{
		STATIC_CLASS_IMPL("ReplicationGraphDebugActor")
	}
	static const class FName& StaticName()
	{
		STATIC_NAME_IMPL(L"ReplicationGraphDebugActor")
	}
	static class AReplicationGraphDebugActor* GetDefaultObj()
	{
		return GetDefaultObjImpl<AReplicationGraphDebugActor>();
	}
};
DUMPER7_ASSERTS_AReplicationGraphDebugActor;

}

