Advanced Sessions Plugin

Hi, is it possible to send invite to friends (to become friends) in steam with Advanced Session?

[quote=“Kagerstones, post:2112, topic:30020”]

Hi, is it possible to send invite to friends (to become friends) in steam with Advanced Session?

No, and in general I think that isn’t supposed to be exposed since then applications have control over the friends of a player (Deleting / inviting automatically from the program).

The closest that the steam API provides that I can see is: “ActivateGameOverlayToUser” which brings up the steam overlay on the profile of the specified steamID.

Which has some utility options like:

"

  • “friendadd” - Opens the overlay in minimal mode prompting the user to add the target user as a friend.
  • “friendremove” - Opens the overlay in minimal mode prompting the user to remove the target friend.
  • “friendrequestaccept” - Opens the overlay in minimal mode prompting the user to accept an incoming friend invite.
  • “friendrequestignore” - Opens the overlay in minimal mode prompting the user to ignore an incoming friend invite"

Which generally do what you want, i’ll look into adding support for that specific function.

Edit

I added the node, I will upload it in a bit to the repositories, going to take a look at a few other functions while I am in the code again.
Preview below of it + what it does

https://i.imgur.com/uqOgnvA.png

Re-Edit

The repository has been updated with the inclusion, I have also ported it back as far as 4.18.
I won’t be compiling new pre-compiled binaries for it for a little bit though.

I also used the time to go and add a safety check verifying that the unique id being passed in to all of the steam functions is truly a steam ID, as some people have been doing some funky cross platform stuff.

Thank you a lot!

Upgraded from 4.18 to 4.21. It appears that servers no longer advertise, even if (verified) bShouldAdvertise is forced to true. We had a lot of custom code for dedicated servers and the like, and we’re just trying to get regular severs showing up. We can still find servers in all other cases, including servers from older versions (we manually allow that) but any servers created by us with our 4.21 build are not showing whatsoever when looking for sessions. The log indicates that we did successfully create our session, it simply isn’t showing up when you look for it.

Is there some very specific issue we need to look at in regards to bShouldAdvertise? I looked extensively at the engine core code, which did change a lot of stuff in regards to advertising servers on Steam, but it even forcing every instance of ShouldAdvertise to true still results in nothing showing up. (Worth noting that a LAN server does show to other LAN searches.)

Any help or wild guesses are appreciated here.

[quote=“Zaggoth, post:2115, topic:30020”]

Upgraded from 4.18 to 4.21. It appears that servers no longer advertise, even if (verified) bShouldAdvertise is forced to true. We had a lot of custom code for dedicated servers and the like, and we’re just trying to get regular severs showing up. We can still find servers in all other cases, including servers from older versions (we manually allow that) but any servers created by us with our 4.21 build are not showing whatsoever when looking for sessions. The log indicates that we did successfully create our session, it simply isn’t showing up when you look for it.

Is there some very specific issue we need to look at in regards to bShouldAdvertise? I looked extensively at the engine core code, which did change a lot of stuff in regards to advertising servers on Steam, but it even forcing every instance of ShouldAdvertise to true still results in nothing showing up. (Worth noting that a LAN server does show to other LAN searches.)

Any help or wild guesses are appreciated here.

Kind of hard to say, I don’t know what changes you have made over the base engine, stock engine listen servers are advertising fine


LAN is a whole other beast as it uses a LAN Beacon, its not really relatable.

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

Kind of hard to say, I don’t know what changes you have made over the base engine, stock engine listen servers are advertising fine


LAN is a whole other beast as it uses a LAN Beacon, its not really relatable.

We’re using a custom Steam Bridge (we call it) that we wrote, not the AdvancedSessionsSteam stuff. Is there a particular change that was made to the Steam side of things between 4.18 and 4.21? Perhaps we need to modify our custom Steam Bridge. Did you modify anything noteworthy in regards to server advertisement via Steam, from 4.18 to 4.21 versions of the AdvancedSessions plugin?

My apologies if this is hard to work with, I’m kinda stabbing in the dark right now.

[quote=“Zaggoth, post:2117, topic:30020”]

We’re using a custom Steam Bridge (we call it) that we wrote, not the AdvancedSessionsSteam stuff. Is there a particular change that was made to the Steam side of things between 4.18 and 4.21? Perhaps we need to modify our custom Steam Bridge. Did you modify anything noteworthy in regards to server advertisement via Steam, from 4.18 to 4.21 versions of the AdvancedSessions plugin?

My apologies if this is hard to work with, I’m kinda stabbing in the dark right now.

No I didn’t make any significant changes, the subsystem interface has been mostly static.

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

No I didn’t make any significant changes, the subsystem interface has been mostly static.

Roger that, just trying to isolate the issue. I think I’ve isolated it to our custom engine changes. I went back to using the plugin completely stock and I’m still not getting server advertisement. Thanks for the replies - and great work on the plugin!

Settings.BuildUniqueId = GetBuildUniqueId();
Needed at line 58 in AdvancedSessions\Source\AdvancedSessions\Private\CreateSessionCallbackProxyAdvanced.cpp

