Advanced Sessions Plugin

I am trying to use it for hosting with the “dedicated server” option on PIE. It creates fine the the session with client 1, but i am always getting a timeout with the client 2 trying to join the session (it prints succesfully joined but fails to open level). How should i configure it to open a level with the dedicated server option?. Thanks in advance.

Hello, How can I make filters when searching for session? It has the filters array in ti but I can’t set them. I need to filter found sessions by gamemode that is on server.

You can set them, drag it out and make an array. You can also use a filter found sessions node if you want to filter them after searching as well. In most cases you want to use the pre-filtering though as it will save bandwidth and time.

Hi @mordentral , i’ve been using unmuting/muting for a while. somehow even at 8 players it keeps clogging the channel and i’m getting a lot of error message on log about network saturated. This seems to be happening consistently. any idea why? My initial assumption was that the traffic is too high and was hoping having multiple channel would work better. Since epic has implemented it do you have any idea what i should try try to get it to work?

You would be better off Unregistering the players you don’t want to hear (other team) instead of muting them. However I have seen that warning before, since I don’t have a current project ready to look it up can you paste the actual log message in here? I want to see where it is throwing it from.

It won’t have anything to do with the plugin since I just call their voice interface functions, however I did notice them start occurring when they didn’t used to, it may be an engine problem (there have been some recent voice issues reported for 4.12).

if you need inspiration about possible new features you could add to the plugin, i would like to have a way, to pass some information to the server while joining a session, with a joinAdvancedSessionNode. Because my problem is: I have a bool, while I´m not in a session. now i search and find a session and want to join it. but when i join it and get to the new level (of the server), which has another GameMode, every file except the gameInstance-file of the client gets replaced. so i have to store this bool in the gameinstance, and have to find a way, to send this bool to the server(i need it in the GameMode-Class) after joining. with a parameter in the “joinSession”-Node, all this stuff becomes unneccessary and a lot easier.

Would be nice if you consider adding this new “JoinAdvancedSession”-node :slight_smile:

Hey there.

I’ve got a question about your plugin. I’m making a game with a friend, and it’s mostly made in c++. We were using your plugin in BPs (as it was mostly just for testing so it didn’t have to be fine quality yet) and it was working pretty good. However, I’m at the point where I’m cleaning that stuff. I’m trying to move all that logic to C++. Unfortunately I keep failing at it. When I call your node “Create Advanced Session” in blueprints, the session is created properly. However, if I use UCreateSessionCallbackProxyAdvanced::CreateAdvancedSession it doesn’t. I’ve tried to debug it but doing it in VS on BP functions is quite hard to acomplish (one of the reasons we want to move it to c++ :p).

From what I seen, calling “Create Advanced Session” nodes, causes that the UCreateSessionCallbackProxyAdvanced::Activate function is called at some point. That’s not the cause, when I use UCreateSessionCallbackProxyAdvanced::CreateAdvancedSession function. When I try to call that function manually, the game simply turns off. After comparing declaration of node and the function, it kinda makes me think that there is another definition of that node somewhere, but I fail to find it. Could you point me to the place where that function is implemented? Or tell me how’s creating function is supposesd to be handled in c++?

The way I’m trying to do it atm:

