Download

Advanced Sessions Plugin

It probably is what messed up your previous one yea, some of the settings get “stuck” on in saved and even make it through to packaged builds.

Hi,

Love the plugin, everything works perfectly. I was wondering if this adds any support for multiple voice channels within a session?

Nope, but you can fake it by muting and unmuting / registering and unregistering players.

Awesome plugin, is there any way to add support for finding out whether a certain (steam) playerID is VAC-banned or not? The Steamworks documentation tells us we should look for it ourselves in the game, I’m not sure how to though and it’s not currently supported in the plugin.

Have a nice day regardless!

Hello,

We have been using Advanced Sessions for some time now (since about 4.10). With 4.12, our project seems to no longer find any sessions, join sessions through steam invites, or anything (it was all working before 4.12).

I’ve noticed that the last posted version was for 4.12.3, though your changelog mentioned 4.12.4. Is there an issue with 4.12.5 or the plugin that caused it to break? Or any particular reason why it would stop working? We’ve checked our configuration files and everything is as it should be, so any suggestions would be helpful.

We used to have a similar issue, but after I learnt what was causing our issue*(me playtesting using separate processes)* we found out that removing the Saved folder fixed the issue for us. While I’m not on 4.12.5 myself yet, it could be worth a try perhaps.

Maybe it’s just a healthy thing in general to remove that folder and have it re-generate from scratch every now and then… :rolleyes:

Yeah it works fine for me in 4.12 (all versions), I am compiling the 4.12.5 version right now actually.

Edit 4.12.5 uploaded

This was it, deleting the Saved folder on all machines got it working again. I’m glad it was so simple. Thank you!

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).

Hi,
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)
{
	ensureAlways(InCreateSessionParams.Player);
	if (InCreateSessionParams.Player)
	{
		UCreateSessionCallbackProxyAdvanced* CreatedSession = UCreateSessionCallbackProxyAdvanced::CreateAdvancedSession(
			InCreateSessionParams.Player->GetWorld(),
			InCreateSessionParams.GenerateSessionSettings(), 
			InCreateSessionParams.Player,
			InCreateSessionParams.MaxPlayersCount, 
			0,
			InCreateSessionParams.bLan);

		ensureAlways(CreatedSession);
		if (CreatedSession)
		{
			SIGN_UP_EVENT(CreatedSession->OnSuccess, &UFreedomInstance::OnCreateSession_Success_Handler);
			SIGN_UP_EVENT(CreatedSession->OnFailure, &UFreedomInstance::OnCreateSession_Failure_Handler);
		}
		else
		{
			ERROR_GAME("Session Creation Failure: couldn't create sessions callback proxy.");
		}
	}
	else
	{
		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:

Edit:
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.