Advanced Sessions Plugin

[quote=“CppGod, post:2582, topic:30020”]

will this work on mobile devices? if so, what problems may arise during packaging?

Should be none.

[quote=“Kabassmusic, post:2583, topic:30020”]

So I’m using p4v and the client has an issue with loading the project and the AS module fails to load? Any suggestions?

You are likely locking multiple files that get rebuilt with p4v.

[quote=“pftq, post:2584, topic:30020”]

Is the OverrideFailureDelegate available and if not, could this be added (or advise on how to add)?
https://docs.unrealengine.com/en-US/…eam/index.html

Thanks. The blueprint work has been very helpful so far.

I'm looking into it actually, there are a lot of things that could be useful there, I would just have to make a new game instance class that extends the friends one to handle it.

NVM on that, forgot that just binding to it in general would cause default behavior to not fire, better to keep as a c++ bind if people want to do that.

How you would go about getting to it though is below


 FOnlineSubsystemSteam* SteamSubsystem = (FOnlineSubsystemSteam*)(IOnlineSubsystem::Get(STEAM_SUBSYSTEM));
if (SteamSubsystem)
{
FOnlineAuthSteamUtilsPtr SteamAuthUtils = SteamSubsystem->GetAuthInterfaceUtils();

if (SteamAuthUtils.IsValid())
SteamAuthUtils.Get()->OnAuthenticationResultDelegate // BIND HERE TO YOUR FUNCTION
{

I’m getting an error when packaging my project using nativization and Advanced Sessions, which is installed in my projects plugin folder. The project packages fine without nativization.


UATHelper: Packaging (Windows (64-bit)): C:\Users\Hynes\Desktop\UE4\DeadContainment\UE4\DeadContainment\Intermediate\Plugins\NativizedAssets\Windows\Game\Source\NativizedAssets\Public\ServerMenu_W__pf1202218244.h(5): fatal error C1083: Cannot open include file: '../Plugins/AdvancedSessions/AdvancedSessions/Source/AdvancedSessions/Classes/BlueprintDataDef
initions.h': No such file or directory
UATHelper: Packaging (Windows (64-bit)): Took 159.5470001s to run UnrealBuildTool.exe, ExitCode=6
UATHelper: Packaging (Windows (64-bit)): UnrealBuildTool failed. See log for more details. (C:\Users\Hynes\AppData\Roaming\Unreal Engine\AutomationTool\Logs\C+Program+Files+Epic+Games+UE_4.25\UBT-DeadContainment-Win64-Shipping_2.txt)
UATHelper: Packaging (Windows (64-bit)): AutomationTool exiting with ExitCode=6 (6)
UATHelper: Packaging (Windows (64-bit)): BUILD FAILED
PackagingResults: Error: Unknown Error

Has anyone else experienced this or know how I can fix it?

[quote=“, post:2586, topic:30020”]

I'm looking into it actually, there are a lot of things that could be useful there, I would just have to make a new game instance class that extends the friends one to handle it.

NVM on that, forgot that just binding to it in general would cause default behavior to not fire, better to keep as a c++ bind if people want to do that.

How you would go about getting to it though is below


 FOnlineSubsystemSteam* SteamSubsystem = (FOnlineSubsystemSteam*)(IOnlineSubsystem::Get(STEAM_SUBSYSTEM));
if (SteamSubsystem)
{
FOnlineAuthSteamUtilsPtr SteamAuthUtils = SteamSubsystem->GetAuthInterfaceUtils();

if (SteamAuthUtils.IsValid())
SteamAuthUtils.Get()->OnAuthenticationResultDelegate // BIND HERE TO YOUR FUNCTION
{

Can you be more specific with the steps? Not familiar with how C++ classes work or how to override delegates in UE4, hence why I’m using the plugin for now. Thank you

hey I haven’t had any issue with your plugin and packaging games. I did recently update UE4 to 4.25.2, and now when i went to attempt a 64bit package build, this error comes up in the log and the build fails. Do you have any detailed info on what I should look for to get rid of this error?

UATHelper: Packaging (Windows (64-bit)): ERROR: Expecting to find a type to be declared in a module rules named ‘AdvancedSteamSessions’ in UE4Rules, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null. This type must derive from the ‘ModuleRules’ type defined by Unreal Build Tool.
PackagingResults: Error: Expecting to find a type to be declared in a module rules named ‘AdvancedSteamSessions’ in UE4Rules, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null. This type must derive from the ‘ModuleRules’ type defined by Unreal Build Tool.

So it looks like there’s something to do with the new 4.25.2 update and other people are having this issue. I had to remove your plugin from the engine plugins directory and put it in my project plugins folder directory. Along with any other active plugins that i was using. This is really odd and i think it’s a bug on Epic’s end unless something major just changed. But I’m currently building now with no issues after moving the plugin over.

Hi,
I keep getting this error when trying to Nativize my fully Blueprint game with AdvancedSessions included as a plugin. Everything used to work perfectly in 4.21.2.
STEPS:
1- Backed up the project, then opened it with 4.25.2, converted it in place.
2- Downloaded/upacked/copied AdvancedSessions plugins into “[ProjectFolder]\Plugins” folder.
3. Created an ANOTHER C++ class, for some strange reason it got created into the AdvancedSessions Plugin folder…
4- Nativization Inclusive
5- BuildConfiguration->Shipping
6- Package for Windows-64.
BUILD FAILS


c:\users\***\documents\unreal projects\***\intermediate\plugins
ativizedassets\windows\game\source
ativizedassets\public\BPGI_GameInstanceMaster__pf1380491225.h(10): fatal error C1083: Cannot open include file: '../Plugins/AdvancedSessions/Source/AdvancedSessions/Classes/BlueprintDataDefinition
s.h': No such file or directory

Even though the file can be found


C:\Users\***\Documents\Unreal Projects\***\Plugins\AdvancedSessions\Source\AdvancedSessions\BlueprintDataDefinition
s.h

Engine version: Unreal Engine 4.25.2
Plugin: AdvancedSessions 4.25.0

Location: [ProjectFolder]\Plugins\AdvancedSessions
Location: [ProjectFolder]\Plugins\AdvancedSteamSessions\


c:\users\***\documents\unreal projects\***\intermediate\plugins
ativizedassets\windows\game\source
ativizedassets\public\BPGI_GameInstanceMaster__pf1380491225.h(10): fatal error C1083: Cannot open include file: '../Plugins/AdvancedSessions/Source/AdvancedSessions/Classes/BlueprintDataDefinition
s.h': No such file or directory

Any ideas the cause/fix for this issue?

Thanks!

From the first post of this thread:

[quote=“, post:1, topic:30020”]

I have had several requests for supporting the authentication system for steam and wanted to be up front about it in here. The changes required are likely to be out of the scope of a plugin (or very backwards to implement through one) and I would rather people go and support the pull request that adds the functionality into the engine itself: https://github.com/EpicGames/UnrealEngine/pull/2135

What is the state of this? When I look into the linked pull request, the Request is closed already and people comment that EPIC implement own solution. What’s the actual state? Epic implement basic solution but “advanced session plugin” still enhance the built-in system, right?

This is a super delayed response to a lot of earlier problems people seemed to be having, but in order to pass on the map name from your game to Steam’s dedicated server list, use the “MAPNAME” literal string in the extra settings array. This passes it on and Steam recognises it and displays it properly. Took me a while to figure it out and it took someone commenting on my youtube tutorial for me to figure it out so hopefully that helps someone out.

[quote=“TheFlow3k, post:2592, topic:30020”]

From the first post of this thread:

What is the state of this? When I look into the linked pull request, the Request is closed already and people comment that EPIC implement own solution. What’s the actual state? Epic implement basic solution but “advanced session plugin” still enhance the built-in system, right?

Its listed in the OP for this thread, but yes they did add steam authentication directly to the engine now

[quote=“noms, post:2593, topic:30020”]

This is a super delayed response to a lot of earlier problems people seemed to be having, but in order to pass on the map name from your game to Steam’s dedicated server list, use the “MAPNAME” literal string in the extra settings array. This passes it on and Steam recognises it and displays it properly. Took me a while to figure it out and it took someone commenting on my youtube tutorial for me to figure it out so hopefully that helps someone out.

Using “MAPNAME” will pass the mapname correctly? But what about the Servername? my servernames are looking something like 9659872394576

Hello, I am trying to use Find Sessions Advanced for 4.25 and one issue I am running into is it isn’t returning any results. I have a simple join game event that gets triggered from a button but the array returns 0. I turned off my filters for the time being since I couldn’t see any sessions. Do you have suggestions on how to see why it is returning 0?




[/Script/Engine.RendererSettings]
r.DefaultFeature.AutoExposure.ExtendDefaultLuminanceRange=True

[/Script/EngineSettings.GameMapsSettings]
EditorStartupMap=/Game/Maps/TestingLevel.TestingLevel
GameDefaultMap=/Game/Maps/MainMenu.MainMenu
GlobalDefaultGameMode=/Game/Blueprints/MainMenu/BP_MainMenuGameMode.BP_MainMenuGameMode_C
GameInstanceClass=/Game/Blueprints/Framework/BP_SurvivalGameInstance.BP_SurvivalGameInstance_C
TransitionMap=/Game/Maps/TransitionMap.TransitionMap
ServerDefaultMap=/Game/Maps/MainMenu.MainMenu

[/Script/HardwareTargeting.HardwareTargetingSettings]
TargetedHardwareClass=Desktop
AppliedTargetedHardwareClass=Desktop
DefaultGraphicsPerformance=Maximum
AppliedDefaultGraphicsPerformance=Maximum

[/Script/Engine.PhysicsSettings]
DefaultGravityZ=-980.000000
DefaultTerminalVelocity=4000.000000
DefaultFluidFriction=0.300000
SimulateScratchMemorySize=262144
RagdollAggregateThreshold=4
TriangleMeshTriangleMinAreaThreshold=5.000000
bEnableShapeSharing=False
bEnablePCM=True
bEnableStabilization=False
bWarnMissingLocks=True
bEnable2DPhysics=False
PhysicErrorCorrection=(PingExtrapolation=0.100000,PingLimit=100.000000,ErrorPerLinearDifference=1.000000,ErrorPerAngularDifference=1.000000,MaxRestoredStateError=1.000000,MaxLinearHardSnapDistance=400.000000,PositionLerp=0.000000,AngleLerp=0.400000,LinearVelocityCoefficient=100.000000,AngularVelocityCoefficient=10.000000,ErrorAccumulationSeconds=0.500000,ErrorAccumulationDistanceSq=15.000000,ErrorAccumulationSimilarity=100.000000)
LockedAxis=Invalid
DefaultDegreesOfFreedom=Full3D
BounceThresholdVelocity=200.000000
FrictionCombineMode=Average
RestitutionCombineMode=Average
MaxAngularVelocity=3600.000000
MaxDepenetrationVelocity=0.000000
ContactOffsetMultiplier=0.020000
MinContactOffset=2.000000
MaxContactOffset=8.000000
bSimulateSkeletalMeshOnDedicatedServer=True
DefaultShapeComplexity=CTF_UseSimpleAndComplex
bDefaultHasComplexCollision=True
bSuppressFaceRemapTable=False
bSupportUVFromHitResults=False
bDisableActiveActors=False
bDisableKinematicStaticPairs=False
bDisableKinematicKinematicPairs=False
bDisableCCD=False
bEnableEnhancedDeterminism=False
AnimPhysicsMinDeltaTime=0.000000
bSimulateAnimPhysicsAfterReset=False
MaxPhysicsDeltaTime=0.033333
bSubstepping=False
bSubsteppingAsync=False
MaxSubstepDeltaTime=0.016667
MaxSubsteps=6
SyncSceneSmoothingFactor=0.000000
InitialAverageFrameRate=0.016667
PhysXTreeRebuildRate=10
DefaultBroadphaseSettings=(bUseMBPOnClient=False,bUseMBPOnServer=False,bUseMBPOuterBounds=False,MBPBounds=(Min=(X=0.000000,Y=0.000000,Z=0.000000),Max=(X=0.000000,Y=0.000000,Z=0.000000),IsValid=0),MBPOuterBounds=(Min=(X=0.000000,Y=0.000000,Z=0.000000),Max=(X=0.000000,Y=0.000000,Z=0.000000),IsValid=0),MBPNumSubdivs=2)
ChaosSettings=(DefaultThreadingModel=DedicatedThread,DedicatedThreadTickMode=VariableCappedWithTarget,DedicatedThreadBufferMode=Double)

[/Script/Engine.CollisionProfile]
+Profiles=(Name="NoCollision",CollisionEnabled=NoCollision,bCanModify=False,ObjectTypeName="WorldStatic",CustomResponses=((Channel="Visibility",Response=ECR_Ignore),(Channel="Camera",Response=ECR_Ignore)),HelpMessage="No collision")
+Profiles=(Name="BlockAll",CollisionEnabled=QueryAndPhysics,bCanModify=False,ObjectTypeName="WorldStatic",CustomResponses=,HelpMessage="WorldStatic object that blocks all actors by default. All new custom channels will use its own default response. ")
+Profiles=(Name="OverlapAll",CollisionEnabled=QueryOnly,bCanModify=False,ObjectTypeName="WorldStatic",CustomResponses=((Channel="WorldStatic",Response=ECR_Overlap),(Channel="Pawn",Response=ECR_Overlap),(Channel="Visibility",Response=ECR_Overlap),(Channel="WorldDynamic",Response=ECR_Overlap),(Channel="Camera",Response=ECR_Overlap),(Channel="PhysicsBody",Response=ECR_Overlap),(Channel="Vehicle",Response=ECR_Overlap),(Channel="Destructible",Response=ECR_Overlap)),HelpMessage="WorldStatic object that overlaps all actors by default. All new custom channels will use its own default response. ")
+Profiles=(Name="BlockAllDynamic",CollisionEnabled=QueryAndPhysics,bCanModify=False,ObjectTypeName="WorldDynamic",CustomResponses=,HelpMessage="WorldDynamic object that blocks all actors by default. All new custom channels will use its own default response. ")
+Profiles=(Name="OverlapAllDynamic",CollisionEnabled=QueryOnly,bCanModify=False,ObjectTypeName="WorldDynamic",CustomResponses=((Channel="WorldStatic",Response=ECR_Overlap),(Channel="Pawn",Response=ECR_Overlap),(Channel="Visibility",Response=ECR_Overlap),(Channel="WorldDynamic",Response=ECR_Overlap),(Channel="Camera",Response=ECR_Overlap),(Channel="PhysicsBody",Response=ECR_Overlap),(Channel="Vehicle",Response=ECR_Overlap),(Channel="Destructible",Response=ECR_Overlap)),HelpMessage="WorldDynamic object that overlaps all actors by default. All new custom channels will use its own default response. ")
+Profiles=(Name="IgnoreOnlyPawn",CollisionEnabled=QueryOnly,bCanModify=False,ObjectTypeName="WorldDynamic",CustomResponses=((Channel="Pawn",Response=ECR_Ignore),(Channel="Vehicle",Response=ECR_Ignore)),HelpMessage="WorldDynamic object that ignores Pawn and Vehicle. All other channels will be set to default.")
+Profiles=(Name="OverlapOnlyPawn",CollisionEnabled=QueryOnly,bCanModify=False,ObjectTypeName="WorldDynamic",CustomResponses=((Channel="Pawn",Response=ECR_Overlap),(Channel="Vehicle",Response=ECR_Overlap),(Channel="Camera",Response=ECR_Ignore)),HelpMessage="WorldDynamic object that overlaps Pawn, Camera, and Vehicle. All other channels will be set to default. ")
+Profiles=(Name="Pawn",CollisionEnabled=QueryAndPhysics,bCanModify=False,ObjectTypeName="Pawn",CustomResponses=((Channel="Visibility",Response=ECR_Ignore)),HelpMessage="Pawn object. Can be used for capsule of any playerable character or AI. ")
+Profiles=(Name="Spectator",CollisionEnabled=QueryOnly,bCanModify=False,ObjectTypeName="Pawn",CustomResponses=((Channel="WorldStatic"),(Channel="Pawn",Response=ECR_Ignore),(Channel="Visibility",Response=ECR_Ignore),(Channel="WorldDynamic",Response=ECR_Ignore),(Channel="Camera",Response=ECR_Ignore),(Channel="PhysicsBody",Response=ECR_Ignore),(Channel="Vehicle",Response=ECR_Ignore),(Channel="Destructible",Response=ECR_Ignore)),HelpMessage="Pawn object that ignores all other actors except WorldStatic.")
+Profiles=(Name="CharacterMesh",CollisionEnabled=QueryOnly,bCanModify=False,ObjectTypeName="Pawn",CustomResponses=((Channel="Pawn",Response=ECR_Ignore),(Channel="Vehicle",Response=ECR_Ignore),(Channel="Visibility",Response=ECR_Ignore)),HelpMessage="Pawn object that is used for Character Mesh. All other channels will be set to default.")
+Profiles=(Name="PhysicsActor",CollisionEnabled=QueryAndPhysics,bCanModify=False,ObjectTypeName="PhysicsBody",CustomResponses=,HelpMessage="Simulating actors")
+Profiles=(Name="Destructible",CollisionEnabled=QueryAndPhysics,bCanModify=False,ObjectTypeName="Destructible",CustomResponses=,HelpMessage="Destructible actors")
+Profiles=(Name="InvisibleWall",CollisionEnabled=QueryAndPhysics,bCanModify=False,ObjectTypeName="WorldStatic",CustomResponses=((Channel="Visibility",Response=ECR_Ignore)),HelpMessage="WorldStatic object that is invisible.")
+Profiles=(Name="InvisibleWallDynamic",CollisionEnabled=QueryAndPhysics,bCanModify=False,ObjectTypeName="WorldDynamic",CustomResponses=((Channel="Visibility",Response=ECR_Ignore)),HelpMessage="WorldDynamic object that is invisible.")
+Profiles=(Name="Trigger",CollisionEnabled=QueryOnly,bCanModify=False,ObjectTypeName="WorldDynamic",CustomResponses=((Channel="WorldStatic",Response=ECR_Overlap),(Channel="Pawn",Response=ECR_Overlap),(Channel="Visibility",Response=ECR_Ignore),(Channel="WorldDynamic",Response=ECR_Overlap),(Channel="Camera",Response=ECR_Overlap),(Channel="PhysicsBody",Response=ECR_Overlap),(Channel="Vehicle",Response=ECR_Overlap),(Channel="Destructible",Response=ECR_Overlap)),HelpMessage="WorldDynamic object that is used for trigger. All other channels will be set to default.")
+Profiles=(Name="Ragdoll",CollisionEnabled=QueryAndPhysics,bCanModify=False,ObjectTypeName="PhysicsBody",CustomResponses=((Channel="Pawn",Response=ECR_Ignore),(Channel="Visibility",Response=ECR_Ignore)),HelpMessage="Simulating Skeletal Mesh Component. All other channels will be set to default.")
+Profiles=(Name="Vehicle",CollisionEnabled=QueryAndPhysics,bCanModify=False,ObjectTypeName="Vehicle",CustomResponses=,HelpMessage="Vehicle object that blocks Vehicle, WorldStatic, and WorldDynamic. All other channels will be set to default.")
+Profiles=(Name="UI",CollisionEnabled=QueryOnly,bCanModify=False,ObjectTypeName="WorldDynamic",CustomResponses=((Channel="WorldStatic",Response=ECR_Overlap),(Channel="Pawn",Response=ECR_Overlap),(Channel="Visibility"),(Channel="WorldDynamic",Response=ECR_Overlap),(Channel="Camera",Response=ECR_Overlap),(Channel="PhysicsBody",Response=ECR_Overlap),(Channel="Vehicle",Response=ECR_Overlap),(Channel="Destructible",Response=ECR_Overlap)),HelpMessage="WorldStatic object that overlaps all actors by default. All new custom channels will use its own default response. ")
+DefaultChannelResponses=(Channel=ECC_GameTraceChannel1,DefaultResponse=ECR_Block,bTraceType=True,bStaticObject=False,Name="Weapon")
+ProfileRedirects=(OldName="BlockingVolume",NewName="InvisibleWall")
+ProfileRedirects=(OldName="InterpActor",NewName="IgnoreOnlyPawn")
+ProfileRedirects=(OldName="StaticMeshComponent",NewName="BlockAllDynamic")
+ProfileRedirects=(OldName="SkeletalMeshActor",NewName="PhysicsActor")
+ProfileRedirects=(OldName="InvisibleActor",NewName="InvisibleWallDynamic")
+CollisionChannelRedirects=(OldName="Static",NewName="WorldStatic")
+CollisionChannelRedirects=(OldName="Dynamic",NewName="WorldDynamic")
+CollisionChannelRedirects=(OldName="VehicleMovement",NewName="Vehicle")
+CollisionChannelRedirects=(OldName="PawnMovement",NewName="Pawn")

[/Script/Engine.Engine]
NearClipPlane=1.000000
SmoothedFrameRateRange=(LowerBound=(Type=Inclusive,Value=22.000000),UpperBound=(Type=Open,Value=62.000000))
bSmoothFrameRate=True
!NetDriverDefinitions=ClearArray
; Uncomment the next line if you are using the Null Subsystem
;-NetDriverDefinitions=(DefName="GameNetDriver",DriverClassName="/Script/OnlineSubsystemUtils.IpNetDriver",DriverClassNameFallback="/Script/OnlineSubsystemUtils.IpNetDriver")
; Uncomment the next line if you are using the Steam Subsystem
+NetDriverDefinitions=(DefName="GameNetDriver",DriverClassName="OnlineSubsystemSteam.SteamNetDriver",DriverClassNameFallback="OnlineSubsystemUtils.IpNetDriver")

[OnlineSubsystem]
PollingIntervalInMs=20
; Uncomment the following line to use the Null Subsystem
;DefaultPlatformService=Null
; Uncomment the following lines to use the Steam Subsystem
DefaultPlatformService=Steam
VoiceNotificationDelta=0.2
bUsesPresence=false

[OnlineSubsystemSteam]
bEnabled=true
SteamDevAppId=480
GameServerQueryPort=27015
bRelaunchInSteam=false
GameVersion=1.0.0.0
bVACEnabled=1
bAllowP2PPacketRelay=true
bUsesPresence=false
P2PConnectionTimeout=180

[/Script/OnlineSubsystemSteam.SteamNetDriver]
NetConnectionClassName="OnlineSubsystemSteam.SteamNetConnection"

[Core.Log]
LogOnline=Verbose



Hi! When we can get this amazing plugin for 4.25.3?

Hello I have already set up the plugin and also got the multiplayer working, so I would like to know how would I make a leader board system for my games? Is there a tutorial or a well written Documentation?

[quote=“PR0_R0K, post:2598, topic:30020”]

Hi! When we can get this amazing plugin for 4.25.3?

The binaries are already updated for it, just forgot to change the download text.

[quote=“PIXELBOB, post:2599, topic:30020”]

Hello I have already set up the plugin and also got the multiplayer working, so I would like to know how would I make a leader board system for my games? Is there a tutorial or a well written Documentation?

It doesn’t do anything with leaderboards, so just follow any normal leaderboard tutorial.

Hello There,

I was able to get my setup with a dedicated server working, It seams working so far.

But there is a Problem: The player count in the SteamServer Browser is not Updating. It remains 0/50 even if I join the game.

I have my own AppId, the game is not released yet and currently hidden. (maybe this is the reason, because of some Authentication stuff not working correctly?)


https://forums.unrealengine.com/core/image/gif;base64

This is how I update the Session after the OnPostLogin and OnLogout events on the server.

Do I miss something?

[quote=“SaphiGoat, post:#Post:0x0000559744afabf0, topic:30020”]

Hello There,

I was able to get my setup with a dedicated server working, It seams working so far.

But there is a Problem: The player count in the SteamServer Browser is not Updating. It remains 0/50 even if I join the game.

I have my own AppId, the game is not released yet and currently hidden. (maybe this is the reason, because of some Authentication stuff not working correctly?)


https://forums.unrealengine.com/core/image/gif;base64

This is how I update the Session after the OnPostLogin and OnLogout events on the server.

Do I miss something?

It won’t update the player counts automatically until you add steam authentication yes.

After adding steam authentication everthing works.

Sometimes the simple things are not easy to find.

Hi, just following up in case it was missed. If you could clarify where the C++ code change would be made and how to have it take effect, that’d be great. Thanks

[quote=“pftq, post:2588, topic:30020”]

Can you be more specific with the steps? Not familiar with how C++ classes work or how to override delegates in UE4, hence why I’m using the plugin for now. Thank you

[quote=“, post:2586, topic:30020”]

I'm looking into it actually, there are a lot of things that could be useful there, I would just have to make a new game instance class that extends the friends one to handle it.

NVM on that, forgot that just binding to it in general would cause default behavior to not fire, better to keep as a c++ bind if people want to do that.

How you would go about getting to it though is below


 FOnlineSubsystemSteam* SteamSubsystem = (FOnlineSubsystemSteam*)(IOnlineSubsystem::Get(STEAM_SUBSYSTEM));
if (SteamSubsystem)
{
FOnlineAuthSteamUtilsPtr SteamAuthUtils = SteamSubsystem->GetAuthInterfaceUtils();

if (SteamAuthUtils.IsValid())
SteamAuthUtils.Get()->OnAuthenticationResultDelegate // BIND HERE TO YOUR FUNCTION
{

Also in case anyone else gets routine connection issues on Steam to the host server, I found out I had to regularly call Update Sessions on the host server to keep Steam from dropping the host from the sessions list. I also stopped getting issues with players unable to rejoin an active game, but I’m not sure if the two issues are related.

Anyone knows its possible to create a ingame invite dialog? (instead of using the steam dialog)