void UFreedomInstance::CreateSession_Implementation(const FCreateSessionParams& InCreateSessionParams)
	if (InCreateSessionParams.Player)
		UCreateSessionCallbackProxyAdvanced* CreatedSession = UCreateSessionCallbackProxyAdvanced::CreateAdvancedSession(

		if (CreatedSession)
			SIGN_UP_EVENT(CreatedSession->OnSuccess, &UFreedomInstance::OnCreateSession_Success_Handler);
			SIGN_UP_EVENT(CreatedSession->OnFailure, &UFreedomInstance::OnCreateSession_Failure_Handler);
			ERROR_GAME("Session Creation Failure: couldn't create sessions callback proxy.");
		ERROR_GAME("Session Creation Failure: given player was null. See if player is passed to the function properly.");

InCreateSessionParams.Player is valid, custom player controller of a player that wanted to create a session.
UFreedomInstance is a UAdvancedFriendsGameInstance deriving class.
The subsystem I’m using is a steam one.
I’m testing it for a single player (just want to see if OnSuccess even is fired) in Standalone mode. Steam is running and game properly detects it (overlay).

The version I’m using: 4.12.5 (both for engine and your plugin).

Cheers, and thanks in advance.

Using the game instance is the correct way of doing it. Passing variables through join session isn’t officially supported and in a game instance you can send an entire struct through RPC.

The plugin doesn’t do things how it should be done for C++ projects, I am using Blueprint Callbacks and delegates and the async blueprint nodes are used differently. You should take a look at Exi’s tutorial in the forums for C++ version of sessions hosting.

That being said there isn’t much of a downside to keeping it a blueprint interface.

Thanks for the answer, tho it’s not the one I was counting for. :stuck_out_tongue:
Can you point me to the location where your node is implemented then? I really don’t want to mix blueprints and C++ in that place.

Thanks for the hint about Exi’s compedium, didn’t know about its existance. :stuck_out_tongue:

Okay, I’ve found the guilty class. It seems like UK2Node_LatentOnlineCall is responsible for creating such wrapping nodes for all children of UOnlineBlueprintCallProxyBase.

I agree it’s definitely nothing to do with the plugin. just wondering if having channels would take down the traffic significantly.
I have taken VOIP off my project for some time since it’s been happening. Btw. i’m wondering does registering/ unregistering a 100% local function or it has anything to do with network.

If another player is registered then steam sends the voice packets to the player.

Hey I installed your plugin hoping it would help me resolve an issue i am having joining local LAN sessions. It did not but thought I would ask here since can’t get responses anywhere else. I am launching 2 PIE windows in the editor then in the server i create an advanced session and open lobby level with the listen option. At this point i get logs saying the client disconnected. I am able to find the session as the client but cant connect. Any tips on how to test lan connections on same machine? I am only using the default online subsystem for testing.

I realize this is not an issue with your plugin but just thought I would ask.

You won’t be able to test session joining very well through the PIE windows as they auto create a “session” for the two windows. You’ll want to package out to stand alone exe’s and test using those instead.

Ah interesting. Thanks for the info Ill try to package them out to test the joining stuff.

Quick question to those that have used the plugin to build shipping versions of their game. Has anyone had issues with this before? I seem to be having a few issues with getting the steam overlay working once I build for shipping. I have added all the necessary files to their locations including the steam_appid.txt file. Just curious if anyone else has had problems when moving to shipping builds. Thanks.

Hi, when could we expect the plugin to be recompiled for 4.13? Epic did change several networking functions, so there is unfortunately a necessity to rewrite at least some part of the cpp code.

I’ll check it out to make sure ahead of time what needs to be changed, but I am not going to release a 4.13 version until 4.13 is mostly stable.

That being said I compiled one of my test projects with 4.13 the day it was out and i’m pretty sure Advanced Sessions was in that project and I had no issues.

I’ll double check though.

Edit Confirmed, no code changes for 4.13 for Advanced Sessions, also checked the github and they didn’t change any of the subsystem files.

Ok, maybe this log will explain something. It happens after converting my project from 4.12.5 to 4.13. It is impossible to launch it so I had to go back to 4.12.5.
I am using the latest version of the plugin.


Please how can I filter sessions using this plugin?

Those are all errors with the generated files so you likely have incompatible generated files that need to be rebuilt with 4.13. Delete the intermediate directly in the plugin folder and it will rebuild all of them for you.

There is an array for FindSessionsAdvanced that you can add filtering structs too and it will pre-filter results on steams side before sending to you. There is also a filter session results node if you want to filter then further locally (ie: by user input to avoid retrieving the servers all over again).