Advanced Sessions Plugin

[QUOTE=JJGG117;749187]
Sorry, AdvancedSessions*

To access the nodes, I tried reparenting my GameInst with AdvancedFriendsGameInst
It doesn’t work, and either way I try it (vice or versa) it removes all the content of one or the other.

I’m just wondering if non-PTT (which I have working) can be controlled by anything other than master volume?

Also with non-PTT can I disable any mic input? with an options checkbox or something?

Not as far as I know (in blueprint) and no

[QUOTE=JJGG117;749224]
How about Mute?
Or is anything possible by editing Engine Content?

You would need the plugin to mute with blueprints only.

Also I think you can change global voice volume, just not per user.

[QUOTE=JJGG117;749241]
Also, reparenting a GameInstance to AdvancedFriendsGameInstance or vice versa just removes all its data and assigns it to the new one :\

THere’s NO WAY it’s possible to combine 2 game instances. One or the other will be forced not to work

I’ve answered this three times now to you…one of the ones you want as the parent needs the other one to be its parent, then your final game instance uses the combined one…

Hi! Does this plugin include the ability of clicking a button opening steam’s own invites UI (not a propietary one)? And the ability to host a STEAM lobby, that everyone from the world can join? If so, cand you give me some instructions on how to create something like this? Thank you in advance, and I hope I didn’t take much from your time. :slight_smile:

[QUOTE=JohnnyZer0;749283]
Hi! Does this plugin include the ability of clicking a button opening steam’s own invites UI (not a propietary one)? And the ability to host a STEAM lobby, that everyone from the world can join? If so, cand you give me some instructions on how to create something like this? Thank you in advance, and I hope I didn’t take much from your time. :slight_smile:

Yes and yes

[QUOTE=JJGG117;749858]
What’s the best way to adding Splitscreen Characters for Online Multiplayer?

AddPlayer…but that doesn’t have anything to do with this plugin.

[QUOTE=JJGG117;749860]
How do I change global voice volume? Is there a node for it?

I honestly don’t remember, you’ll have to check in the audio settings. I know some of the pre-made menu’s have it set via slider.

[QUOTE=JJGG117;749898]
I have been unable to accept and send Steam Invites from Steam Chat in Steam Overlay.

Do I need AdvancedFriendsGameInstance in-use in able to do this?

Yes, that is the only reason that it exists.

[QUOTE=JJGG117;750041]
I’m sorry but does this work with two Engline installed Plugins? Like two Marketplace downloaded plugins? They will reside as Engine-side plugins, not Game-side plugins.

I took one, opened it up, changed the parent to the other one. But it says there will be Data Loss. Basically all this does is change or switch the GameInstance, not combine them.

I’m really struggling to get AdvancedFriendsGameInstance working with my other GameInstance class type. The two separate GameInstances have nodes of their own which I need to use together in one GameInstance. I’m not just trying to switch between one or the other, I’m trying to combine them both. Inherit both of their nodes for me to use.

If you can kindly review the steps with me in greater depth…

I see that both plugins have a Source folder. But none are in Game/Plugins…all are in 4.16/Engine/Plugins/Marketplace
How would you describe “reparenting” ? Going into Class Settings?

Yes, class settings / parent.

The AdvancedFriendsGameInstance is c++ based so it likely needs to be the root parent as your other one is blueprint. Make sure the other GameInstances parent class is listed as “GameInstance” and not “PlatformGameInstance”.

If the original parent is “GameInstance” then you should be entirely safe to set the parent of your second game instance to AdvancedFriendsGameInstance, the “There MAY be data loss” is a warning that always pops up regardless of what you are parenting to.

If the original parent of the second game instance is not a baseline “GameInstance” then you won’t be able to do this, and likely will have to manually merge things if you want them.

[QUOTE=JJGG117;750238]
Well the plugins are installed thru the 4.16/Plugins/Marketplace. They both work fine on their own. When I go to create a new game instance, I find that this game instance’s tooltip says it is C++
But I have a BP only project and individually, your AdvancedFriends and my other game instance work fine.

Both are under GameInstance and are not a child of PlatformGameInstance.

Still reparenting removes the nodes of one or the other as well as from default settings panel.

I assume AdvancedFriends has a public .h class? In there I’m sure it is parented to UGameInstance but still in BP it shows up as AdvancedFriendsGameInstance parent. This is why it removes the other GameInstance as soon as I reparent. As both are C++ working in a BP only project.