Hello,

Advanced Sessions Plugin have “Get Steam Friend Game Played” node, but this return only App ID (int).
How I can get the game name (string)?

Thanks!

When we can get 4.21.2 version?

[quote=“SND_R_Keene, post:2120, topic:30020”]

Settings.BuildUniqueId = GetBuildUniqueId();
Needed at line 58 in AdvancedSessions\Source\AdvancedSessions\Private\CreateSessionCallbackProxyAdvanced.cpp

That shouldn’t be required.


bool FOnlineSessionSteam::CreateSession(int32 HostingPlayerNum, FName SessionName, const FOnlineSessionSettings& NewSessionSettings)
{
  *Snip*

        // Unique identifier of this build for compatibility
        Session->SessionSettings.BuildUniqueId = GetBuildUniqueId();

The create session functions full that in themselves.
Unless you have a custom subsystem that does not and need it? In that case it would be worth adding.

[quote=“theone866, post:2121, topic:30020”]

Hello,

Advanced Sessions Plugin have “Get Steam Friend Game Played” node, but this return only App ID (int).
How I can get the game name (string)?

Thanks!

so I
You can to query the app list in the web api for that. It was outside of my intended scope for this plugin however I haven’t seen any alternatives pop up so I may get around to it at some point.

Hi I am having an issue with a server browser I made, it works in the editor but it does not work when I package the project.

[quote=“ƁukĐ”, post:2125, topic:30020”]

Hi I am having an issue with a server browser I made, it works in the editor but it does not work when I package the project.

Are you packaging in shipping for steam? You need to provide an app_id.txt file if so, or test with a development build.

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

Are you packaging in shipping for steam? You need to provide an app_id.txt file if so, or test with a development build.

I am testing it with a development build, also what do you mean by shipping for steam

Currently my setup is this:

Game.Build.cs

[QUOTE]
using UnrealBuildTool;
using System.Collections.Generic;

[SupportedPlatforms(UnrealPlatformClass.Server)]
public class PewPewServerTarget : TargetRules
{
public PewPewServerTarget(TargetInfo Target) : base(Target)
{
Type = TargetType.Server;
ExtraModuleNames.AddRange( new string] { “PewPew” } );
}
}

ModuleRule

[QUOTE]
using UnrealBuildTool;

public class PewPew : ModuleRules
{
public PewPew(ReadOnlyTargetRules Target) : base(Target)
{
PCHUsage = PCHUsageMode.UseExplicitOrSharedPCHs;

    PublicDependencyModuleNames.AddRange(new string] { "Core", "CoreUObject", "Engine", "InputCore", "OnlineSubsystem", "OnlineSubsystemUtils" });

    PrivateDependencyModuleNames.AddRange(new string] {  });

    DynamicallyLoadedModuleNames.Add("OnlineSubsystemSteam");

    // Uncomment if you are using Slate UI
    // PrivateDependencyModuleNames.AddRange(new string] { "Slate", "SlateCore" });

    // Uncomment if you are using online features
     PrivateDependencyModuleNames.Add("OnlineSubsystem");

    // To include OnlineSubsystemSteam, add it to the plugins section in your uproject file with the Enabled attribute set to true
}

}

DefaultEngine.ini

[QUOTE]
[/Script/Engine.GameEngine]
+NetDriverDefinitions=(DefName=“GameNetDriver”,DriverClassName=“OnlineSubsystemSteam.SteamNetDriver”,DriverClassNameFallback=“OnlineSubsystemUtils.IpNetDriver”)

[OnlineSubsystem]
DefaultPlatformService=Steam

[OnlineSubsystemSteam]
bEnabled=true
SteamDevAppId=480
SteamAppId=480
GameServerQueryPort=27015

  1. When i’m building dedicated server from project launcher, im getting warning Steam API is disabled! so when i change bEnabled = false, i don’t get this warning anymore. So what is properly to do when building dedicated server? So, do i need to build dedicated server from launcher, or from source. Because i have started unreal editor from Visual Studio (development_editor).

  2. This is how i create advanced session on dedicated server, and before first string im asking is dedicated server? so if true, im creating session. But OnSuccess or On Failure is never print string.

  3. When i’m finding session to join, i can join from client, but i can’t see my server in steam list of server, why?

Thanks!

I literally did everything I am supposed to and I cant join games or am able to find them when I package my project its really weird since i can in the PIE if anyone is able to help me pm me or something on discord Luke #6261

[quote=“ƁukĐ”, post:2129, topic:30020”]

I literally did everything I am supposed to and I cant join games or am able to find them when I package my project its really weird since i can in the PIE if anyone is able to help me pm me or something on discord Luke #6261

PIE doesn’t enable steam
 You have to run stand alone to actually run steam while in the editor.

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

PIE doesn’t enable steam
 You have to run stand alone to actually run steam while in the editor.

yeah but thats the thing that I do not understand it works in there but not in standalone or in a packaged project, like LAN doesnt even work in standalone