diff --git a/Config/DefaultEngine.ini b/Config/DefaultEngine.ini index f52cfcc..f5825e4 100644 --- a/Config/DefaultEngine.ini +++ b/Config/DefaultEngine.ini @@ -1,7 +1,8 @@ [/Script/EngineSettings.GameMapsSettings] -GameDefaultMap=/Engine/Maps/Templates/OpenWorld +GameDefaultMap=/Game/Maps/GameStartupMap.GameStartupMap +EditorStartupMap=/Game/Maps/GameStartupMap.GameStartupMap [/Script/WindowsTargetPlatform.WindowsTargetSettings] DefaultGraphicsRHI=DefaultGraphicsRHI_DX12 @@ -70,3 +71,17 @@ ConnectionType=USBOnly bUseManualIPAddress=False ManualIPAddress= +[/Script/Engine.GameEngine] ++NetDriverDefinitions=(DefName="GameNetDriver",DriverClassName="OnlineSubsystemSteam.SteamNetDriver",DriverClassNameFallback="OnlineSubsystemUtils.IpNetDriver") + +[OnlineSubsystem] +DefaultPlatformService=Steam + +[OnlineSubsystemSteam] +bEnabled=true +SteamDevAppId=480 +bInitServerOnClient=true + +[/Script/OnlineSubsystemSteam.SteamNetDriver] +NetConnectionClassName="OnlineSubsystemSteam.SteamNetConnection" + diff --git a/Config/DefaultGame.ini b/Config/DefaultGame.ini index 9ab9bfd..16452c1 100644 --- a/Config/DefaultGame.ini +++ b/Config/DefaultGame.ini @@ -1,3 +1,99 @@ + [/Script/EngineSettings.GeneralProjectSettings] ProjectID=176B5EAC488352E631084AACF4701739 + +[/Script/Engine.GameSession] +MaxPlayers=100 + +[/Script/UnrealEd.ProjectPackagingSettings] +Build=IfProjectHasCode +BuildConfiguration=PPBC_Development +BuildTarget= +FullRebuild=False +ForDistribution=False +IncludeDebugFiles=False +BlueprintNativizationMethod=Disabled +bIncludeNativizedAssetsInProjectGeneration=False +bExcludeMonolithicEngineHeadersInNativizedCode=False +UsePakFile=True +bUseIoStore=True +bUseZenStore=False +bMakeBinaryConfig=False +bGenerateChunks=False +bGenerateNoChunks=False +bChunkHardReferencesOnly=False +bForceOneChunkPerFile=False +MaxChunkSize=0 +bBuildHttpChunkInstallData=False +HttpChunkInstallDataDirectory=(Path="") +WriteBackMetadataToAssetRegistry=Disabled +bCompressed=True +PackageCompressionFormat=Oodle +bForceUseProjectCompressionFormatIgnoreHardwareOverride=False +PackageAdditionalCompressionOptions= +PackageCompressionMethod=Kraken +PackageCompressionLevel_DebugDevelopment=4 +PackageCompressionLevel_TestShipping=5 +PackageCompressionLevel_Distribution=7 +PackageCompressionMinBytesSaved=1024 +PackageCompressionMinPercentSaved=5 +bPackageCompressionEnableDDC=False +PackageCompressionMinSizeToConsiderDDC=0 +HttpChunkInstallDataVersion= +IncludePrerequisites=True +IncludeAppLocalPrerequisites=False +bShareMaterialShaderCode=True +bDeterministicShaderCodeOrder=False +bSharedMaterialNativeLibraries=True +ApplocalPrerequisitesDirectory=(Path="") +IncludeCrashReporter=False +InternationalizationPreset=English +-CulturesToStage=en ++CulturesToStage=en +LocalizationTargetCatchAllChunkId=0 +bCookAll=False +bCookMapsOnly=False +bSkipEditorContent=False +bSkipMovies=False +-IniKeyDenylist=KeyStorePassword +-IniKeyDenylist=KeyPassword +-IniKeyDenylist=rsa.privateexp +-IniKeyDenylist=rsa.modulus +-IniKeyDenylist=rsa.publicexp +-IniKeyDenylist=aes.key +-IniKeyDenylist=SigningPublicExponent +-IniKeyDenylist=SigningModulus +-IniKeyDenylist=SigningPrivateExponent +-IniKeyDenylist=EncryptionKey +-IniKeyDenylist=DevCenterUsername +-IniKeyDenylist=DevCenterPassword +-IniKeyDenylist=IOSTeamID +-IniKeyDenylist=SigningCertificate +-IniKeyDenylist=MobileProvision +-IniKeyDenylist=IniKeyDenylist +-IniKeyDenylist=IniSectionDenylist ++IniKeyDenylist=KeyStorePassword ++IniKeyDenylist=KeyPassword ++IniKeyDenylist=rsa.privateexp ++IniKeyDenylist=rsa.modulus ++IniKeyDenylist=rsa.publicexp ++IniKeyDenylist=aes.key ++IniKeyDenylist=SigningPublicExponent ++IniKeyDenylist=SigningModulus ++IniKeyDenylist=SigningPrivateExponent ++IniKeyDenylist=EncryptionKey ++IniKeyDenylist=DevCenterUsername ++IniKeyDenylist=DevCenterPassword ++IniKeyDenylist=IOSTeamID ++IniKeyDenylist=SigningCertificate ++IniKeyDenylist=MobileProvision ++IniKeyDenylist=IniKeyDenylist ++IniKeyDenylist=IniSectionDenylist +-IniSectionDenylist=HordeStorageServers +-IniSectionDenylist=StorageServers ++IniSectionDenylist=HordeStorageServers ++IniSectionDenylist=StorageServers ++MapsToCook=(FilePath="/Game/Maps/Lobby") ++MapsToCook=(FilePath="/Game/Maps/GameStartupMap") + diff --git a/Config/DefaultInput.ini b/Config/DefaultInput.ini index 4cc3605..91fbc4d 100644 --- a/Config/DefaultInput.ini +++ b/Config/DefaultInput.ini @@ -67,7 +67,9 @@ bCaptureMouseOnLaunch=True bEnableLegacyInputScales=True bEnableMotionControls=True bFilterInputByPlatformUser=False +bEnableInputDeviceSubsystem=True bShouldFlushPressedKeysOnViewportFocusLost=True +bEnableDynamicComponentInputBinding=True bAlwaysShowTouchInterface=False bShowConsoleOnFourFingerTap=True bEnableGestureRecognizer=False @@ -76,6 +78,18 @@ DefaultViewportMouseCaptureMode=CapturePermanently_IncludingInitialMouseDown DefaultViewportMouseLockMode=LockOnCapture FOVScale=0.011110 DoubleClickTime=0.200000 ++ActionMappings=(ActionName="Jump",bShift=False,bCtrl=False,bAlt=False,bCmd=False,Key=Gamepad_FaceButton_Bottom) ++ActionMappings=(ActionName="Jump",bShift=False,bCtrl=False,bAlt=False,bCmd=False,Key=SpaceBar) ++AxisMappings=(AxisName="Look Up / Down Gamepad",Scale=1.000000,Key=Gamepad_RightY) ++AxisMappings=(AxisName="Look Up / Down Mouse",Scale=-1.000000,Key=MouseY) ++AxisMappings=(AxisName="Move Forward / Backward",Scale=1.000000,Key=Gamepad_LeftY) ++AxisMappings=(AxisName="Move Forward / Backward",Scale=-1.000000,Key=S) ++AxisMappings=(AxisName="Move Forward / Backward",Scale=1.000000,Key=W) ++AxisMappings=(AxisName="Move Right / Left",Scale=-1.000000,Key=A) ++AxisMappings=(AxisName="Move Right / Left",Scale=1.000000,Key=D) ++AxisMappings=(AxisName="Move Right / Left",Scale=1.000000,Key=Gamepad_LeftX) ++AxisMappings=(AxisName="Turn Right / Left Gamepad",Scale=1.000000,Key=Gamepad_RightX) ++AxisMappings=(AxisName="Turn Right / Left Mouse",Scale=1.000000,Key=MouseX) DefaultPlayerInputClass=/Script/EnhancedInput.EnhancedPlayerInput DefaultInputComponentClass=/Script/EnhancedInput.EnhancedInputComponent DefaultTouchInterface=/Engine/MobileResources/HUD/DefaultVirtualJoysticks.DefaultVirtualJoysticks diff --git a/Content/Characters/Mannequin_UE4/Animations/Jog_Fwd.uasset b/Content/Characters/Mannequin_UE4/Animations/Jog_Fwd.uasset new file mode 100644 index 0000000..8b159a0 Binary files /dev/null and b/Content/Characters/Mannequin_UE4/Animations/Jog_Fwd.uasset differ diff --git a/Content/Characters/Mannequin_UE4/Materials/Layers/ML_Latex_Black.uasset b/Content/Characters/Mannequin_UE4/Materials/Layers/ML_Latex_Black.uasset new file mode 100644 index 0000000..cd2963d Binary files /dev/null and b/Content/Characters/Mannequin_UE4/Materials/Layers/ML_Latex_Black.uasset differ diff --git a/Content/Characters/Mannequin_UE4/Materials/Layers/ML_ShinyPlastic_Beige.uasset b/Content/Characters/Mannequin_UE4/Materials/Layers/ML_ShinyPlastic_Beige.uasset new file mode 100644 index 0000000..0995271 Binary files /dev/null and b/Content/Characters/Mannequin_UE4/Materials/Layers/ML_ShinyPlastic_Beige.uasset differ diff --git a/Content/Characters/Mannequin_UE4/Materials/Layers/ML_ShinyPlastic_Beige_Logo.uasset b/Content/Characters/Mannequin_UE4/Materials/Layers/ML_ShinyPlastic_Beige_Logo.uasset new file mode 100644 index 0000000..2817aa2 Binary files /dev/null and b/Content/Characters/Mannequin_UE4/Materials/Layers/ML_ShinyPlastic_Beige_Logo.uasset differ diff --git a/Content/Characters/Mannequin_UE4/Materials/Layers/ML_SoftMetal.uasset b/Content/Characters/Mannequin_UE4/Materials/Layers/ML_SoftMetal.uasset new file mode 100644 index 0000000..54f9425 Binary files /dev/null and b/Content/Characters/Mannequin_UE4/Materials/Layers/ML_SoftMetal.uasset differ diff --git a/Content/Characters/Mannequin_UE4/Materials/M_MannequinUE4_Body.uasset b/Content/Characters/Mannequin_UE4/Materials/M_MannequinUE4_Body.uasset new file mode 100644 index 0000000..d679443 Binary files /dev/null and b/Content/Characters/Mannequin_UE4/Materials/M_MannequinUE4_Body.uasset differ diff --git a/Content/Characters/Mannequin_UE4/Materials/M_MannequinUE4_ChestLogo.uasset b/Content/Characters/Mannequin_UE4/Materials/M_MannequinUE4_ChestLogo.uasset new file mode 100644 index 0000000..6fde6ec Binary files /dev/null and b/Content/Characters/Mannequin_UE4/Materials/M_MannequinUE4_ChestLogo.uasset differ diff --git a/Content/Characters/Mannequin_UE4/Meshes/SK_Mannequin.uasset b/Content/Characters/Mannequin_UE4/Meshes/SK_Mannequin.uasset new file mode 100644 index 0000000..57ad946 Binary files /dev/null and b/Content/Characters/Mannequin_UE4/Meshes/SK_Mannequin.uasset differ diff --git a/Content/Characters/Mannequin_UE4/Meshes/SK_Mannequin_PhysicsAsset.uasset b/Content/Characters/Mannequin_UE4/Meshes/SK_Mannequin_PhysicsAsset.uasset new file mode 100644 index 0000000..fe1f573 Binary files /dev/null and b/Content/Characters/Mannequin_UE4/Meshes/SK_Mannequin_PhysicsAsset.uasset differ diff --git a/Content/Characters/Mannequin_UE4/Meshes/SK_Mannequin_Skeleton.uasset b/Content/Characters/Mannequin_UE4/Meshes/SK_Mannequin_Skeleton.uasset new file mode 100644 index 0000000..c0bf391 Binary files /dev/null and b/Content/Characters/Mannequin_UE4/Meshes/SK_Mannequin_Skeleton.uasset differ diff --git a/Content/Characters/Mannequin_UE4/Rigs/IK_UE4_Mannequin.uasset b/Content/Characters/Mannequin_UE4/Rigs/IK_UE4_Mannequin.uasset new file mode 100644 index 0000000..afbdef5 Binary files /dev/null and b/Content/Characters/Mannequin_UE4/Rigs/IK_UE4_Mannequin.uasset differ diff --git a/Content/Characters/Mannequin_UE4/Rigs/RTG_UE4Manny_UE5Manny.uasset b/Content/Characters/Mannequin_UE4/Rigs/RTG_UE4Manny_UE5Manny.uasset new file mode 100644 index 0000000..34e326f Binary files /dev/null and b/Content/Characters/Mannequin_UE4/Rigs/RTG_UE4Manny_UE5Manny.uasset differ diff --git a/Content/Characters/Mannequin_UE4/Rigs/RTG_UE5Manny_UE4Manny.uasset b/Content/Characters/Mannequin_UE4/Rigs/RTG_UE5Manny_UE4Manny.uasset new file mode 100644 index 0000000..61f74d3 Binary files /dev/null and b/Content/Characters/Mannequin_UE4/Rigs/RTG_UE5Manny_UE4Manny.uasset differ diff --git a/Content/Characters/Mannequin_UE4/Textures/T_ML_Aluminum01.uasset b/Content/Characters/Mannequin_UE4/Textures/T_ML_Aluminum01.uasset new file mode 100644 index 0000000..f941b70 Binary files /dev/null and b/Content/Characters/Mannequin_UE4/Textures/T_ML_Aluminum01.uasset differ diff --git a/Content/Characters/Mannequin_UE4/Textures/T_ML_Aluminum01_N.uasset b/Content/Characters/Mannequin_UE4/Textures/T_ML_Aluminum01_N.uasset new file mode 100644 index 0000000..c129c35 Binary files /dev/null and b/Content/Characters/Mannequin_UE4/Textures/T_ML_Aluminum01_N.uasset differ diff --git a/Content/Characters/Mannequin_UE4/Textures/T_ML_Rubber_Blue_01_D.uasset b/Content/Characters/Mannequin_UE4/Textures/T_ML_Rubber_Blue_01_D.uasset new file mode 100644 index 0000000..64b4d0e Binary files /dev/null and b/Content/Characters/Mannequin_UE4/Textures/T_ML_Rubber_Blue_01_D.uasset differ diff --git a/Content/Characters/Mannequin_UE4/Textures/T_ML_Rubber_Blue_01_N.uasset b/Content/Characters/Mannequin_UE4/Textures/T_ML_Rubber_Blue_01_N.uasset new file mode 100644 index 0000000..2be4b1d Binary files /dev/null and b/Content/Characters/Mannequin_UE4/Textures/T_ML_Rubber_Blue_01_N.uasset differ diff --git a/Content/Characters/Mannequin_UE4/Textures/T_UE4_Mannequin_MAT_MASKA.uasset b/Content/Characters/Mannequin_UE4/Textures/T_UE4_Mannequin_MAT_MASKA.uasset new file mode 100644 index 0000000..e8d10e4 Binary files /dev/null and b/Content/Characters/Mannequin_UE4/Textures/T_UE4_Mannequin_MAT_MASKA.uasset differ diff --git a/Content/Characters/Mannequin_UE4/Textures/T_UE4_Mannequin__normals.uasset b/Content/Characters/Mannequin_UE4/Textures/T_UE4_Mannequin__normals.uasset new file mode 100644 index 0000000..b26f9bf Binary files /dev/null and b/Content/Characters/Mannequin_UE4/Textures/T_UE4_Mannequin__normals.uasset differ diff --git a/Content/Characters/Mannequin_UE4/Textures/T_UELogo_Mask.uasset b/Content/Characters/Mannequin_UE4/Textures/T_UELogo_Mask.uasset new file mode 100644 index 0000000..e28a02b Binary files /dev/null and b/Content/Characters/Mannequin_UE4/Textures/T_UELogo_Mask.uasset differ diff --git a/Content/Characters/Mannequin_UE4/Textures/T_UELogo_N_TGA.uasset b/Content/Characters/Mannequin_UE4/Textures/T_UELogo_N_TGA.uasset new file mode 100644 index 0000000..3704f5c Binary files /dev/null and b/Content/Characters/Mannequin_UE4/Textures/T_UELogo_N_TGA.uasset differ diff --git a/Content/Characters/Mannequins/Animations/ABP_Manny.uasset b/Content/Characters/Mannequins/Animations/ABP_Manny.uasset new file mode 100644 index 0000000..a5c81fe Binary files /dev/null and b/Content/Characters/Mannequins/Animations/ABP_Manny.uasset differ diff --git a/Content/Characters/Mannequins/Animations/ABP_Quinn.uasset b/Content/Characters/Mannequins/Animations/ABP_Quinn.uasset new file mode 100644 index 0000000..98ff9f3 Binary files /dev/null and b/Content/Characters/Mannequins/Animations/ABP_Quinn.uasset differ diff --git a/Content/Characters/Mannequins/Animations/Manny/BS_MM_WalkRun.uasset b/Content/Characters/Mannequins/Animations/Manny/BS_MM_WalkRun.uasset new file mode 100644 index 0000000..8eb2b05 Binary files /dev/null and b/Content/Characters/Mannequins/Animations/Manny/BS_MM_WalkRun.uasset differ diff --git a/Content/Characters/Mannequins/Animations/Manny/MM_Fall_Loop.uasset b/Content/Characters/Mannequins/Animations/Manny/MM_Fall_Loop.uasset new file mode 100644 index 0000000..29f41e9 Binary files /dev/null and b/Content/Characters/Mannequins/Animations/Manny/MM_Fall_Loop.uasset differ diff --git a/Content/Characters/Mannequins/Animations/Manny/MM_Idle.uasset b/Content/Characters/Mannequins/Animations/Manny/MM_Idle.uasset new file mode 100644 index 0000000..c63ed58 Binary files /dev/null and b/Content/Characters/Mannequins/Animations/Manny/MM_Idle.uasset differ diff --git a/Content/Characters/Mannequins/Animations/Manny/MM_Jump.uasset b/Content/Characters/Mannequins/Animations/Manny/MM_Jump.uasset new file mode 100644 index 0000000..ce60833 Binary files /dev/null and b/Content/Characters/Mannequins/Animations/Manny/MM_Jump.uasset differ diff --git a/Content/Characters/Mannequins/Animations/Manny/MM_Land.uasset b/Content/Characters/Mannequins/Animations/Manny/MM_Land.uasset new file mode 100644 index 0000000..5416475 Binary files /dev/null and b/Content/Characters/Mannequins/Animations/Manny/MM_Land.uasset differ diff --git a/Content/Characters/Mannequins/Animations/Manny/MM_Run_Fwd.uasset b/Content/Characters/Mannequins/Animations/Manny/MM_Run_Fwd.uasset new file mode 100644 index 0000000..7f0b707 Binary files /dev/null and b/Content/Characters/Mannequins/Animations/Manny/MM_Run_Fwd.uasset differ diff --git a/Content/Characters/Mannequins/Animations/Manny/MM_T_Pose.uasset b/Content/Characters/Mannequins/Animations/Manny/MM_T_Pose.uasset new file mode 100644 index 0000000..5580f59 Binary files /dev/null and b/Content/Characters/Mannequins/Animations/Manny/MM_T_Pose.uasset differ diff --git a/Content/Characters/Mannequins/Animations/Manny/MM_Walk_Fwd.uasset b/Content/Characters/Mannequins/Animations/Manny/MM_Walk_Fwd.uasset new file mode 100644 index 0000000..f0013ef Binary files /dev/null and b/Content/Characters/Mannequins/Animations/Manny/MM_Walk_Fwd.uasset differ diff --git a/Content/Characters/Mannequins/Animations/Manny/MM_Walk_InPlace.uasset b/Content/Characters/Mannequins/Animations/Manny/MM_Walk_InPlace.uasset new file mode 100644 index 0000000..dd9cb4a Binary files /dev/null and b/Content/Characters/Mannequins/Animations/Manny/MM_Walk_InPlace.uasset differ diff --git a/Content/Characters/Mannequins/Animations/Quinn/BS_MF_Unarmed_WalkRun.uasset b/Content/Characters/Mannequins/Animations/Quinn/BS_MF_Unarmed_WalkRun.uasset new file mode 100644 index 0000000..0f36a97 Binary files /dev/null and b/Content/Characters/Mannequins/Animations/Quinn/BS_MF_Unarmed_WalkRun.uasset differ diff --git a/Content/Characters/Mannequins/Animations/Quinn/MF_Idle.uasset b/Content/Characters/Mannequins/Animations/Quinn/MF_Idle.uasset new file mode 100644 index 0000000..44c15db Binary files /dev/null and b/Content/Characters/Mannequins/Animations/Quinn/MF_Idle.uasset differ diff --git a/Content/Characters/Mannequins/Animations/Quinn/MF_Run_Fwd.uasset b/Content/Characters/Mannequins/Animations/Quinn/MF_Run_Fwd.uasset new file mode 100644 index 0000000..510126d Binary files /dev/null and b/Content/Characters/Mannequins/Animations/Quinn/MF_Run_Fwd.uasset differ diff --git a/Content/Characters/Mannequins/Animations/Quinn/MF_Walk_Fwd.uasset b/Content/Characters/Mannequins/Animations/Quinn/MF_Walk_Fwd.uasset new file mode 100644 index 0000000..2c4a8e7 Binary files /dev/null and b/Content/Characters/Mannequins/Animations/Quinn/MF_Walk_Fwd.uasset differ diff --git a/Content/Characters/Mannequins/Materials/Functions/CA_Mannequin.uasset b/Content/Characters/Mannequins/Materials/Functions/CA_Mannequin.uasset new file mode 100644 index 0000000..18a90f8 Binary files /dev/null and b/Content/Characters/Mannequins/Materials/Functions/CA_Mannequin.uasset differ diff --git a/Content/Characters/Mannequins/Materials/Functions/ChromaticCurve.uasset b/Content/Characters/Mannequins/Materials/Functions/ChromaticCurve.uasset new file mode 100644 index 0000000..7eabed7 Binary files /dev/null and b/Content/Characters/Mannequins/Materials/Functions/ChromaticCurve.uasset differ diff --git a/Content/Characters/Mannequins/Materials/Functions/MF_Diffraction.uasset b/Content/Characters/Mannequins/Materials/Functions/MF_Diffraction.uasset new file mode 100644 index 0000000..658b578 Binary files /dev/null and b/Content/Characters/Mannequins/Materials/Functions/MF_Diffraction.uasset differ diff --git a/Content/Characters/Mannequins/Materials/Functions/MF_logo3layers.uasset b/Content/Characters/Mannequins/Materials/Functions/MF_logo3layers.uasset new file mode 100644 index 0000000..28c8267 Binary files /dev/null and b/Content/Characters/Mannequins/Materials/Functions/MF_logo3layers.uasset differ diff --git a/Content/Characters/Mannequins/Materials/Functions/ML_BaseColorFallOff.uasset b/Content/Characters/Mannequins/Materials/Functions/ML_BaseColorFallOff.uasset new file mode 100644 index 0000000..a8905ed Binary files /dev/null and b/Content/Characters/Mannequins/Materials/Functions/ML_BaseColorFallOff.uasset differ diff --git a/Content/Characters/Mannequins/Materials/Instances/Manny/MI_Manny_01.uasset b/Content/Characters/Mannequins/Materials/Instances/Manny/MI_Manny_01.uasset new file mode 100644 index 0000000..0c797f9 Binary files /dev/null and b/Content/Characters/Mannequins/Materials/Instances/Manny/MI_Manny_01.uasset differ diff --git a/Content/Characters/Mannequins/Materials/Instances/Manny/MI_Manny_02.uasset b/Content/Characters/Mannequins/Materials/Instances/Manny/MI_Manny_02.uasset new file mode 100644 index 0000000..d83936b Binary files /dev/null and b/Content/Characters/Mannequins/Materials/Instances/Manny/MI_Manny_02.uasset differ diff --git a/Content/Characters/Mannequins/Materials/Instances/Quinn/MI_Quinn_01.uasset b/Content/Characters/Mannequins/Materials/Instances/Quinn/MI_Quinn_01.uasset new file mode 100644 index 0000000..5ff72a5 Binary files /dev/null and b/Content/Characters/Mannequins/Materials/Instances/Quinn/MI_Quinn_01.uasset differ diff --git a/Content/Characters/Mannequins/Materials/Instances/Quinn/MI_Quinn_02.uasset b/Content/Characters/Mannequins/Materials/Instances/Quinn/MI_Quinn_02.uasset new file mode 100644 index 0000000..edcc292 Binary files /dev/null and b/Content/Characters/Mannequins/Materials/Instances/Quinn/MI_Quinn_02.uasset differ diff --git a/Content/Characters/Mannequins/Materials/M_Mannequin.uasset b/Content/Characters/Mannequins/Materials/M_Mannequin.uasset new file mode 100644 index 0000000..9ae96ec Binary files /dev/null and b/Content/Characters/Mannequins/Materials/M_Mannequin.uasset differ diff --git a/Content/Characters/Mannequins/Meshes/Mannequin_LODSettings.uasset b/Content/Characters/Mannequins/Meshes/Mannequin_LODSettings.uasset new file mode 100644 index 0000000..5d82e00 Binary files /dev/null and b/Content/Characters/Mannequins/Meshes/Mannequin_LODSettings.uasset differ diff --git a/Content/Characters/Mannequins/Meshes/SKM_Manny.uasset b/Content/Characters/Mannequins/Meshes/SKM_Manny.uasset new file mode 100644 index 0000000..48d74be Binary files /dev/null and b/Content/Characters/Mannequins/Meshes/SKM_Manny.uasset differ diff --git a/Content/Characters/Mannequins/Meshes/SKM_Manny_Simple.uasset b/Content/Characters/Mannequins/Meshes/SKM_Manny_Simple.uasset new file mode 100644 index 0000000..2525a43 Binary files /dev/null and b/Content/Characters/Mannequins/Meshes/SKM_Manny_Simple.uasset differ diff --git a/Content/Characters/Mannequins/Meshes/SKM_Quinn.uasset b/Content/Characters/Mannequins/Meshes/SKM_Quinn.uasset new file mode 100644 index 0000000..1a330bc Binary files /dev/null and b/Content/Characters/Mannequins/Meshes/SKM_Quinn.uasset differ diff --git a/Content/Characters/Mannequins/Meshes/SKM_Quinn_Simple.uasset b/Content/Characters/Mannequins/Meshes/SKM_Quinn_Simple.uasset new file mode 100644 index 0000000..8bdf2e0 Binary files /dev/null and b/Content/Characters/Mannequins/Meshes/SKM_Quinn_Simple.uasset differ diff --git a/Content/Characters/Mannequins/Meshes/SK_Mannequin.uasset b/Content/Characters/Mannequins/Meshes/SK_Mannequin.uasset new file mode 100644 index 0000000..5e06618 Binary files /dev/null and b/Content/Characters/Mannequins/Meshes/SK_Mannequin.uasset differ diff --git a/Content/Characters/Mannequins/Rigs/ABP_Manny_PostProcess.uasset b/Content/Characters/Mannequins/Rigs/ABP_Manny_PostProcess.uasset new file mode 100644 index 0000000..60a8181 Binary files /dev/null and b/Content/Characters/Mannequins/Rigs/ABP_Manny_PostProcess.uasset differ diff --git a/Content/Characters/Mannequins/Rigs/ABP_Quinn_PostProcess.uasset b/Content/Characters/Mannequins/Rigs/ABP_Quinn_PostProcess.uasset new file mode 100644 index 0000000..89edb4c Binary files /dev/null and b/Content/Characters/Mannequins/Rigs/ABP_Quinn_PostProcess.uasset differ diff --git a/Content/Characters/Mannequins/Rigs/CR_Mannequin_BasicFootIK.uasset b/Content/Characters/Mannequins/Rigs/CR_Mannequin_BasicFootIK.uasset new file mode 100644 index 0000000..6fc28a9 Binary files /dev/null and b/Content/Characters/Mannequins/Rigs/CR_Mannequin_BasicFootIK.uasset differ diff --git a/Content/Characters/Mannequins/Rigs/CR_Mannequin_Body.uasset b/Content/Characters/Mannequins/Rigs/CR_Mannequin_Body.uasset new file mode 100644 index 0000000..a66c665 Binary files /dev/null and b/Content/Characters/Mannequins/Rigs/CR_Mannequin_Body.uasset differ diff --git a/Content/Characters/Mannequins/Rigs/CR_Mannequin_Procedural.uasset b/Content/Characters/Mannequins/Rigs/CR_Mannequin_Procedural.uasset new file mode 100644 index 0000000..ecf2b04 Binary files /dev/null and b/Content/Characters/Mannequins/Rigs/CR_Mannequin_Procedural.uasset differ diff --git a/Content/Characters/Mannequins/Rigs/IK_Mannequin.uasset b/Content/Characters/Mannequins/Rigs/IK_Mannequin.uasset new file mode 100644 index 0000000..6dc2295 Binary files /dev/null and b/Content/Characters/Mannequins/Rigs/IK_Mannequin.uasset differ diff --git a/Content/Characters/Mannequins/Rigs/PA_Mannequin.uasset b/Content/Characters/Mannequins/Rigs/PA_Mannequin.uasset new file mode 100644 index 0000000..30d19d7 Binary files /dev/null and b/Content/Characters/Mannequins/Rigs/PA_Mannequin.uasset differ diff --git a/Content/Characters/Mannequins/Rigs/Poses/Manny/Manny_calf_l_anim.uasset b/Content/Characters/Mannequins/Rigs/Poses/Manny/Manny_calf_l_anim.uasset new file mode 100644 index 0000000..b9daf8a Binary files /dev/null and b/Content/Characters/Mannequins/Rigs/Poses/Manny/Manny_calf_l_anim.uasset differ diff --git a/Content/Characters/Mannequins/Rigs/Poses/Manny/Manny_calf_l_pose.uasset b/Content/Characters/Mannequins/Rigs/Poses/Manny/Manny_calf_l_pose.uasset new file mode 100644 index 0000000..d9143da Binary files /dev/null and b/Content/Characters/Mannequins/Rigs/Poses/Manny/Manny_calf_l_pose.uasset differ diff --git a/Content/Characters/Mannequins/Rigs/Poses/Manny/Manny_calf_r_anim.uasset b/Content/Characters/Mannequins/Rigs/Poses/Manny/Manny_calf_r_anim.uasset new file mode 100644 index 0000000..e3ad612 Binary files /dev/null and b/Content/Characters/Mannequins/Rigs/Poses/Manny/Manny_calf_r_anim.uasset differ diff --git a/Content/Characters/Mannequins/Rigs/Poses/Manny/Manny_calf_r_pose.uasset b/Content/Characters/Mannequins/Rigs/Poses/Manny/Manny_calf_r_pose.uasset new file mode 100644 index 0000000..bb87fbd Binary files /dev/null and b/Content/Characters/Mannequins/Rigs/Poses/Manny/Manny_calf_r_pose.uasset differ diff --git a/Content/Characters/Mannequins/Rigs/Poses/Manny/Manny_clavicle_l_anim.uasset b/Content/Characters/Mannequins/Rigs/Poses/Manny/Manny_clavicle_l_anim.uasset new file mode 100644 index 0000000..248303a Binary files /dev/null and b/Content/Characters/Mannequins/Rigs/Poses/Manny/Manny_clavicle_l_anim.uasset differ diff --git a/Content/Characters/Mannequins/Rigs/Poses/Manny/Manny_clavicle_l_pose.uasset b/Content/Characters/Mannequins/Rigs/Poses/Manny/Manny_clavicle_l_pose.uasset new file mode 100644 index 0000000..ff54c12 Binary files /dev/null and b/Content/Characters/Mannequins/Rigs/Poses/Manny/Manny_clavicle_l_pose.uasset differ diff --git a/Content/Characters/Mannequins/Rigs/Poses/Manny/Manny_clavicle_r_anim.uasset b/Content/Characters/Mannequins/Rigs/Poses/Manny/Manny_clavicle_r_anim.uasset new file mode 100644 index 0000000..4c9173e Binary files /dev/null and b/Content/Characters/Mannequins/Rigs/Poses/Manny/Manny_clavicle_r_anim.uasset differ diff --git a/Content/Characters/Mannequins/Rigs/Poses/Manny/Manny_clavicle_r_pose.uasset b/Content/Characters/Mannequins/Rigs/Poses/Manny/Manny_clavicle_r_pose.uasset new file mode 100644 index 0000000..c8120a2 Binary files /dev/null and b/Content/Characters/Mannequins/Rigs/Poses/Manny/Manny_clavicle_r_pose.uasset differ diff --git a/Content/Characters/Mannequins/Rigs/Poses/Manny/Manny_foot_l_anim.uasset b/Content/Characters/Mannequins/Rigs/Poses/Manny/Manny_foot_l_anim.uasset new file mode 100644 index 0000000..b0db2b3 Binary files /dev/null and b/Content/Characters/Mannequins/Rigs/Poses/Manny/Manny_foot_l_anim.uasset differ diff --git a/Content/Characters/Mannequins/Rigs/Poses/Manny/Manny_foot_l_pose.uasset b/Content/Characters/Mannequins/Rigs/Poses/Manny/Manny_foot_l_pose.uasset new file mode 100644 index 0000000..6861ec7 Binary files /dev/null and b/Content/Characters/Mannequins/Rigs/Poses/Manny/Manny_foot_l_pose.uasset differ diff --git a/Content/Characters/Mannequins/Rigs/Poses/Manny/Manny_foot_r_anim.uasset b/Content/Characters/Mannequins/Rigs/Poses/Manny/Manny_foot_r_anim.uasset new file mode 100644 index 0000000..6f7b836 Binary files /dev/null and b/Content/Characters/Mannequins/Rigs/Poses/Manny/Manny_foot_r_anim.uasset differ diff --git a/Content/Characters/Mannequins/Rigs/Poses/Manny/Manny_foot_r_pose.uasset b/Content/Characters/Mannequins/Rigs/Poses/Manny/Manny_foot_r_pose.uasset new file mode 100644 index 0000000..cb7301f Binary files /dev/null and b/Content/Characters/Mannequins/Rigs/Poses/Manny/Manny_foot_r_pose.uasset differ diff --git a/Content/Characters/Mannequins/Rigs/Poses/Manny/Manny_hand_l_anim.uasset b/Content/Characters/Mannequins/Rigs/Poses/Manny/Manny_hand_l_anim.uasset new file mode 100644 index 0000000..08003a1 Binary files /dev/null and b/Content/Characters/Mannequins/Rigs/Poses/Manny/Manny_hand_l_anim.uasset differ diff --git a/Content/Characters/Mannequins/Rigs/Poses/Manny/Manny_hand_l_pose.uasset b/Content/Characters/Mannequins/Rigs/Poses/Manny/Manny_hand_l_pose.uasset new file mode 100644 index 0000000..e3c6583 Binary files /dev/null and b/Content/Characters/Mannequins/Rigs/Poses/Manny/Manny_hand_l_pose.uasset differ diff --git a/Content/Characters/Mannequins/Rigs/Poses/Manny/Manny_hand_r_anim.uasset b/Content/Characters/Mannequins/Rigs/Poses/Manny/Manny_hand_r_anim.uasset new file mode 100644 index 0000000..2967fed Binary files /dev/null and b/Content/Characters/Mannequins/Rigs/Poses/Manny/Manny_hand_r_anim.uasset differ diff --git a/Content/Characters/Mannequins/Rigs/Poses/Manny/Manny_hand_r_pose.uasset b/Content/Characters/Mannequins/Rigs/Poses/Manny/Manny_hand_r_pose.uasset new file mode 100644 index 0000000..eb64b4a Binary files /dev/null and b/Content/Characters/Mannequins/Rigs/Poses/Manny/Manny_hand_r_pose.uasset differ diff --git a/Content/Characters/Mannequins/Rigs/Poses/Manny/Manny_lowerarm_l_anim.uasset b/Content/Characters/Mannequins/Rigs/Poses/Manny/Manny_lowerarm_l_anim.uasset new file mode 100644 index 0000000..61b71ac Binary files /dev/null and b/Content/Characters/Mannequins/Rigs/Poses/Manny/Manny_lowerarm_l_anim.uasset differ diff --git a/Content/Characters/Mannequins/Rigs/Poses/Manny/Manny_lowerarm_l_pose.uasset b/Content/Characters/Mannequins/Rigs/Poses/Manny/Manny_lowerarm_l_pose.uasset new file mode 100644 index 0000000..00ac326 Binary files /dev/null and b/Content/Characters/Mannequins/Rigs/Poses/Manny/Manny_lowerarm_l_pose.uasset differ diff --git a/Content/Characters/Mannequins/Rigs/Poses/Manny/Manny_lowerarm_r_anim.uasset b/Content/Characters/Mannequins/Rigs/Poses/Manny/Manny_lowerarm_r_anim.uasset new file mode 100644 index 0000000..9f83f7e Binary files /dev/null and b/Content/Characters/Mannequins/Rigs/Poses/Manny/Manny_lowerarm_r_anim.uasset differ diff --git a/Content/Characters/Mannequins/Rigs/Poses/Manny/Manny_lowerarm_r_pose.uasset b/Content/Characters/Mannequins/Rigs/Poses/Manny/Manny_lowerarm_r_pose.uasset new file mode 100644 index 0000000..2d472be Binary files /dev/null and b/Content/Characters/Mannequins/Rigs/Poses/Manny/Manny_lowerarm_r_pose.uasset differ diff --git a/Content/Characters/Mannequins/Rigs/Poses/Manny/Manny_thigh_l_anim.uasset b/Content/Characters/Mannequins/Rigs/Poses/Manny/Manny_thigh_l_anim.uasset new file mode 100644 index 0000000..f1f66de Binary files /dev/null and b/Content/Characters/Mannequins/Rigs/Poses/Manny/Manny_thigh_l_anim.uasset differ diff --git a/Content/Characters/Mannequins/Rigs/Poses/Manny/Manny_thigh_l_pose.uasset b/Content/Characters/Mannequins/Rigs/Poses/Manny/Manny_thigh_l_pose.uasset new file mode 100644 index 0000000..116157f Binary files /dev/null and b/Content/Characters/Mannequins/Rigs/Poses/Manny/Manny_thigh_l_pose.uasset differ diff --git a/Content/Characters/Mannequins/Rigs/Poses/Manny/Manny_thigh_r_anim.uasset b/Content/Characters/Mannequins/Rigs/Poses/Manny/Manny_thigh_r_anim.uasset new file mode 100644 index 0000000..65ef30d Binary files /dev/null and b/Content/Characters/Mannequins/Rigs/Poses/Manny/Manny_thigh_r_anim.uasset differ diff --git a/Content/Characters/Mannequins/Rigs/Poses/Manny/Manny_thigh_r_pose.uasset b/Content/Characters/Mannequins/Rigs/Poses/Manny/Manny_thigh_r_pose.uasset new file mode 100644 index 0000000..2233d7e Binary files /dev/null and b/Content/Characters/Mannequins/Rigs/Poses/Manny/Manny_thigh_r_pose.uasset differ diff --git a/Content/Characters/Mannequins/Rigs/Poses/Manny/Manny_upperarm_l_anim.uasset b/Content/Characters/Mannequins/Rigs/Poses/Manny/Manny_upperarm_l_anim.uasset new file mode 100644 index 0000000..f7c9bd8 Binary files /dev/null and b/Content/Characters/Mannequins/Rigs/Poses/Manny/Manny_upperarm_l_anim.uasset differ diff --git a/Content/Characters/Mannequins/Rigs/Poses/Manny/Manny_upperarm_l_pose.uasset b/Content/Characters/Mannequins/Rigs/Poses/Manny/Manny_upperarm_l_pose.uasset new file mode 100644 index 0000000..71944b4 Binary files /dev/null and b/Content/Characters/Mannequins/Rigs/Poses/Manny/Manny_upperarm_l_pose.uasset differ diff --git a/Content/Characters/Mannequins/Rigs/Poses/Manny/Manny_upperarm_r_anim.uasset b/Content/Characters/Mannequins/Rigs/Poses/Manny/Manny_upperarm_r_anim.uasset new file mode 100644 index 0000000..e542f68 Binary files /dev/null and b/Content/Characters/Mannequins/Rigs/Poses/Manny/Manny_upperarm_r_anim.uasset differ diff --git a/Content/Characters/Mannequins/Rigs/Poses/Manny/Manny_upperarm_r_pose.uasset b/Content/Characters/Mannequins/Rigs/Poses/Manny/Manny_upperarm_r_pose.uasset new file mode 100644 index 0000000..1a19e07 Binary files /dev/null and b/Content/Characters/Mannequins/Rigs/Poses/Manny/Manny_upperarm_r_pose.uasset differ diff --git a/Content/Characters/Mannequins/Rigs/Poses/Quinn/Quinn_calf_l_anim.uasset b/Content/Characters/Mannequins/Rigs/Poses/Quinn/Quinn_calf_l_anim.uasset new file mode 100644 index 0000000..3afe5d3 Binary files /dev/null and b/Content/Characters/Mannequins/Rigs/Poses/Quinn/Quinn_calf_l_anim.uasset differ diff --git a/Content/Characters/Mannequins/Rigs/Poses/Quinn/Quinn_calf_l_pose.uasset b/Content/Characters/Mannequins/Rigs/Poses/Quinn/Quinn_calf_l_pose.uasset new file mode 100644 index 0000000..ac48576 Binary files /dev/null and b/Content/Characters/Mannequins/Rigs/Poses/Quinn/Quinn_calf_l_pose.uasset differ diff --git a/Content/Characters/Mannequins/Rigs/Poses/Quinn/Quinn_calf_r_anim.uasset b/Content/Characters/Mannequins/Rigs/Poses/Quinn/Quinn_calf_r_anim.uasset new file mode 100644 index 0000000..91cbdfe Binary files /dev/null and b/Content/Characters/Mannequins/Rigs/Poses/Quinn/Quinn_calf_r_anim.uasset differ diff --git a/Content/Characters/Mannequins/Rigs/Poses/Quinn/Quinn_calf_r_pose.uasset b/Content/Characters/Mannequins/Rigs/Poses/Quinn/Quinn_calf_r_pose.uasset new file mode 100644 index 0000000..840ef95 Binary files /dev/null and b/Content/Characters/Mannequins/Rigs/Poses/Quinn/Quinn_calf_r_pose.uasset differ diff --git a/Content/Characters/Mannequins/Rigs/Poses/Quinn/Quinn_clavicle_l_anim.uasset b/Content/Characters/Mannequins/Rigs/Poses/Quinn/Quinn_clavicle_l_anim.uasset new file mode 100644 index 0000000..7ed962c Binary files /dev/null and b/Content/Characters/Mannequins/Rigs/Poses/Quinn/Quinn_clavicle_l_anim.uasset differ diff --git a/Content/Characters/Mannequins/Rigs/Poses/Quinn/Quinn_clavicle_l_pose.uasset b/Content/Characters/Mannequins/Rigs/Poses/Quinn/Quinn_clavicle_l_pose.uasset new file mode 100644 index 0000000..56ab7ae Binary files /dev/null and b/Content/Characters/Mannequins/Rigs/Poses/Quinn/Quinn_clavicle_l_pose.uasset differ diff --git a/Content/Characters/Mannequins/Rigs/Poses/Quinn/Quinn_clavicle_r_anim.uasset b/Content/Characters/Mannequins/Rigs/Poses/Quinn/Quinn_clavicle_r_anim.uasset new file mode 100644 index 0000000..9c29f27 Binary files /dev/null and b/Content/Characters/Mannequins/Rigs/Poses/Quinn/Quinn_clavicle_r_anim.uasset differ diff --git a/Content/Characters/Mannequins/Rigs/Poses/Quinn/Quinn_clavicle_r_pose.uasset b/Content/Characters/Mannequins/Rigs/Poses/Quinn/Quinn_clavicle_r_pose.uasset new file mode 100644 index 0000000..9ae54c3 Binary files /dev/null and b/Content/Characters/Mannequins/Rigs/Poses/Quinn/Quinn_clavicle_r_pose.uasset differ diff --git a/Content/Characters/Mannequins/Rigs/Poses/Quinn/Quinn_foot_l_anim.uasset b/Content/Characters/Mannequins/Rigs/Poses/Quinn/Quinn_foot_l_anim.uasset new file mode 100644 index 0000000..3abe558 Binary files /dev/null and b/Content/Characters/Mannequins/Rigs/Poses/Quinn/Quinn_foot_l_anim.uasset differ diff --git a/Content/Characters/Mannequins/Rigs/Poses/Quinn/Quinn_foot_l_pose.uasset b/Content/Characters/Mannequins/Rigs/Poses/Quinn/Quinn_foot_l_pose.uasset new file mode 100644 index 0000000..a08fa53 Binary files /dev/null and b/Content/Characters/Mannequins/Rigs/Poses/Quinn/Quinn_foot_l_pose.uasset differ diff --git a/Content/Characters/Mannequins/Rigs/Poses/Quinn/Quinn_foot_r_anim.uasset b/Content/Characters/Mannequins/Rigs/Poses/Quinn/Quinn_foot_r_anim.uasset new file mode 100644 index 0000000..5522a14 Binary files /dev/null and b/Content/Characters/Mannequins/Rigs/Poses/Quinn/Quinn_foot_r_anim.uasset differ diff --git a/Content/Characters/Mannequins/Rigs/Poses/Quinn/Quinn_foot_r_pose.uasset b/Content/Characters/Mannequins/Rigs/Poses/Quinn/Quinn_foot_r_pose.uasset new file mode 100644 index 0000000..59b34b1 Binary files /dev/null and b/Content/Characters/Mannequins/Rigs/Poses/Quinn/Quinn_foot_r_pose.uasset differ diff --git a/Content/Characters/Mannequins/Rigs/Poses/Quinn/Quinn_hand_l_anim.uasset b/Content/Characters/Mannequins/Rigs/Poses/Quinn/Quinn_hand_l_anim.uasset new file mode 100644 index 0000000..1a04a03 Binary files /dev/null and b/Content/Characters/Mannequins/Rigs/Poses/Quinn/Quinn_hand_l_anim.uasset differ diff --git a/Content/Characters/Mannequins/Rigs/Poses/Quinn/Quinn_hand_l_pose.uasset b/Content/Characters/Mannequins/Rigs/Poses/Quinn/Quinn_hand_l_pose.uasset new file mode 100644 index 0000000..ec1b72c Binary files /dev/null and b/Content/Characters/Mannequins/Rigs/Poses/Quinn/Quinn_hand_l_pose.uasset differ diff --git a/Content/Characters/Mannequins/Rigs/Poses/Quinn/Quinn_hand_r_anim.uasset b/Content/Characters/Mannequins/Rigs/Poses/Quinn/Quinn_hand_r_anim.uasset new file mode 100644 index 0000000..c1fd355 Binary files /dev/null and b/Content/Characters/Mannequins/Rigs/Poses/Quinn/Quinn_hand_r_anim.uasset differ diff --git a/Content/Characters/Mannequins/Rigs/Poses/Quinn/Quinn_hand_r_pose.uasset b/Content/Characters/Mannequins/Rigs/Poses/Quinn/Quinn_hand_r_pose.uasset new file mode 100644 index 0000000..aa0b6cf Binary files /dev/null and b/Content/Characters/Mannequins/Rigs/Poses/Quinn/Quinn_hand_r_pose.uasset differ diff --git a/Content/Characters/Mannequins/Rigs/Poses/Quinn/Quinn_lowerarm_l_anim.uasset b/Content/Characters/Mannequins/Rigs/Poses/Quinn/Quinn_lowerarm_l_anim.uasset new file mode 100644 index 0000000..e63e32e Binary files /dev/null and b/Content/Characters/Mannequins/Rigs/Poses/Quinn/Quinn_lowerarm_l_anim.uasset differ diff --git a/Content/Characters/Mannequins/Rigs/Poses/Quinn/Quinn_lowerarm_l_pose.uasset b/Content/Characters/Mannequins/Rigs/Poses/Quinn/Quinn_lowerarm_l_pose.uasset new file mode 100644 index 0000000..5f8d5ef Binary files /dev/null and b/Content/Characters/Mannequins/Rigs/Poses/Quinn/Quinn_lowerarm_l_pose.uasset differ diff --git a/Content/Characters/Mannequins/Rigs/Poses/Quinn/Quinn_lowerarm_r_anim.uasset b/Content/Characters/Mannequins/Rigs/Poses/Quinn/Quinn_lowerarm_r_anim.uasset new file mode 100644 index 0000000..f3492ce Binary files /dev/null and b/Content/Characters/Mannequins/Rigs/Poses/Quinn/Quinn_lowerarm_r_anim.uasset differ diff --git a/Content/Characters/Mannequins/Rigs/Poses/Quinn/Quinn_lowerarm_r_pose.uasset b/Content/Characters/Mannequins/Rigs/Poses/Quinn/Quinn_lowerarm_r_pose.uasset new file mode 100644 index 0000000..b04f7e3 Binary files /dev/null and b/Content/Characters/Mannequins/Rigs/Poses/Quinn/Quinn_lowerarm_r_pose.uasset differ diff --git a/Content/Characters/Mannequins/Rigs/Poses/Quinn/Quinn_thigh_l_anim.uasset b/Content/Characters/Mannequins/Rigs/Poses/Quinn/Quinn_thigh_l_anim.uasset new file mode 100644 index 0000000..1209be8 Binary files /dev/null and b/Content/Characters/Mannequins/Rigs/Poses/Quinn/Quinn_thigh_l_anim.uasset differ diff --git a/Content/Characters/Mannequins/Rigs/Poses/Quinn/Quinn_thigh_l_pose.uasset b/Content/Characters/Mannequins/Rigs/Poses/Quinn/Quinn_thigh_l_pose.uasset new file mode 100644 index 0000000..82ccbd3 Binary files /dev/null and b/Content/Characters/Mannequins/Rigs/Poses/Quinn/Quinn_thigh_l_pose.uasset differ diff --git a/Content/Characters/Mannequins/Rigs/Poses/Quinn/Quinn_thigh_r_anim.uasset b/Content/Characters/Mannequins/Rigs/Poses/Quinn/Quinn_thigh_r_anim.uasset new file mode 100644 index 0000000..48a756b Binary files /dev/null and b/Content/Characters/Mannequins/Rigs/Poses/Quinn/Quinn_thigh_r_anim.uasset differ diff --git a/Content/Characters/Mannequins/Rigs/Poses/Quinn/Quinn_thigh_r_pose.uasset b/Content/Characters/Mannequins/Rigs/Poses/Quinn/Quinn_thigh_r_pose.uasset new file mode 100644 index 0000000..e034a03 Binary files /dev/null and b/Content/Characters/Mannequins/Rigs/Poses/Quinn/Quinn_thigh_r_pose.uasset differ diff --git a/Content/Characters/Mannequins/Rigs/Poses/Quinn/Quinn_upperarm_l_anim.uasset b/Content/Characters/Mannequins/Rigs/Poses/Quinn/Quinn_upperarm_l_anim.uasset new file mode 100644 index 0000000..35195f7 Binary files /dev/null and b/Content/Characters/Mannequins/Rigs/Poses/Quinn/Quinn_upperarm_l_anim.uasset differ diff --git a/Content/Characters/Mannequins/Rigs/Poses/Quinn/Quinn_upperarm_l_pose.uasset b/Content/Characters/Mannequins/Rigs/Poses/Quinn/Quinn_upperarm_l_pose.uasset new file mode 100644 index 0000000..b12e384 Binary files /dev/null and b/Content/Characters/Mannequins/Rigs/Poses/Quinn/Quinn_upperarm_l_pose.uasset differ diff --git a/Content/Characters/Mannequins/Rigs/Poses/Quinn/Quinn_upperarm_r_anim.uasset b/Content/Characters/Mannequins/Rigs/Poses/Quinn/Quinn_upperarm_r_anim.uasset new file mode 100644 index 0000000..e1c9ed3 Binary files /dev/null and b/Content/Characters/Mannequins/Rigs/Poses/Quinn/Quinn_upperarm_r_anim.uasset differ diff --git a/Content/Characters/Mannequins/Rigs/Poses/Quinn/Quinn_upperarm_r_pose.uasset b/Content/Characters/Mannequins/Rigs/Poses/Quinn/Quinn_upperarm_r_pose.uasset new file mode 100644 index 0000000..0e0c116 Binary files /dev/null and b/Content/Characters/Mannequins/Rigs/Poses/Quinn/Quinn_upperarm_r_pose.uasset differ diff --git a/Content/Characters/Mannequins/Rigs/RTG_Mannequin.uasset b/Content/Characters/Mannequins/Rigs/RTG_Mannequin.uasset new file mode 100644 index 0000000..a6661a4 Binary files /dev/null and b/Content/Characters/Mannequins/Rigs/RTG_Mannequin.uasset differ diff --git a/Content/Characters/Mannequins/Textures/Manny/T_Manny_01_ASAOPMASK_MSK.uasset b/Content/Characters/Mannequins/Textures/Manny/T_Manny_01_ASAOPMASK_MSK.uasset new file mode 100644 index 0000000..2807d27 Binary files /dev/null and b/Content/Characters/Mannequins/Textures/Manny/T_Manny_01_ASAOPMASK_MSK.uasset differ diff --git a/Content/Characters/Mannequins/Textures/Manny/T_Manny_01_BN.uasset b/Content/Characters/Mannequins/Textures/Manny/T_Manny_01_BN.uasset new file mode 100644 index 0000000..270ab26 Binary files /dev/null and b/Content/Characters/Mannequins/Textures/Manny/T_Manny_01_BN.uasset differ diff --git a/Content/Characters/Mannequins/Textures/Manny/T_Manny_01_CCRCCPlastic_MSK.uasset b/Content/Characters/Mannequins/Textures/Manny/T_Manny_01_CCRCCPlastic_MSK.uasset new file mode 100644 index 0000000..a148038 Binary files /dev/null and b/Content/Characters/Mannequins/Textures/Manny/T_Manny_01_CCRCCPlastic_MSK.uasset differ diff --git a/Content/Characters/Mannequins/Textures/Manny/T_Manny_01_D.uasset b/Content/Characters/Mannequins/Textures/Manny/T_Manny_01_D.uasset new file mode 100644 index 0000000..ec6af7d Binary files /dev/null and b/Content/Characters/Mannequins/Textures/Manny/T_Manny_01_D.uasset differ diff --git a/Content/Characters/Mannequins/Textures/Manny/T_Manny_01_MSR_MSK.uasset b/Content/Characters/Mannequins/Textures/Manny/T_Manny_01_MSR_MSK.uasset new file mode 100644 index 0000000..0c7c051 Binary files /dev/null and b/Content/Characters/Mannequins/Textures/Manny/T_Manny_01_MSR_MSK.uasset differ diff --git a/Content/Characters/Mannequins/Textures/Manny/T_Manny_01_N.uasset b/Content/Characters/Mannequins/Textures/Manny/T_Manny_01_N.uasset new file mode 100644 index 0000000..e4bf9d7 Binary files /dev/null and b/Content/Characters/Mannequins/Textures/Manny/T_Manny_01_N.uasset differ diff --git a/Content/Characters/Mannequins/Textures/Manny/T_Manny_01_Tan.uasset b/Content/Characters/Mannequins/Textures/Manny/T_Manny_01_Tan.uasset new file mode 100644 index 0000000..e936aeb Binary files /dev/null and b/Content/Characters/Mannequins/Textures/Manny/T_Manny_01_Tan.uasset differ diff --git a/Content/Characters/Mannequins/Textures/Manny/T_Manny_02_ASAOPMASK_MSK.uasset b/Content/Characters/Mannequins/Textures/Manny/T_Manny_02_ASAOPMASK_MSK.uasset new file mode 100644 index 0000000..7574c0f Binary files /dev/null and b/Content/Characters/Mannequins/Textures/Manny/T_Manny_02_ASAOPMASK_MSK.uasset differ diff --git a/Content/Characters/Mannequins/Textures/Manny/T_Manny_02_BN.uasset b/Content/Characters/Mannequins/Textures/Manny/T_Manny_02_BN.uasset new file mode 100644 index 0000000..d5c7560 Binary files /dev/null and b/Content/Characters/Mannequins/Textures/Manny/T_Manny_02_BN.uasset differ diff --git a/Content/Characters/Mannequins/Textures/Manny/T_Manny_02_CCRCCPlastic_MSK.uasset b/Content/Characters/Mannequins/Textures/Manny/T_Manny_02_CCRCCPlastic_MSK.uasset new file mode 100644 index 0000000..d92db8b Binary files /dev/null and b/Content/Characters/Mannequins/Textures/Manny/T_Manny_02_CCRCCPlastic_MSK.uasset differ diff --git a/Content/Characters/Mannequins/Textures/Manny/T_Manny_02_D.uasset b/Content/Characters/Mannequins/Textures/Manny/T_Manny_02_D.uasset new file mode 100644 index 0000000..8f73b0b Binary files /dev/null and b/Content/Characters/Mannequins/Textures/Manny/T_Manny_02_D.uasset differ diff --git a/Content/Characters/Mannequins/Textures/Manny/T_Manny_02_MSR_MSK.uasset b/Content/Characters/Mannequins/Textures/Manny/T_Manny_02_MSR_MSK.uasset new file mode 100644 index 0000000..e847d53 Binary files /dev/null and b/Content/Characters/Mannequins/Textures/Manny/T_Manny_02_MSR_MSK.uasset differ diff --git a/Content/Characters/Mannequins/Textures/Manny/T_Manny_02_N.uasset b/Content/Characters/Mannequins/Textures/Manny/T_Manny_02_N.uasset new file mode 100644 index 0000000..da95dd9 Binary files /dev/null and b/Content/Characters/Mannequins/Textures/Manny/T_Manny_02_N.uasset differ diff --git a/Content/Characters/Mannequins/Textures/Manny/T_Manny_02_Tan.uasset b/Content/Characters/Mannequins/Textures/Manny/T_Manny_02_Tan.uasset new file mode 100644 index 0000000..76dec67 Binary files /dev/null and b/Content/Characters/Mannequins/Textures/Manny/T_Manny_02_Tan.uasset differ diff --git a/Content/Characters/Mannequins/Textures/Quinn/T_Quinn_01ID_BN.uasset b/Content/Characters/Mannequins/Textures/Quinn/T_Quinn_01ID_BN.uasset new file mode 100644 index 0000000..80a7b3d Binary files /dev/null and b/Content/Characters/Mannequins/Textures/Quinn/T_Quinn_01ID_BN.uasset differ diff --git a/Content/Characters/Mannequins/Textures/Quinn/T_Quinn_01ID_D.uasset b/Content/Characters/Mannequins/Textures/Quinn/T_Quinn_01ID_D.uasset new file mode 100644 index 0000000..3c308a7 Binary files /dev/null and b/Content/Characters/Mannequins/Textures/Quinn/T_Quinn_01ID_D.uasset differ diff --git a/Content/Characters/Mannequins/Textures/Quinn/T_Quinn_01ID_MSR_MSK.uasset b/Content/Characters/Mannequins/Textures/Quinn/T_Quinn_01ID_MSR_MSK.uasset new file mode 100644 index 0000000..83f3bba Binary files /dev/null and b/Content/Characters/Mannequins/Textures/Quinn/T_Quinn_01ID_MSR_MSK.uasset differ diff --git a/Content/Characters/Mannequins/Textures/Quinn/T_Quinn_01ID_N.uasset b/Content/Characters/Mannequins/Textures/Quinn/T_Quinn_01ID_N.uasset new file mode 100644 index 0000000..56edd5f Binary files /dev/null and b/Content/Characters/Mannequins/Textures/Quinn/T_Quinn_01ID_N.uasset differ diff --git a/Content/Characters/Mannequins/Textures/Quinn/T_Quinn_01ID_Tan.uasset b/Content/Characters/Mannequins/Textures/Quinn/T_Quinn_01ID_Tan.uasset new file mode 100644 index 0000000..30d96fd Binary files /dev/null and b/Content/Characters/Mannequins/Textures/Quinn/T_Quinn_01ID_Tan.uasset differ diff --git a/Content/Characters/Mannequins/Textures/Quinn/T_Quinn_01_ASAOMASK_MSK.uasset b/Content/Characters/Mannequins/Textures/Quinn/T_Quinn_01_ASAOMASK_MSK.uasset new file mode 100644 index 0000000..d2bfe5c Binary files /dev/null and b/Content/Characters/Mannequins/Textures/Quinn/T_Quinn_01_ASAOMASK_MSK.uasset differ diff --git a/Content/Characters/Mannequins/Textures/Quinn/T_Quinn_01_CCRCCPlastic_MSK.uasset b/Content/Characters/Mannequins/Textures/Quinn/T_Quinn_01_CCRCCPlastic_MSK.uasset new file mode 100644 index 0000000..b989620 Binary files /dev/null and b/Content/Characters/Mannequins/Textures/Quinn/T_Quinn_01_CCRCCPlastic_MSK.uasset differ diff --git a/Content/Characters/Mannequins/Textures/Quinn/T_Quinn_02ID_BN.uasset b/Content/Characters/Mannequins/Textures/Quinn/T_Quinn_02ID_BN.uasset new file mode 100644 index 0000000..d690622 Binary files /dev/null and b/Content/Characters/Mannequins/Textures/Quinn/T_Quinn_02ID_BN.uasset differ diff --git a/Content/Characters/Mannequins/Textures/Quinn/T_Quinn_02ID_D.uasset b/Content/Characters/Mannequins/Textures/Quinn/T_Quinn_02ID_D.uasset new file mode 100644 index 0000000..acc6a70 Binary files /dev/null and b/Content/Characters/Mannequins/Textures/Quinn/T_Quinn_02ID_D.uasset differ diff --git a/Content/Characters/Mannequins/Textures/Quinn/T_Quinn_02ID_MSR_MSK.uasset b/Content/Characters/Mannequins/Textures/Quinn/T_Quinn_02ID_MSR_MSK.uasset new file mode 100644 index 0000000..4e43572 Binary files /dev/null and b/Content/Characters/Mannequins/Textures/Quinn/T_Quinn_02ID_MSR_MSK.uasset differ diff --git a/Content/Characters/Mannequins/Textures/Quinn/T_Quinn_02ID_N.uasset b/Content/Characters/Mannequins/Textures/Quinn/T_Quinn_02ID_N.uasset new file mode 100644 index 0000000..d3476ba Binary files /dev/null and b/Content/Characters/Mannequins/Textures/Quinn/T_Quinn_02ID_N.uasset differ diff --git a/Content/Characters/Mannequins/Textures/Quinn/T_Quinn_02ID_Tan.uasset b/Content/Characters/Mannequins/Textures/Quinn/T_Quinn_02ID_Tan.uasset new file mode 100644 index 0000000..3a61bee Binary files /dev/null and b/Content/Characters/Mannequins/Textures/Quinn/T_Quinn_02ID_Tan.uasset differ diff --git a/Content/Characters/Mannequins/Textures/Quinn/T_Quinn_02_ASAOMASK_MSK.uasset b/Content/Characters/Mannequins/Textures/Quinn/T_Quinn_02_ASAOMASK_MSK.uasset new file mode 100644 index 0000000..b57c447 Binary files /dev/null and b/Content/Characters/Mannequins/Textures/Quinn/T_Quinn_02_ASAOMASK_MSK.uasset differ diff --git a/Content/Characters/Mannequins/Textures/Quinn/T_Quinn_02_CCRCCPlastic_MSK.uasset b/Content/Characters/Mannequins/Textures/Quinn/T_Quinn_02_CCRCCPlastic_MSK.uasset new file mode 100644 index 0000000..e050b4a Binary files /dev/null and b/Content/Characters/Mannequins/Textures/Quinn/T_Quinn_02_CCRCCPlastic_MSK.uasset differ diff --git a/Content/Characters/Mannequins/Textures/Shared/T_UE_Logo_M.uasset b/Content/Characters/Mannequins/Textures/Shared/T_UE_Logo_M.uasset new file mode 100644 index 0000000..ef37240 Binary files /dev/null and b/Content/Characters/Mannequins/Textures/Shared/T_UE_Logo_M.uasset differ diff --git a/Content/LevelPrototyping/Materials/MF_ProcGrid.uasset b/Content/LevelPrototyping/Materials/MF_ProcGrid.uasset new file mode 100644 index 0000000..84dde04 Binary files /dev/null and b/Content/LevelPrototyping/Materials/MF_ProcGrid.uasset differ diff --git a/Content/LevelPrototyping/Materials/MI_PrototypeGrid_Gray.uasset b/Content/LevelPrototyping/Materials/MI_PrototypeGrid_Gray.uasset new file mode 100644 index 0000000..4605682 Binary files /dev/null and b/Content/LevelPrototyping/Materials/MI_PrototypeGrid_Gray.uasset differ diff --git a/Content/LevelPrototyping/Materials/MI_PrototypeGrid_Gray_02.uasset b/Content/LevelPrototyping/Materials/MI_PrototypeGrid_Gray_02.uasset new file mode 100644 index 0000000..2accd35 Binary files /dev/null and b/Content/LevelPrototyping/Materials/MI_PrototypeGrid_Gray_02.uasset differ diff --git a/Content/LevelPrototyping/Materials/MI_PrototypeGrid_TopDark.uasset b/Content/LevelPrototyping/Materials/MI_PrototypeGrid_TopDark.uasset new file mode 100644 index 0000000..bc39915 Binary files /dev/null and b/Content/LevelPrototyping/Materials/MI_PrototypeGrid_TopDark.uasset differ diff --git a/Content/LevelPrototyping/Materials/MI_Solid_Blue.uasset b/Content/LevelPrototyping/Materials/MI_Solid_Blue.uasset new file mode 100644 index 0000000..7b7ad88 Binary files /dev/null and b/Content/LevelPrototyping/Materials/MI_Solid_Blue.uasset differ diff --git a/Content/LevelPrototyping/Materials/M_PrototypeGrid.uasset b/Content/LevelPrototyping/Materials/M_PrototypeGrid.uasset new file mode 100644 index 0000000..f61487d Binary files /dev/null and b/Content/LevelPrototyping/Materials/M_PrototypeGrid.uasset differ diff --git a/Content/LevelPrototyping/Materials/M_Solid.uasset b/Content/LevelPrototyping/Materials/M_Solid.uasset new file mode 100644 index 0000000..37a29b9 Binary files /dev/null and b/Content/LevelPrototyping/Materials/M_Solid.uasset differ diff --git a/Content/LevelPrototyping/Meshes/SM_ChamferCube.uasset b/Content/LevelPrototyping/Meshes/SM_ChamferCube.uasset new file mode 100644 index 0000000..fe6da62 Binary files /dev/null and b/Content/LevelPrototyping/Meshes/SM_ChamferCube.uasset differ diff --git a/Content/LevelPrototyping/Meshes/SM_Cube.uasset b/Content/LevelPrototyping/Meshes/SM_Cube.uasset new file mode 100644 index 0000000..0e7d2a3 Binary files /dev/null and b/Content/LevelPrototyping/Meshes/SM_Cube.uasset differ diff --git a/Content/LevelPrototyping/Meshes/SM_Cylinder.uasset b/Content/LevelPrototyping/Meshes/SM_Cylinder.uasset new file mode 100644 index 0000000..2dc5fab Binary files /dev/null and b/Content/LevelPrototyping/Meshes/SM_Cylinder.uasset differ diff --git a/Content/LevelPrototyping/Meshes/SM_QuarterCylinder.uasset b/Content/LevelPrototyping/Meshes/SM_QuarterCylinder.uasset new file mode 100644 index 0000000..cbd952c Binary files /dev/null and b/Content/LevelPrototyping/Meshes/SM_QuarterCylinder.uasset differ diff --git a/Content/LevelPrototyping/Meshes/SM_Ramp.uasset b/Content/LevelPrototyping/Meshes/SM_Ramp.uasset new file mode 100644 index 0000000..f1f05c6 Binary files /dev/null and b/Content/LevelPrototyping/Meshes/SM_Ramp.uasset differ diff --git a/Content/LevelPrototyping/Textures/T_GridChecker_A.uasset b/Content/LevelPrototyping/Textures/T_GridChecker_A.uasset new file mode 100644 index 0000000..e901d24 Binary files /dev/null and b/Content/LevelPrototyping/Textures/T_GridChecker_A.uasset differ diff --git a/Content/Maps/DefaultMap.umap b/Content/Maps/DefaultMap.umap new file mode 100644 index 0000000..935a7db Binary files /dev/null and b/Content/Maps/DefaultMap.umap differ diff --git a/Content/Maps/GameStartupMap.umap b/Content/Maps/GameStartupMap.umap new file mode 100644 index 0000000..d8b4fb6 Binary files /dev/null and b/Content/Maps/GameStartupMap.umap differ diff --git a/Content/Maps/Lobby.umap b/Content/Maps/Lobby.umap new file mode 100644 index 0000000..dc90c28 Binary files /dev/null and b/Content/Maps/Lobby.umap differ diff --git a/Content/ThirdPerson/Blueprints/BP_ThirdPersonCharacter.uasset b/Content/ThirdPerson/Blueprints/BP_ThirdPersonCharacter.uasset new file mode 100644 index 0000000..db55742 Binary files /dev/null and b/Content/ThirdPerson/Blueprints/BP_ThirdPersonCharacter.uasset differ diff --git a/Content/ThirdPerson/Blueprints/BP_ThirdPersonGameMode.uasset b/Content/ThirdPerson/Blueprints/BP_ThirdPersonGameMode.uasset new file mode 100644 index 0000000..9a447e9 Binary files /dev/null and b/Content/ThirdPerson/Blueprints/BP_ThirdPersonGameMode.uasset differ diff --git a/Content/ThirdPerson/Input/Actions/IA_Jump.uasset b/Content/ThirdPerson/Input/Actions/IA_Jump.uasset new file mode 100644 index 0000000..4e39676 Binary files /dev/null and b/Content/ThirdPerson/Input/Actions/IA_Jump.uasset differ diff --git a/Content/ThirdPerson/Input/Actions/IA_Look.uasset b/Content/ThirdPerson/Input/Actions/IA_Look.uasset new file mode 100644 index 0000000..5710da0 Binary files /dev/null and b/Content/ThirdPerson/Input/Actions/IA_Look.uasset differ diff --git a/Content/ThirdPerson/Input/Actions/IA_Move.uasset b/Content/ThirdPerson/Input/Actions/IA_Move.uasset new file mode 100644 index 0000000..cc8f7e4 Binary files /dev/null and b/Content/ThirdPerson/Input/Actions/IA_Move.uasset differ diff --git a/Content/ThirdPerson/Input/IMC_Default.uasset b/Content/ThirdPerson/Input/IMC_Default.uasset new file mode 100644 index 0000000..1b46a1b Binary files /dev/null and b/Content/ThirdPerson/Input/IMC_Default.uasset differ diff --git a/Content/ThirdPerson/Maps/ThirdPersonMap.umap b/Content/ThirdPerson/Maps/ThirdPersonMap.umap new file mode 100644 index 0000000..e5afa11 Binary files /dev/null and b/Content/ThirdPerson/Maps/ThirdPersonMap.umap differ diff --git a/Content/__ExternalActors__/ThirdPerson/Maps/ThirdPersonMap/0/43/HYQWORMY4JDQ5X3OKZXFLC.uasset b/Content/__ExternalActors__/ThirdPerson/Maps/ThirdPersonMap/0/43/HYQWORMY4JDQ5X3OKZXFLC.uasset new file mode 100644 index 0000000..bf5df07 Binary files /dev/null and b/Content/__ExternalActors__/ThirdPerson/Maps/ThirdPersonMap/0/43/HYQWORMY4JDQ5X3OKZXFLC.uasset differ diff --git a/Content/__ExternalActors__/ThirdPerson/Maps/ThirdPersonMap/0/FG/C9C8NKPQ680JETAE5ROTT1.uasset b/Content/__ExternalActors__/ThirdPerson/Maps/ThirdPersonMap/0/FG/C9C8NKPQ680JETAE5ROTT1.uasset new file mode 100644 index 0000000..8bde92b Binary files /dev/null and b/Content/__ExternalActors__/ThirdPerson/Maps/ThirdPersonMap/0/FG/C9C8NKPQ680JETAE5ROTT1.uasset differ diff --git a/Content/__ExternalActors__/ThirdPerson/Maps/ThirdPersonMap/1/AZ/A7GPT109Y6ZTTJD4A7TXER.uasset b/Content/__ExternalActors__/ThirdPerson/Maps/ThirdPersonMap/1/AZ/A7GPT109Y6ZTTJD4A7TXER.uasset new file mode 100644 index 0000000..0e00e94 Binary files /dev/null and b/Content/__ExternalActors__/ThirdPerson/Maps/ThirdPersonMap/1/AZ/A7GPT109Y6ZTTJD4A7TXER.uasset differ diff --git a/Content/__ExternalActors__/ThirdPerson/Maps/ThirdPersonMap/1/HL/XWFFRCIJ8QK4NRO30ALA6J.uasset b/Content/__ExternalActors__/ThirdPerson/Maps/ThirdPersonMap/1/HL/XWFFRCIJ8QK4NRO30ALA6J.uasset new file mode 100644 index 0000000..a86abbe Binary files /dev/null and b/Content/__ExternalActors__/ThirdPerson/Maps/ThirdPersonMap/1/HL/XWFFRCIJ8QK4NRO30ALA6J.uasset differ diff --git a/Content/__ExternalActors__/ThirdPerson/Maps/ThirdPersonMap/1/WU/NB37RT5Q32Z8MJWD8BD2SO.uasset b/Content/__ExternalActors__/ThirdPerson/Maps/ThirdPersonMap/1/WU/NB37RT5Q32Z8MJWD8BD2SO.uasset new file mode 100644 index 0000000..fc6d409 Binary files /dev/null and b/Content/__ExternalActors__/ThirdPerson/Maps/ThirdPersonMap/1/WU/NB37RT5Q32Z8MJWD8BD2SO.uasset differ diff --git a/Content/__ExternalActors__/ThirdPerson/Maps/ThirdPersonMap/3/EY/87SHEJN5UBEAN2K5OV1G6R.uasset b/Content/__ExternalActors__/ThirdPerson/Maps/ThirdPersonMap/3/EY/87SHEJN5UBEAN2K5OV1G6R.uasset new file mode 100644 index 0000000..4af6c18 Binary files /dev/null and b/Content/__ExternalActors__/ThirdPerson/Maps/ThirdPersonMap/3/EY/87SHEJN5UBEAN2K5OV1G6R.uasset differ diff --git a/Content/__ExternalActors__/ThirdPerson/Maps/ThirdPersonMap/3/M3/7JQC72ZY37QM4IT43WD5CW.uasset b/Content/__ExternalActors__/ThirdPerson/Maps/ThirdPersonMap/3/M3/7JQC72ZY37QM4IT43WD5CW.uasset new file mode 100644 index 0000000..4d78387 Binary files /dev/null and b/Content/__ExternalActors__/ThirdPerson/Maps/ThirdPersonMap/3/M3/7JQC72ZY37QM4IT43WD5CW.uasset differ diff --git a/Content/__ExternalActors__/ThirdPerson/Maps/ThirdPersonMap/3/P3/O43ETCZTFMLWWH1CJ941H2.uasset b/Content/__ExternalActors__/ThirdPerson/Maps/ThirdPersonMap/3/P3/O43ETCZTFMLWWH1CJ941H2.uasset new file mode 100644 index 0000000..28998ae Binary files /dev/null and b/Content/__ExternalActors__/ThirdPerson/Maps/ThirdPersonMap/3/P3/O43ETCZTFMLWWH1CJ941H2.uasset differ diff --git a/Content/__ExternalActors__/ThirdPerson/Maps/ThirdPersonMap/4/60/5PI42YRDC8HSSG6BVV2GRR.uasset b/Content/__ExternalActors__/ThirdPerson/Maps/ThirdPersonMap/4/60/5PI42YRDC8HSSG6BVV2GRR.uasset new file mode 100644 index 0000000..0c7c307 Binary files /dev/null and b/Content/__ExternalActors__/ThirdPerson/Maps/ThirdPersonMap/4/60/5PI42YRDC8HSSG6BVV2GRR.uasset differ diff --git a/Content/__ExternalActors__/ThirdPerson/Maps/ThirdPersonMap/4/LN/30UBDLYFFA5ZR7U4W4L4GG.uasset b/Content/__ExternalActors__/ThirdPerson/Maps/ThirdPersonMap/4/LN/30UBDLYFFA5ZR7U4W4L4GG.uasset new file mode 100644 index 0000000..65e5951 Binary files /dev/null and b/Content/__ExternalActors__/ThirdPerson/Maps/ThirdPersonMap/4/LN/30UBDLYFFA5ZR7U4W4L4GG.uasset differ diff --git a/Content/__ExternalActors__/ThirdPerson/Maps/ThirdPersonMap/4/PN/2QISIGK5DJNQ05US8O8FXW.uasset b/Content/__ExternalActors__/ThirdPerson/Maps/ThirdPersonMap/4/PN/2QISIGK5DJNQ05US8O8FXW.uasset new file mode 100644 index 0000000..58d3ac0 Binary files /dev/null and b/Content/__ExternalActors__/ThirdPerson/Maps/ThirdPersonMap/4/PN/2QISIGK5DJNQ05US8O8FXW.uasset differ diff --git a/Content/__ExternalActors__/ThirdPerson/Maps/ThirdPersonMap/5/11/IM858T68EBXCBX1T2FNR96.uasset b/Content/__ExternalActors__/ThirdPerson/Maps/ThirdPersonMap/5/11/IM858T68EBXCBX1T2FNR96.uasset new file mode 100644 index 0000000..dc13b91 Binary files /dev/null and b/Content/__ExternalActors__/ThirdPerson/Maps/ThirdPersonMap/5/11/IM858T68EBXCBX1T2FNR96.uasset differ diff --git a/Content/__ExternalActors__/ThirdPerson/Maps/ThirdPersonMap/5/7E/BEYC27T14FHBU6LF2F60RR.uasset b/Content/__ExternalActors__/ThirdPerson/Maps/ThirdPersonMap/5/7E/BEYC27T14FHBU6LF2F60RR.uasset new file mode 100644 index 0000000..0d46782 Binary files /dev/null and b/Content/__ExternalActors__/ThirdPerson/Maps/ThirdPersonMap/5/7E/BEYC27T14FHBU6LF2F60RR.uasset differ diff --git a/Content/__ExternalActors__/ThirdPerson/Maps/ThirdPersonMap/5/9Q/U98KGKQ41NJYFOGFQM8ZDY.uasset b/Content/__ExternalActors__/ThirdPerson/Maps/ThirdPersonMap/5/9Q/U98KGKQ41NJYFOGFQM8ZDY.uasset new file mode 100644 index 0000000..4cddf69 Binary files /dev/null and b/Content/__ExternalActors__/ThirdPerson/Maps/ThirdPersonMap/5/9Q/U98KGKQ41NJYFOGFQM8ZDY.uasset differ diff --git a/Content/__ExternalActors__/ThirdPerson/Maps/ThirdPersonMap/5/QO/CO9MG7REJF8N8AQFYRCI06.uasset b/Content/__ExternalActors__/ThirdPerson/Maps/ThirdPersonMap/5/QO/CO9MG7REJF8N8AQFYRCI06.uasset new file mode 100644 index 0000000..7e3ced0 Binary files /dev/null and b/Content/__ExternalActors__/ThirdPerson/Maps/ThirdPersonMap/5/QO/CO9MG7REJF8N8AQFYRCI06.uasset differ diff --git a/Content/__ExternalActors__/ThirdPerson/Maps/ThirdPersonMap/5/R1/TS5OQ5CRUWFZYL1ZQ7I416.uasset b/Content/__ExternalActors__/ThirdPerson/Maps/ThirdPersonMap/5/R1/TS5OQ5CRUWFZYL1ZQ7I416.uasset new file mode 100644 index 0000000..44fb3c1 Binary files /dev/null and b/Content/__ExternalActors__/ThirdPerson/Maps/ThirdPersonMap/5/R1/TS5OQ5CRUWFZYL1ZQ7I416.uasset differ diff --git a/Content/__ExternalActors__/ThirdPerson/Maps/ThirdPersonMap/6/CZ/K2YM0JIRZ78IHGM8W2QBAF.uasset b/Content/__ExternalActors__/ThirdPerson/Maps/ThirdPersonMap/6/CZ/K2YM0JIRZ78IHGM8W2QBAF.uasset new file mode 100644 index 0000000..0e24906 Binary files /dev/null and b/Content/__ExternalActors__/ThirdPerson/Maps/ThirdPersonMap/6/CZ/K2YM0JIRZ78IHGM8W2QBAF.uasset differ diff --git a/Content/__ExternalActors__/ThirdPerson/Maps/ThirdPersonMap/6/HF/9H7TKAXH9DD8KI3TIXGI2I.uasset b/Content/__ExternalActors__/ThirdPerson/Maps/ThirdPersonMap/6/HF/9H7TKAXH9DD8KI3TIXGI2I.uasset new file mode 100644 index 0000000..cb92690 Binary files /dev/null and b/Content/__ExternalActors__/ThirdPerson/Maps/ThirdPersonMap/6/HF/9H7TKAXH9DD8KI3TIXGI2I.uasset differ diff --git a/Content/__ExternalActors__/ThirdPerson/Maps/ThirdPersonMap/6/IR/OTJMGDDXDV5TI7982YKZ5P.uasset b/Content/__ExternalActors__/ThirdPerson/Maps/ThirdPersonMap/6/IR/OTJMGDDXDV5TI7982YKZ5P.uasset new file mode 100644 index 0000000..af90ac1 Binary files /dev/null and b/Content/__ExternalActors__/ThirdPerson/Maps/ThirdPersonMap/6/IR/OTJMGDDXDV5TI7982YKZ5P.uasset differ diff --git a/Content/__ExternalActors__/ThirdPerson/Maps/ThirdPersonMap/6/J7/N10XDC9G27EMLS5AGZ6AVV.uasset b/Content/__ExternalActors__/ThirdPerson/Maps/ThirdPersonMap/6/J7/N10XDC9G27EMLS5AGZ6AVV.uasset new file mode 100644 index 0000000..379ba9c Binary files /dev/null and b/Content/__ExternalActors__/ThirdPerson/Maps/ThirdPersonMap/6/J7/N10XDC9G27EMLS5AGZ6AVV.uasset differ diff --git a/Content/__ExternalActors__/ThirdPerson/Maps/ThirdPersonMap/6/NC/UUYHDUFQAXTRRN4RVOPIUF.uasset b/Content/__ExternalActors__/ThirdPerson/Maps/ThirdPersonMap/6/NC/UUYHDUFQAXTRRN4RVOPIUF.uasset new file mode 100644 index 0000000..de261e8 Binary files /dev/null and b/Content/__ExternalActors__/ThirdPerson/Maps/ThirdPersonMap/6/NC/UUYHDUFQAXTRRN4RVOPIUF.uasset differ diff --git a/Content/__ExternalActors__/ThirdPerson/Maps/ThirdPersonMap/6/XB/9VVR39MG0K7W5GQIEFE7SO.uasset b/Content/__ExternalActors__/ThirdPerson/Maps/ThirdPersonMap/6/XB/9VVR39MG0K7W5GQIEFE7SO.uasset new file mode 100644 index 0000000..ddc1630 Binary files /dev/null and b/Content/__ExternalActors__/ThirdPerson/Maps/ThirdPersonMap/6/XB/9VVR39MG0K7W5GQIEFE7SO.uasset differ diff --git a/Content/__ExternalActors__/ThirdPerson/Maps/ThirdPersonMap/6/YO/NG2R9BPZVA7ZDN0Z4VSTG6.uasset b/Content/__ExternalActors__/ThirdPerson/Maps/ThirdPersonMap/6/YO/NG2R9BPZVA7ZDN0Z4VSTG6.uasset new file mode 100644 index 0000000..e55caae Binary files /dev/null and b/Content/__ExternalActors__/ThirdPerson/Maps/ThirdPersonMap/6/YO/NG2R9BPZVA7ZDN0Z4VSTG6.uasset differ diff --git a/Content/__ExternalActors__/ThirdPerson/Maps/ThirdPersonMap/8/3J/6B9RJI3FDPCETRKXUXCQ4C.uasset b/Content/__ExternalActors__/ThirdPerson/Maps/ThirdPersonMap/8/3J/6B9RJI3FDPCETRKXUXCQ4C.uasset new file mode 100644 index 0000000..00563ca Binary files /dev/null and b/Content/__ExternalActors__/ThirdPerson/Maps/ThirdPersonMap/8/3J/6B9RJI3FDPCETRKXUXCQ4C.uasset differ diff --git a/Content/__ExternalActors__/ThirdPerson/Maps/ThirdPersonMap/8/S1/DXUWD12MD3HRWVVXX076BY.uasset b/Content/__ExternalActors__/ThirdPerson/Maps/ThirdPersonMap/8/S1/DXUWD12MD3HRWVVXX076BY.uasset new file mode 100644 index 0000000..b8d0f46 Binary files /dev/null and b/Content/__ExternalActors__/ThirdPerson/Maps/ThirdPersonMap/8/S1/DXUWD12MD3HRWVVXX076BY.uasset differ diff --git a/Content/__ExternalActors__/ThirdPerson/Maps/ThirdPersonMap/9/U7/H8YL2PPHZPBTI74SUD0RNL.uasset b/Content/__ExternalActors__/ThirdPerson/Maps/ThirdPersonMap/9/U7/H8YL2PPHZPBTI74SUD0RNL.uasset new file mode 100644 index 0000000..83a913f Binary files /dev/null and b/Content/__ExternalActors__/ThirdPerson/Maps/ThirdPersonMap/9/U7/H8YL2PPHZPBTI74SUD0RNL.uasset differ diff --git a/Content/__ExternalActors__/ThirdPerson/Maps/ThirdPersonMap/A/16/Q7Y1URWWFS0TXGWUTO3S61.uasset b/Content/__ExternalActors__/ThirdPerson/Maps/ThirdPersonMap/A/16/Q7Y1URWWFS0TXGWUTO3S61.uasset new file mode 100644 index 0000000..b2dde2e Binary files /dev/null and b/Content/__ExternalActors__/ThirdPerson/Maps/ThirdPersonMap/A/16/Q7Y1URWWFS0TXGWUTO3S61.uasset differ diff --git a/Content/__ExternalActors__/ThirdPerson/Maps/ThirdPersonMap/A/17/6LXV4Y6DE3LUT705XNU4DZ.uasset b/Content/__ExternalActors__/ThirdPerson/Maps/ThirdPersonMap/A/17/6LXV4Y6DE3LUT705XNU4DZ.uasset new file mode 100644 index 0000000..af6c9b1 Binary files /dev/null and b/Content/__ExternalActors__/ThirdPerson/Maps/ThirdPersonMap/A/17/6LXV4Y6DE3LUT705XNU4DZ.uasset differ diff --git a/Content/__ExternalActors__/ThirdPerson/Maps/ThirdPersonMap/A/MS/MRHJREJ6H7USQYWF1KO8F6.uasset b/Content/__ExternalActors__/ThirdPerson/Maps/ThirdPersonMap/A/MS/MRHJREJ6H7USQYWF1KO8F6.uasset new file mode 100644 index 0000000..8262976 Binary files /dev/null and b/Content/__ExternalActors__/ThirdPerson/Maps/ThirdPersonMap/A/MS/MRHJREJ6H7USQYWF1KO8F6.uasset differ diff --git a/Content/__ExternalActors__/ThirdPerson/Maps/ThirdPersonMap/B/4D/BBOCKSZY1GVHTFRX0PR0O8.uasset b/Content/__ExternalActors__/ThirdPerson/Maps/ThirdPersonMap/B/4D/BBOCKSZY1GVHTFRX0PR0O8.uasset new file mode 100644 index 0000000..6687f8a Binary files /dev/null and b/Content/__ExternalActors__/ThirdPerson/Maps/ThirdPersonMap/B/4D/BBOCKSZY1GVHTFRX0PR0O8.uasset differ diff --git a/Content/__ExternalActors__/ThirdPerson/Maps/ThirdPersonMap/B/8K/1IKKDYS7RULH8FRYRPPF04.uasset b/Content/__ExternalActors__/ThirdPerson/Maps/ThirdPersonMap/B/8K/1IKKDYS7RULH8FRYRPPF04.uasset new file mode 100644 index 0000000..7be3aec Binary files /dev/null and b/Content/__ExternalActors__/ThirdPerson/Maps/ThirdPersonMap/B/8K/1IKKDYS7RULH8FRYRPPF04.uasset differ diff --git a/Content/__ExternalActors__/ThirdPerson/Maps/ThirdPersonMap/B/EA/9BWDWCNL7OZT2HTML9LK1Y.uasset b/Content/__ExternalActors__/ThirdPerson/Maps/ThirdPersonMap/B/EA/9BWDWCNL7OZT2HTML9LK1Y.uasset new file mode 100644 index 0000000..23380ee Binary files /dev/null and b/Content/__ExternalActors__/ThirdPerson/Maps/ThirdPersonMap/B/EA/9BWDWCNL7OZT2HTML9LK1Y.uasset differ diff --git a/Content/__ExternalActors__/ThirdPerson/Maps/ThirdPersonMap/B/FB/8RB55FM1HBEUVO4IOQC4YN.uasset b/Content/__ExternalActors__/ThirdPerson/Maps/ThirdPersonMap/B/FB/8RB55FM1HBEUVO4IOQC4YN.uasset new file mode 100644 index 0000000..82cd416 Binary files /dev/null and b/Content/__ExternalActors__/ThirdPerson/Maps/ThirdPersonMap/B/FB/8RB55FM1HBEUVO4IOQC4YN.uasset differ diff --git a/Content/__ExternalActors__/ThirdPerson/Maps/ThirdPersonMap/C/QF/BY1DA5CRGQSAMOTK8RA8KR.uasset b/Content/__ExternalActors__/ThirdPerson/Maps/ThirdPersonMap/C/QF/BY1DA5CRGQSAMOTK8RA8KR.uasset new file mode 100644 index 0000000..6935273 Binary files /dev/null and b/Content/__ExternalActors__/ThirdPerson/Maps/ThirdPersonMap/C/QF/BY1DA5CRGQSAMOTK8RA8KR.uasset differ diff --git a/Content/__ExternalActors__/ThirdPerson/Maps/ThirdPersonMap/C/YT/CQR16QFDKKEYP53M51TV4F.uasset b/Content/__ExternalActors__/ThirdPerson/Maps/ThirdPersonMap/C/YT/CQR16QFDKKEYP53M51TV4F.uasset new file mode 100644 index 0000000..ae48ddc Binary files /dev/null and b/Content/__ExternalActors__/ThirdPerson/Maps/ThirdPersonMap/C/YT/CQR16QFDKKEYP53M51TV4F.uasset differ diff --git a/Content/__ExternalActors__/ThirdPerson/Maps/ThirdPersonMap/D/0G/JNKFA4X9LRMSF343ESPF6Q.uasset b/Content/__ExternalActors__/ThirdPerson/Maps/ThirdPersonMap/D/0G/JNKFA4X9LRMSF343ESPF6Q.uasset new file mode 100644 index 0000000..ba4d21b Binary files /dev/null and b/Content/__ExternalActors__/ThirdPerson/Maps/ThirdPersonMap/D/0G/JNKFA4X9LRMSF343ESPF6Q.uasset differ diff --git a/Content/__ExternalActors__/ThirdPerson/Maps/ThirdPersonMap/D/3V/NMHOKL5LGQDOAAG00FUMZR.uasset b/Content/__ExternalActors__/ThirdPerson/Maps/ThirdPersonMap/D/3V/NMHOKL5LGQDOAAG00FUMZR.uasset new file mode 100644 index 0000000..daeee0d Binary files /dev/null and b/Content/__ExternalActors__/ThirdPerson/Maps/ThirdPersonMap/D/3V/NMHOKL5LGQDOAAG00FUMZR.uasset differ diff --git a/Content/__ExternalActors__/ThirdPerson/Maps/ThirdPersonMap/D/DE/SWSI13675DVYIZ0N4NF7Y3.uasset b/Content/__ExternalActors__/ThirdPerson/Maps/ThirdPersonMap/D/DE/SWSI13675DVYIZ0N4NF7Y3.uasset new file mode 100644 index 0000000..6f84a8a Binary files /dev/null and b/Content/__ExternalActors__/ThirdPerson/Maps/ThirdPersonMap/D/DE/SWSI13675DVYIZ0N4NF7Y3.uasset differ diff --git a/Content/__ExternalActors__/ThirdPerson/Maps/ThirdPersonMap/D/SY/Z4CTQ4LG3YV10EKPD0UE8Q.uasset b/Content/__ExternalActors__/ThirdPerson/Maps/ThirdPersonMap/D/SY/Z4CTQ4LG3YV10EKPD0UE8Q.uasset new file mode 100644 index 0000000..c44ff62 Binary files /dev/null and b/Content/__ExternalActors__/ThirdPerson/Maps/ThirdPersonMap/D/SY/Z4CTQ4LG3YV10EKPD0UE8Q.uasset differ diff --git a/Content/__ExternalActors__/ThirdPerson/Maps/ThirdPersonMap/E/8O/GK06JAEJ82TQ0GA2QB0DJG.uasset b/Content/__ExternalActors__/ThirdPerson/Maps/ThirdPersonMap/E/8O/GK06JAEJ82TQ0GA2QB0DJG.uasset new file mode 100644 index 0000000..487a44a Binary files /dev/null and b/Content/__ExternalActors__/ThirdPerson/Maps/ThirdPersonMap/E/8O/GK06JAEJ82TQ0GA2QB0DJG.uasset differ diff --git a/Content/__ExternalActors__/ThirdPerson/Maps/ThirdPersonMap/E/FR/LBG6LPN5JCL3FMVSI2CK6R.uasset b/Content/__ExternalActors__/ThirdPerson/Maps/ThirdPersonMap/E/FR/LBG6LPN5JCL3FMVSI2CK6R.uasset new file mode 100644 index 0000000..284bebf Binary files /dev/null and b/Content/__ExternalActors__/ThirdPerson/Maps/ThirdPersonMap/E/FR/LBG6LPN5JCL3FMVSI2CK6R.uasset differ diff --git a/Content/__ExternalObjects__/ThirdPerson/Maps/ThirdPersonMap/4/VW/TY7TSUER9KKGHX2BMKSL0L.uasset b/Content/__ExternalObjects__/ThirdPerson/Maps/ThirdPersonMap/4/VW/TY7TSUER9KKGHX2BMKSL0L.uasset new file mode 100644 index 0000000..39374a9 Binary files /dev/null and b/Content/__ExternalObjects__/ThirdPerson/Maps/ThirdPersonMap/4/VW/TY7TSUER9KKGHX2BMKSL0L.uasset differ diff --git a/Content/__ExternalObjects__/ThirdPerson/Maps/ThirdPersonMap/6/D8/3MZ6M1DB94VN44C87D65WR.uasset b/Content/__ExternalObjects__/ThirdPerson/Maps/ThirdPersonMap/6/D8/3MZ6M1DB94VN44C87D65WR.uasset new file mode 100644 index 0000000..4006d49 Binary files /dev/null and b/Content/__ExternalObjects__/ThirdPerson/Maps/ThirdPersonMap/6/D8/3MZ6M1DB94VN44C87D65WR.uasset differ diff --git a/Content/__ExternalObjects__/ThirdPerson/Maps/ThirdPersonMap/6/TK/PIQ0B2FNWR15P52TECP27A.uasset b/Content/__ExternalObjects__/ThirdPerson/Maps/ThirdPersonMap/6/TK/PIQ0B2FNWR15P52TECP27A.uasset new file mode 100644 index 0000000..2a10633 Binary files /dev/null and b/Content/__ExternalObjects__/ThirdPerson/Maps/ThirdPersonMap/6/TK/PIQ0B2FNWR15P52TECP27A.uasset differ diff --git a/Content/__ExternalObjects__/ThirdPerson/Maps/ThirdPersonMap/9/KN/KHZG97SS6AL73U7AXDWH6J.uasset b/Content/__ExternalObjects__/ThirdPerson/Maps/ThirdPersonMap/9/KN/KHZG97SS6AL73U7AXDWH6J.uasset new file mode 100644 index 0000000..8326b38 Binary files /dev/null and b/Content/__ExternalObjects__/ThirdPerson/Maps/ThirdPersonMap/9/KN/KHZG97SS6AL73U7AXDWH6J.uasset differ diff --git a/Content/__ExternalObjects__/ThirdPerson/Maps/ThirdPersonMap/C/7N/FDH7Y28CQFXDK8P6MM1HXM.uasset b/Content/__ExternalObjects__/ThirdPerson/Maps/ThirdPersonMap/C/7N/FDH7Y28CQFXDK8P6MM1HXM.uasset new file mode 100644 index 0000000..61f7b3e Binary files /dev/null and b/Content/__ExternalObjects__/ThirdPerson/Maps/ThirdPersonMap/C/7N/FDH7Y28CQFXDK8P6MM1HXM.uasset differ diff --git a/Content/__ExternalObjects__/ThirdPerson/Maps/ThirdPersonMap/E/GP/22PD314FCWY4ZK61DE3XZC.uasset b/Content/__ExternalObjects__/ThirdPerson/Maps/ThirdPersonMap/E/GP/22PD314FCWY4ZK61DE3XZC.uasset new file mode 100644 index 0000000..bfae32e Binary files /dev/null and b/Content/__ExternalObjects__/ThirdPerson/Maps/ThirdPersonMap/E/GP/22PD314FCWY4ZK61DE3XZC.uasset differ diff --git a/D2.uproject b/D2.uproject index 5ce65de..a089f68 100644 --- a/D2.uproject +++ b/D2.uproject @@ -17,6 +17,10 @@ "TargetAllowList": [ "Editor" ] + }, + { + "Name": "OnlineSubsystemSteam", + "Enabled": true } ] } \ No newline at end of file diff --git a/Plugins/MultiplayerSessions/Content/WBP_Menu.uasset b/Plugins/MultiplayerSessions/Content/WBP_Menu.uasset new file mode 100644 index 0000000..ab11552 Binary files /dev/null and b/Plugins/MultiplayerSessions/Content/WBP_Menu.uasset differ diff --git a/Plugins/MultiplayerSessions/MultiplayerSessions.uplugin b/Plugins/MultiplayerSessions/MultiplayerSessions.uplugin new file mode 100644 index 0000000..8097e7e --- /dev/null +++ b/Plugins/MultiplayerSessions/MultiplayerSessions.uplugin @@ -0,0 +1,34 @@ +{ + "FileVersion": 3, + "Version": 1, + "VersionName": "1.0", + "FriendlyName": "MultiplayerSessions", + "Description": "A Plugin for handling online multiplayer sessions", + "Category": "Other", + "CreatedBy": "Pcyoung", + "CreatedByURL": "", + "DocsURL": "", + "MarketplaceURL": "", + "SupportURL": "", + "CanContainContent": true, + "IsBetaVersion": false, + "IsExperimentalVersion": false, + "Installed": false, + "Modules": [ + { + "Name": "MultiplayerSessions", + "Type": "Runtime", + "LoadingPhase": "Default" + } + ], + "Plugins": [ + { + "Name": "OnlineSubsystem", + "Enabled": true + }, + { + "Name": "OnlineSubsystemSteam", + "Enabled": true + } + ] +} \ No newline at end of file diff --git a/Plugins/MultiplayerSessions/Resources/Icon128.png b/Plugins/MultiplayerSessions/Resources/Icon128.png new file mode 100644 index 0000000..1231d4a Binary files /dev/null and b/Plugins/MultiplayerSessions/Resources/Icon128.png differ diff --git a/Plugins/MultiplayerSessions/Source/MultiplayerSessions/MultiplayerSessions.Build.cs b/Plugins/MultiplayerSessions/Source/MultiplayerSessions/MultiplayerSessions.Build.cs new file mode 100644 index 0000000..d96f7c8 --- /dev/null +++ b/Plugins/MultiplayerSessions/Source/MultiplayerSessions/MultiplayerSessions.Build.cs @@ -0,0 +1,58 @@ +// Copyright Epic Games, Inc. All Rights Reserved. + +using UnrealBuildTool; + +public class MultiplayerSessions : ModuleRules +{ + public MultiplayerSessions(ReadOnlyTargetRules Target) : base(Target) + { + PCHUsage = ModuleRules.PCHUsageMode.UseExplicitOrSharedPCHs; + + PublicIncludePaths.AddRange( + new string[] { + // ... add public include paths required here ... + } + ); + + + PrivateIncludePaths.AddRange( + new string[] { + // ... add other private include paths required here ... + } + ); + + + PublicDependencyModuleNames.AddRange( + new string[] + { + "Core", + "OnlineSubsystem", + "OnlineSubsystemSteam", + "UMG", + "Slate", + "SlateCore" + // ... add other public dependencies that you statically link with here ... + } + ); + + + PrivateDependencyModuleNames.AddRange( + new string[] + { + "CoreUObject", + "Engine", + "Slate", + "SlateCore", + // ... add private dependencies that you statically link with here ... + } + ); + + + DynamicallyLoadedModuleNames.AddRange( + new string[] + { + // ... add any modules that your module loads dynamically here ... + } + ); + } +} diff --git a/Plugins/MultiplayerSessions/Source/MultiplayerSessions/Private/Menu.cpp b/Plugins/MultiplayerSessions/Source/MultiplayerSessions/Private/Menu.cpp new file mode 100644 index 0000000..74ded3b --- /dev/null +++ b/Plugins/MultiplayerSessions/Source/MultiplayerSessions/Private/Menu.cpp @@ -0,0 +1,169 @@ +// Fill out your copyright notice in the Description page of Project Settings. + +#include "Menu.h" +#include "Components/Button.h" +#include "MultiplayerSessionsSubsystem.h" +#include "OnlineSessionSettings.h" +#include "OnlineSubsystem.h" + +void UMenu::MenuSetup(int32 NumberOfPublicConnections, FString TypeOfMatch, FString LobbyPath) +{ + NumPublicConnections = NumberOfPublicConnections; + MatchType = TypeOfMatch; + PathToLobby = FString::Printf(TEXT("%s?listen"), *LobbyPath); + + AddToViewport(); + SetVisibility(ESlateVisibility::Visible); + SetIsFocusable(true); + + UWorld* World = GetWorld(); + if (World) + { + APlayerController* PlayerController = World->GetFirstPlayerController(); + if (PlayerController) + { + FInputModeUIOnly InputModeData; + InputModeData.SetWidgetToFocus(TakeWidget()); + InputModeData.SetLockMouseToViewportBehavior(EMouseLockMode::DoNotLock); + PlayerController->SetInputMode(InputModeData); + PlayerController->SetShowMouseCursor(true); + } + } + + UGameInstance* GameInstance = GetGameInstance(); + if (GameInstance) + MultiplayerSessionsSubsystem = GameInstance->GetSubsystem(); + + if (MultiplayerSessionsSubsystem) + { + MultiplayerSessionsSubsystem->MultiplayerOnCreateSessionComplete.AddDynamic(this, &ThisClass::OnCreateSession); + MultiplayerSessionsSubsystem->MultiplayerOnFindSessionsComplete.AddUObject(this, &ThisClass::OnFindSessions); + MultiplayerSessionsSubsystem->MultiplayerOnJoinSessionComplete.AddUObject(this, &ThisClass::OnJoinSession); + MultiplayerSessionsSubsystem->MultiplayerOnDestroySessionComplete.AddDynamic(this, &ThisClass::OnDestroySession); + MultiplayerSessionsSubsystem->MultiplayerOnStartSessionComplete.AddDynamic(this, &ThisClass::OnStartSession); + } + +} + +bool UMenu::Initialize() +{ + if (!Super::Initialize()) + return false; + + if (HostButton) + HostButton->OnClicked.AddDynamic(this, &ThisClass::HostButtonClicked); + + if (JoinButton) + JoinButton->OnClicked.AddDynamic(this, &ThisClass::JoinButtonClicked); + + return true; +} + +void UMenu::NativeDestruct() +{ + MenuTearDown(); + Super::NativeDestruct(); +} + +void UMenu::OnCreateSession(bool bWasSuccessful) +{ + if (bWasSuccessful) + { + UWorld* World = GetWorld(); + if (World) + World->ServerTravel(PathToLobby); + } + else + { + if (GEngine) + GEngine->AddOnScreenDebugMessage(-1, 15.f, FColor::Red, FString(TEXT("Failed to create session!"))); + HostButton->SetIsEnabled(true); + } +} + +void UMenu::OnFindSessions(const TArray& SessionResults, bool bWasSuccessful) +{ + if (MultiplayerSessionsSubsystem == nullptr) + return; + + for (auto Result : SessionResults) + { + FString SettingsValue; + Result.Session.SessionSettings.Get(FName("MatchType"), SettingsValue); + if (SettingsValue == MatchType) + { + MultiplayerSessionsSubsystem->JoinSession(Result); + return; + } + } + + if (!bWasSuccessful || SessionResults.Num() <= 0) + { + JoinButton->SetIsEnabled(true); + if (GEngine) + GEngine->AddOnScreenDebugMessage(-1, 15.f, FColor::Red, FString(TEXT("Failed Find Session!"))); + } +} + +void UMenu::OnJoinSession(EOnJoinSessionCompleteResult::Type Result) +{ + IOnlineSubsystem* SubSystem = IOnlineSubsystem::Get(); + if (SubSystem) + { + IOnlineSessionPtr SessionInterface = SubSystem->GetSessionInterface(); + if (SessionInterface.IsValid()) + { + FString Address; + SessionInterface->GetResolvedConnectString(NAME_GameSession, Address); + + APlayerController* PlayerController = GetGameInstance()->GetFirstLocalPlayerController(); + if (PlayerController) + PlayerController->ClientTravel(Address, ETravelType::TRAVEL_Absolute); + } + } + + if (Result != EOnJoinSessionCompleteResult::Success) + { + if (GEngine) + GEngine->AddOnScreenDebugMessage(-1, 15.f, FColor::Red, FString(TEXT("Failed Join Session!"))); + JoinButton->SetIsEnabled(true); + } +} + +void UMenu::OnDestroySession(bool bWasSuccessful) +{ +} + +void UMenu::OnStartSession(bool bWasSuccessful) +{ +} + +void UMenu::HostButtonClicked() +{ + HostButton->SetIsEnabled(false); + if (MultiplayerSessionsSubsystem) + MultiplayerSessionsSubsystem->CreateSession(NumPublicConnections, MatchType); +} + +void UMenu::JoinButtonClicked() +{ + JoinButton->SetIsEnabled(false); + if (MultiplayerSessionsSubsystem) + MultiplayerSessionsSubsystem->FindSessions(10000); +} + +void UMenu::MenuTearDown() +{ + RemoveFromParent(); + UWorld* World = GetWorld(); + if (World) + { + APlayerController* PlayerController = World->GetFirstPlayerController(); + if (PlayerController) + { + FInputModeGameOnly InputModeData; + PlayerController->SetInputMode(InputModeData); + PlayerController->SetShowMouseCursor(false); + } + } +} \ No newline at end of file diff --git a/Plugins/MultiplayerSessions/Source/MultiplayerSessions/Private/MultiplayerSessions.cpp b/Plugins/MultiplayerSessions/Source/MultiplayerSessions/Private/MultiplayerSessions.cpp new file mode 100644 index 0000000..42c4b08 --- /dev/null +++ b/Plugins/MultiplayerSessions/Source/MultiplayerSessions/Private/MultiplayerSessions.cpp @@ -0,0 +1,20 @@ +// Copyright Epic Games, Inc. All Rights Reserved. + +#include "MultiplayerSessions.h" + +#define LOCTEXT_NAMESPACE "FMultiplayerSessionsModule" + +void FMultiplayerSessionsModule::StartupModule() +{ + // This code will execute after your module is loaded into memory; the exact timing is specified in the .uplugin file per-module +} + +void FMultiplayerSessionsModule::ShutdownModule() +{ + // This function may be called during shutdown to clean up your module. For modules that support dynamic reloading, + // we call this function before unloading the module. +} + +#undef LOCTEXT_NAMESPACE + +IMPLEMENT_MODULE(FMultiplayerSessionsModule, MultiplayerSessions) \ No newline at end of file diff --git a/Plugins/MultiplayerSessions/Source/MultiplayerSessions/Private/MultiplayerSessionsSubsystem.cpp b/Plugins/MultiplayerSessions/Source/MultiplayerSessions/Private/MultiplayerSessionsSubsystem.cpp new file mode 100644 index 0000000..3735a5d --- /dev/null +++ b/Plugins/MultiplayerSessions/Source/MultiplayerSessions/Private/MultiplayerSessionsSubsystem.cpp @@ -0,0 +1,192 @@ +// Fill out your copyright notice in the Description page of Project Settings. + + +#include "MultiplayerSessionsSubsystem.h" +#include "OnlineSubsystem.h" +#include "OnlineSessionSettings.h" + +UMultiplayerSessionsSubsystem::UMultiplayerSessionsSubsystem() + : CreateSessionCompleteDelegate(FOnCreateSessionCompleteDelegate::CreateUObject(this, &ThisClass::OnCreateSessionComplete)), + FindSessionsCompleteDelegate(FOnFindSessionsCompleteDelegate::CreateUObject(this, &ThisClass::OnFindSessionsComplete)), + JoinSessionCompleteDelegate(FOnJoinSessionCompleteDelegate::CreateUObject(this, &ThisClass::OnJoinSessionComplete)), + DestroySessionCompleteDelegate(FOnDestroySessionCompleteDelegate::CreateUObject(this, &ThisClass::OnDestroySessionComplete)), + StartSessionCompleteDelegate(FOnStartSessionCompleteDelegate::CreateUObject(this, &ThisClass::OnStartSessionComplete)) +{ + IOnlineSubsystem* SubSystem = IOnlineSubsystem::Get(); + if (SubSystem) + { + SessionInterface = SubSystem->GetSessionInterface(); + } +} + +void UMultiplayerSessionsSubsystem::CreateSession(int32 NumPublicConnections, FString MatchType) +{ + if (!SessionInterface.IsValid()) + return; + + auto ExistingSession = SessionInterface->GetNamedSession(NAME_GameSession); + if (ExistingSession != nullptr) + { + bCreateSessionOnDestroy = true; + LastNumPublicConnections = NumPublicConnections; + LastMatchType = MatchType; + DestorySession(); + } + + // Clear handle + CreateSessionCompleteDelegateHandle = SessionInterface->AddOnCreateSessionCompleteDelegate_Handle(CreateSessionCompleteDelegate); + + LastSessionSettings = MakeShareable(new FOnlineSessionSettings()); + LastSessionSettings->bIsLANMatch = IOnlineSubsystem::Get()->GetSubsystemName() == "NULL" ? true : false; + LastSessionSettings->NumPublicConnections = NumPublicConnections; + LastSessionSettings->bAllowJoinInProgress = true; + LastSessionSettings->bAllowJoinViaPresence = true; + LastSessionSettings->bShouldAdvertise = true; + LastSessionSettings->bUsesPresence = true; + LastSessionSettings->bUseLobbiesIfAvailable = true; + LastSessionSettings->Set(FName("MatchType"), MatchType, EOnlineDataAdvertisementType::ViaOnlineServiceAndPing); + LastSessionSettings->BuildUniqueId = 1; + + const ULocalPlayer* LocalPlayer = GetWorld()->GetFirstLocalPlayerFromController(); + if (!SessionInterface->CreateSession(*LocalPlayer->GetPreferredUniqueNetId(), NAME_GameSession, *LastSessionSettings)) + { + SessionInterface->ClearOnCreateSessionCompleteDelegate_Handle(CreateSessionCompleteDelegateHandle); // clear + MultiplayerOnCreateSessionComplete.Broadcast(false); + if (GEngine) + GEngine->AddOnScreenDebugMessage(-1, 15.f, FColor::Red, FString(TEXT("Failed SubSystem CreateSession!"))); + } + +} + +void UMultiplayerSessionsSubsystem::FindSessions(int32 MaxSearchResults) +{ + if (!SessionInterface.IsValid()) + return; + + FindSessionsCompleteDelegateHandle = SessionInterface->AddOnFindSessionsCompleteDelegate_Handle(FindSessionsCompleteDelegate); + + LastSessionSearch = MakeShareable(new FOnlineSessionSearch()); + LastSessionSearch->MaxSearchResults = MaxSearchResults; + LastSessionSearch->bIsLanQuery = IOnlineSubsystem::Get()->GetSubsystemName() == "NULL" ? true : false; + LastSessionSearch->QuerySettings.Set(SEARCH_PRESENCE, true, EOnlineComparisonOp::Equals); + + const ULocalPlayer* LocalPlayer = GetWorld()->GetFirstLocalPlayerFromController(); + if (!SessionInterface->FindSessions(*LocalPlayer->GetPreferredUniqueNetId(), LastSessionSearch.ToSharedRef())) + { + SessionInterface->ClearOnFindSessionsCompleteDelegate_Handle(FindSessionsCompleteDelegateHandle); + MultiplayerOnFindSessionsComplete.Broadcast(TArray(), false); + if (GEngine) + GEngine->AddOnScreenDebugMessage(-1, 15.f, FColor::Red, FString(TEXT("Failed SubSystem FindSessions!"))); + } +} + +void UMultiplayerSessionsSubsystem::JoinSession(const FOnlineSessionSearchResult& SessionResult) +{ + if (!SessionInterface.IsValid()) + { + MultiplayerOnJoinSessionComplete.Broadcast(EOnJoinSessionCompleteResult::UnknownError); + return; + } + + JoinSessionCompleteDelegateHandle = SessionInterface->AddOnJoinSessionCompleteDelegate_Handle(JoinSessionCompleteDelegate); + + const ULocalPlayer* LocalPlayer = GetWorld()->GetFirstLocalPlayerFromController(); + if (!SessionInterface->JoinSession(*LocalPlayer->GetPreferredUniqueNetId(), NAME_GameSession, SessionResult)) + { + SessionInterface->ClearOnJoinSessionCompleteDelegate_Handle(JoinSessionCompleteDelegateHandle); + MultiplayerOnJoinSessionComplete.Broadcast(EOnJoinSessionCompleteResult::UnknownError); + if (GEngine) + GEngine->AddOnScreenDebugMessage(-1, 15.f, FColor::Red, FString(TEXT("Failed SubSystem JoinSession!"))); + } +} + +void UMultiplayerSessionsSubsystem::DestorySession() +{ + if (!SessionInterface.IsValid()) + { + MultiplayerOnDestroySessionComplete.Broadcast(false); + return; + } + + DestroySessionCompleteDelegateHandle = SessionInterface->AddOnDestroySessionCompleteDelegate_Handle(DestroySessionCompleteDelegate); + + if (!SessionInterface->DestroySession(NAME_GameSession)) + { + SessionInterface->ClearOnDestroySessionCompleteDelegate_Handle(DestroySessionCompleteDelegateHandle); + MultiplayerOnDestroySessionComplete.Broadcast(false); + + if (GEngine) + GEngine->AddOnScreenDebugMessage(-1, 15.f, FColor::Red, FString(TEXT("Failed SubSystem DestorySession!"))); + } +} + +void UMultiplayerSessionsSubsystem::StartSession() +{ + if (!SessionInterface.IsValid()) + { + MultiplayerOnStartSessionComplete.Broadcast(false); + return; + } + + StartSessionCompleteDelegateHandle = SessionInterface->AddOnStartSessionCompleteDelegate_Handle(StartSessionCompleteDelegate); + + if (!SessionInterface->StartSession(NAME_GameSession)) + { + SessionInterface->ClearOnStartSessionCompleteDelegate_Handle(StartSessionCompleteDelegateHandle); + MultiplayerOnStartSessionComplete.Broadcast(false); + + if (GEngine) + GEngine->AddOnScreenDebugMessage(-1, 15.f, FColor::Red, FString(TEXT("Failed SubSystem StartSession!"))); + } +} + +void UMultiplayerSessionsSubsystem::OnCreateSessionComplete(FName SessionName, bool bWasSuccessful) +{ + if (SessionInterface) + SessionInterface->ClearOnCreateSessionCompleteDelegate_Handle(CreateSessionCompleteDelegateHandle); + + MultiplayerOnCreateSessionComplete.Broadcast(bWasSuccessful); +} + +void UMultiplayerSessionsSubsystem::OnFindSessionsComplete(bool bWasSuccessful) +{ + if (SessionInterface) + SessionInterface->ClearOnFindSessionsCompleteDelegate_Handle(FindSessionsCompleteDelegateHandle); + if (LastSessionSearch->SearchResults.Num() <= 0) + { + MultiplayerOnFindSessionsComplete.Broadcast(TArray(), false); + return; + } + + MultiplayerOnFindSessionsComplete.Broadcast(LastSessionSearch->SearchResults, bWasSuccessful); +} + +void UMultiplayerSessionsSubsystem::OnJoinSessionComplete(FName SessionName, EOnJoinSessionCompleteResult::Type Result) +{ + if (SessionInterface) + SessionInterface->ClearOnJoinSessionCompleteDelegate_Handle(JoinSessionCompleteDelegateHandle); + + MultiplayerOnJoinSessionComplete.Broadcast(Result); +} + +void UMultiplayerSessionsSubsystem::OnDestroySessionComplete(FName SessionName, bool bWasSuccessful) +{ + if (SessionInterface) + { + SessionInterface->ClearOnDestroySessionCompleteDelegate_Handle(DestroySessionCompleteDelegateHandle); + } + if (bWasSuccessful && bCreateSessionOnDestroy) + { + bCreateSessionOnDestroy = false; + CreateSession(LastNumPublicConnections, LastMatchType); + } + MultiplayerOnDestroySessionComplete.Broadcast(bWasSuccessful); +} + +void UMultiplayerSessionsSubsystem::OnStartSessionComplete(FName SessionName, bool bWasSuccessful) +{ + if (SessionInterface) + SessionInterface->ClearOnStartSessionCompleteDelegate_Handle(StartSessionCompleteDelegateHandle); + + MultiplayerOnStartSessionComplete.Broadcast(bWasSuccessful); +} diff --git a/Plugins/MultiplayerSessions/Source/MultiplayerSessions/Public/Menu.h b/Plugins/MultiplayerSessions/Source/MultiplayerSessions/Public/Menu.h new file mode 100644 index 0000000..085b775 --- /dev/null +++ b/Plugins/MultiplayerSessions/Source/MultiplayerSessions/Public/Menu.h @@ -0,0 +1,58 @@ +// Fill out your copyright notice in the Description page of Project Settings. + +#pragma once + +#include "CoreMinimal.h" +#include "Blueprint/UserWidget.h" +#include "Interfaces/OnlineSessionInterface.h" + +#include "Menu.generated.h" + +/** + * + */ +class UButton; + +UCLASS() +class MULTIPLAYERSESSIONS_API UMenu : public UUserWidget +{ + GENERATED_BODY() + +public: + UFUNCTION(BlueprintCallable) + void MenuSetup(int32 NumOfPublicConnections = 4, FString TypeOfMatch = FString(TEXT("FreeForAll")), FString LobbyPath = FString(TEXT("/Game/ThirdPerson/Maps/Lobby"))); + +protected: + virtual bool Initialize() override; + virtual void NativeDestruct() override; + + //UMultiplayerSessionsSubsystem의 Delegate에 Binding 될 CallBack 함수 + UFUNCTION() + void OnCreateSession(bool bWasSuccessful); + void OnFindSessions(const TArray& SessionResults, bool bWasSuccessful); + void OnJoinSession(EOnJoinSessionCompleteResult::Type Result); + UFUNCTION() + void OnDestroySession(bool bWasSuccessful); + UFUNCTION() + void OnStartSession(bool bWasSuccessful); +private: + UFUNCTION() + void HostButtonClicked(); + + UFUNCTION() + void JoinButtonClicked(); + + //Menu에서 선택 후 Lock되어있던 조작을 원복하는 함수 + void MenuTearDown(); +private: + UPROPERTY(meta = (BindWidget)) + UButton* HostButton; + + UPROPERTY(meta = (BindWidget)) + UButton* JoinButton; + + class UMultiplayerSessionsSubsystem* MultiplayerSessionsSubsystem; + int32 NumPublicConnections{ 4 }; + FString MatchType{ TEXT("FreeForAll")}; + FString PathToLobby{ TEXT("") }; +}; \ No newline at end of file diff --git a/Plugins/MultiplayerSessions/Source/MultiplayerSessions/Public/MultiplayerSessions.h b/Plugins/MultiplayerSessions/Source/MultiplayerSessions/Public/MultiplayerSessions.h new file mode 100644 index 0000000..c32ff38 --- /dev/null +++ b/Plugins/MultiplayerSessions/Source/MultiplayerSessions/Public/MultiplayerSessions.h @@ -0,0 +1,15 @@ +// Copyright Epic Games, Inc. All Rights Reserved. + +#pragma once + +#include "CoreMinimal.h" +#include "Modules/ModuleManager.h" + +class FMultiplayerSessionsModule : public IModuleInterface +{ +public: + + /** IModuleInterface implementation */ + virtual void StartupModule() override; + virtual void ShutdownModule() override; +}; diff --git a/Plugins/MultiplayerSessions/Source/MultiplayerSessions/Public/MultiplayerSessionsSubsystem.h b/Plugins/MultiplayerSessions/Source/MultiplayerSessions/Public/MultiplayerSessionsSubsystem.h new file mode 100644 index 0000000..3cea4e3 --- /dev/null +++ b/Plugins/MultiplayerSessions/Source/MultiplayerSessions/Public/MultiplayerSessionsSubsystem.h @@ -0,0 +1,75 @@ +// Fill out your copyright notice in the Description page of Project Settings. + +#pragma once + +#include "CoreMinimal.h" +#include "Subsystems/GameInstanceSubsystem.h" +#include "Interfaces/OnlineSessionInterface.h" + +#include "MultiplayerSessionsSubsystem.generated.h" + +//Menu Class를 위한 Custom Delegate +DECLARE_DYNAMIC_MULTICAST_DELEGATE_OneParam(FMultiplayerOnCreateSessionComplete, bool, bWasSuccessful); +DECLARE_MULTICAST_DELEGATE_TwoParams(FMultiplayerOnFindSessionsComplete, const TArray& SessionResults, bool bWasSuccessful); +DECLARE_MULTICAST_DELEGATE_OneParam(FMultiplayerOnJoinSessionComplete, EOnJoinSessionCompleteResult::Type Result); +DECLARE_DYNAMIC_MULTICAST_DELEGATE_OneParam(FMultiplayerOnDestroySessionComplete, bool, bWasSuccessful); +DECLARE_DYNAMIC_MULTICAST_DELEGATE_OneParam(FMultiplayerOnStartSessionComplete, bool, bWasSuccessful); + +/** + * + */ +UCLASS() +class MULTIPLAYERSESSIONS_API UMultiplayerSessionsSubsystem : public UGameInstanceSubsystem +{ + GENERATED_BODY() + +public: + UMultiplayerSessionsSubsystem(); + + /* + * Session 기능을 Handle하기 위한 함수들. Menu Class에서 호출 + */ + void CreateSession(int32 NumPublicConnections, FString MatchType); + void FindSessions(int32 MaxSearchResults); + void JoinSession(const FOnlineSessionSearchResult& SessionResult); + void DestorySession(); + void StartSession(); + + FMultiplayerOnCreateSessionComplete MultiplayerOnCreateSessionComplete; + FMultiplayerOnFindSessionsComplete MultiplayerOnFindSessionsComplete; + FMultiplayerOnJoinSessionComplete MultiplayerOnJoinSessionComplete; + FMultiplayerOnDestroySessionComplete MultiplayerOnDestroySessionComplete; + FMultiplayerOnStartSessionComplete MultiplayerOnStartSessionComplete; +protected: + /* + * Online Session Interface Delegate에 Binding 되는 함수 + */ + void OnCreateSessionComplete(FName SessionName, bool bWasSuccessful); + void OnFindSessionsComplete(bool bWasSuccessful); + void OnJoinSessionComplete(FName SessionName, EOnJoinSessionCompleteResult::Type Result); + void OnDestroySessionComplete(FName SessionName, bool bWasSuccessful); + void OnStartSessionComplete(FName SessionName, bool bWasSuccessful); + +private: + IOnlineSessionPtr SessionInterface; + TSharedPtr LastSessionSettings; + TSharedPtr LastSessionSearch; + + /* + * Online Session Interface Delegate List + */ + FOnCreateSessionCompleteDelegate CreateSessionCompleteDelegate; + FDelegateHandle CreateSessionCompleteDelegateHandle; + FOnFindSessionsCompleteDelegate FindSessionsCompleteDelegate; + FDelegateHandle FindSessionsCompleteDelegateHandle; + FOnJoinSessionCompleteDelegate JoinSessionCompleteDelegate; + FDelegateHandle JoinSessionCompleteDelegateHandle; + FOnDestroySessionCompleteDelegate DestroySessionCompleteDelegate; + FDelegateHandle DestroySessionCompleteDelegateHandle; + FOnStartSessionCompleteDelegate StartSessionCompleteDelegate; + FDelegateHandle StartSessionCompleteDelegateHandle; + + bool bCreateSessionOnDestroy{ false }; + int32 LastNumPublicConnections; + FString LastMatchType; +};