I’m not sure the steps to take to make sure they can not conflict classes when I go ahead and reparent in editor. Or even if I was to go ahead and reparent in C++ .h files. How to rebuild, etc. that type of thing. If I go ahead and create a C++ class and rebuild after manually reparenting in one of the C++ .h files, then it builds instantly with no other prints to output log.

I said to make AdvancedSessions the PARENT of the OTHER gameinstance that comes from a plugin…

If the other plugins game instance is c++ then you are out of luck without manual edits.

Hey! So I was watching a tutorial on youtube on how to add advance sessions into your project and everything seemed fine. When I play game in-engine as standalone I can see my friend list from steam and Im able to create server but when I package the server, I don’t think the stuff from advance sessions get added there cuz when i press shift+tab even steam overlay doesnt even come up.

The plugins I only activated were: online subsystem steam, “AdvancedSteamSessions” only, In his new video he made how to package everything but he also enabled “AdvancedSessions” plugin but when I go back to plugins and search for advance sessions plugins nothing shows up. Any help would be appreciated.

Unreal Engine Version: 4.16.3

Also thanks for creating such a cool plugin

[QUOTE=DarkSoul Gaming;750442]
Hey! So I was watching a tutorial on youtube on how to add advance sessions into your project and everything seemed fine. When I play game in-engine as standalone I can see my friend list from steam and Im able to create server but when I package the server, I don’t think the stuff from advance sessions get added there cuz when i press shift+tab even steam overlay doesnt even come up.

The plugins I only activated were: online subsystem steam, “AdvancedSteamSessions” only, In his new video he made how to package everything but he also enabled “AdvancedSessions” plugin but when I go back to plugins and search for advance sessions plugins nothing shows up. Any help would be appreciated.

Unreal Engine Version: 4.16.3

Also thanks for creating such a cool plugin

Did you delete the AdvancedSessions plugin folder? It should show up in your available plugins list.

Also as of 4.17 you won’t be able to remove Advanced sessions but use Advanced Steam Sessions as the Steam Sessions relies on it and will correctly inform you that it needs the former enabled.

[QUOTE=;750445]
Did you delete the AdvancedSessions plugin folder? It should show up in your available plugins list.

Also as of 4.17 you won’t be able to remove Advanced sessions but use Advanced Steam Sessions as the Steam Sessions relies on it and will correctly inform you that it needs the former enabled.

So to be able to enable the “AdvancedSessions” plugin I deleted plugins folder from my project folder and and didnt delete the one from engine level and it worked but I keep facing the same problem.

When I run standalone, it works

and when I run the packaged one to be shipped, it doesnt work

Here are the plugins I have Enabled:
Online Subsystem,
Online Subsystem Steam,
AdvancedSessions,
AdvancedSessionSteam,

Also Im using unreal engine 4.16.x not 4.17.x. Im not sure what the problem is and I also cant figure it out as Im new to unreal engine and still am learning stuff.

EDIT: Im only building it for windows so I have made any c++ bland file in my project, but when I try to do it, it keeps giving me namespace already exists error.

[QUOTE=DarkSoul Gaming;750659]
So to be able to enable the “AdvancedSessions” plugin I deleted plugins folder from my project folder and and didnt delete the one from engine level and it worked but I keep facing the same problem.

When I run standalone, it works:

and when I run the packaged one to be shipped, it doesnt work:

Here are the plugins I have Enabled:
Online Subsystem,
Online Subsystem Steam,
AdvancedSessions,
AdvancedSessionSteam,

SS of plugins enabled:

Also Im using unreal engine 4.16.x not 4.17.x. Im not sure what the problem is and I also cant figure it out as Im new to unreal engine and still am learning stuff.

EDIT: Im only building it for windows so I have made any c++ bland file in my project, but when I try to do it, it keeps giving me namespace already exists error.

To use it in a shipping build you need to add an app_id.txt file in the .exe directory (not the first launcher exe, the actual .exe) that contains your appid or in the case of testing, the default 480 one.

You can package in development to test without doing that if you wish.

Without the app_id.txt file shipping builds won’t work correctly with the Steam Subsystem.

[QUOTE=;750663]
To use it in a shipping build you need to add an app_id.txt file in the .exe directory (not the first launcher exe, the actual .exe) that contains your appid or in the case of testing, the default 480 one.

You can package in development to test without doing that if you wish.

Without the app_id.txt file shipping builds won’t work correctly with the Steam Subsystem.

thanks alot that worked :smiley:

Hi,

I have a similar problem as the last one.
I find sessions in editor, but if I package my project and give it to a friend it mostly doesn´t find a session.
Sometimes it finds something, but not often.
Does somebody know this problem and maybe how to fix it?

Thanks for your help.

Hi ,

First, let me thank you for this plugin! Great stuff you got here.

I tried it yesterday and I have a question regarding the “create session” node. When I use it and create a session on a dedicated server (then **LAN **& DEDICATED SERVER booleans are checked on the node) and set the players to 3, I can see the session and connect the 3 first players to the server. But when a 4th instance of the game looks for the session using the “Find sessions” node, it doesn’t find it. It’s a problem for me because let’s say I have a list of 20 official servers, I want players to be able to see the full list of servers even if they are full.

Did I miss something in the configuration/creation of the session, is it linked to your plugin or is it OSS related (I’m using Null OSS and activated both of your plugins - steam and not steam)

Thank you,
SacriPan!

EDIT: Running 4.16 engine/plugin

[QUOTE=SacriPan;751044]
Hi ,

First, let me thank you for this plugin! Great stuff you got here.

I tried it yesterday and I have a question regarding the “create session” node. When I use it and create a session on a dedicated server (then **LAN **& DEDICATED SERVER booleans are checked on the node) and set the players to 3, I can see the session and connect the 3 first players to the server. But when a 4th instance of the game looks for the session using the “Find sessions” node, it doesn’t find it. It’s a problem for me because let’s say I have a list of 20 official servers, I want players to be able to see the full list of servers even if they are full.

Did I miss something in the configuration/creation of the session, is it linked to your plugin or is it OSS related (I’m using Null OSS and activated both of your plugins - steam and not steam)

Thank you,
SacriPan!

EDIT: Running 4.16 engine/plugin

I don’t do any filtering of full servers anywhere, its OSS related, there is still a ton of things that could be improved with the standard subsystems…

For instance, since you are using the NULL(LAN) subsystem it has this in its code


		// Don't respond to query if the session is not a joinable LAN match.
		if (Session && **IsSessionJoinable(*Session)**)


And IsSessionJoinable is defined with


	const bool bAreSpacesAvailable = Session.NumOpenPublicConnections > 0;

	// LAN matches don't care about private connections / invites.
	// LAN matches don't care about presence information.
	return bIsAdvertised && bJoinableFromProgress && **bAreSpacesAvailable**;

So it throws out all results from servers that are full. Literally changing that single line would fix it for you. Its not even Virtual though so you would have to either directly edit the source, or copy the NULL subsystem module and make changes.

[QUOTE=JJGG117;751656]
I would love to know this too
How do we add full servers to the findGame list?
The Bool on FindGame is useless?
Also,
GetCurrentPlayers from SessionResult DOES NOT return splitscreen players! How do I achieve this?
NumNetworkPlayers returns the correct value. But UpdateSession can’t write current players!

That is because GetNumPlayers for a session is autocalculated from CurrentPlayers and Openslots. I can’t force the subsystem to use my values remotely.

You can add a new custom flag (ExtraSettings) for cPlyrs and store it there instead.

Also its not technically incorrect as is, its listed the number of NETWORK players, not all of which will have multiple local players.

OK, thanks for the answer.

Actually, I just thought of a workaround for the Online servers. There will always be a fixed amount of official servers, and they will always have the same name over time, so I’ll just browse the session results and add the ones that are missing and set the player count to the maximum. I’ll throw in a bogus ping, but who cares, nobody will be able to connect to it anyway ^^
I guess I’ll have to accept this issue for LAN mode, but since the players usually set enough slots upon server creation so their friends can jump in, it shouldn’t be a problem.

Thanks again for all the work you’ve done for this community!

Cheers,
SacriPan!

[QUOTE=SacriPan;751717]
OK, thanks for the answer.

Actually, I just thought of a workaround for the Online servers. There will always be a fixed amount of official servers, and they will always have the same name over time, so I’ll just browse the session results and add the ones that are missing and set the player count to the maximum. I’ll throw in a bogus ping, but who cares, nobody will be able to connect to it anyway ^^
I guess I’ll have to accept this issue for LAN mode, but since the players usually set enough slots upon server creation so their friends can jump in, it shouldn’t be a problem.

Thanks again for all the work you’ve done for this community!

Cheers,
SacriPan!

Since you are doing a source build anyway for dedicated servers you should be able to literally just find that line in OnlineSubsystemNullInterface and replace


return bIsAdvertised && bJoinableFromProgress && bAreSpacesAvailable;

with


return bIsAdvertised && bJoinableFromProgress;// && bAreSpacesAvailable;

and it would return full servers as well for you.

You have to build from source anyway for true dedicated servers, and the check is server side for whether to respond to the information query or not.