Advanced Sessions Plugin

Hi, is it safe to use the 4.25.0 version of Advanced Sessions with UE4 version 4.25.1? When I go to enable the plugin it says that the version is on 4.24, but this doesn’t seem to matter because all the plugin functionality seems to work in the editor.

[quote=“cherking, post:2543, topic:30020”]

Hi, is it safe to use the 4.25.0 version of Advanced Sessions with UE4 version 4.25.1? When I go to enable the plugin it says that the version is on 4.24, but this doesn’t seem to matter because all the plugin functionality seems to work in the editor.

I just forgot to edit the uplugin file to show the correct engine version is all, it will work fine.

For some reason find server won’t return results of full servers. I’ve tested this locally using the “lan” option. I start with a server and 2 clients. connections are 2. I have the server host a game, both clients search and can find the match. One client joins and the other client refreshes. The server is no longer listed. The “show only empty servers” is not ticked, and min slots is set to 0. The only filter I’m using is “GAMENAME” and that wouldn’t change.

Also some odd behaviour/bug here. I create a session with 2 connections (host/client). I start PIE (or standalone from a short cut) 3 users. Server creates a game.

1st and 2nd client both search for games, they find the game listed with 1/2 users.

1st client joins the game, bringing it to 2/2. at this point:

if the 2nd client clicks the ‘join’ button from the existing server entry it can still join the game. Even though it should be at capacity of 2/2. In PIE the user is just added and that’s that. In standalone launched from a short cut, the third player has their client screen lock up. Their log screen shows that it is attempting to join the game, it’s received the game mode, etc. but it never actually joins. The host and 1st client do not show them as joined, but the 2nd client is completely locked and it can only be forced closed.

shouldn’t this be automatically rejecting connections when at capacity?

[quote=“crossmr, post:2546, topic:30020”]

For some reason find server won’t return results of full servers. I’ve tested this locally using the “lan” option. I start with a server and 2 clients. connections are 2. I have the server host a game, both clients search and can find the match. One client joins and the other client refreshes. The server is no longer listed. The “show only empty servers” is not ticked, and min slots is set to 0. The only filter I’m using is “GAMENAME” and that wouldn’t change.

[quote=“crossmr, post:2547, topic:30020”]

Also some odd behaviour/bug here. I create a session with 2 connections (host/client). I start PIE (or standalone from a short cut) 3 users. Server creates a game.

1st and 2nd client both search for games, they find the game listed with 1/2 users.

1st client joins the game, bringing it to 2/2. at this point:

if the 2nd client clicks the ‘join’ button from the existing server entry it can still join the game. Even though it should be at capacity of 2/2. In PIE the user is just added and that’s that. In standalone launched from a short cut, the third player has their client screen lock up. Their log screen shows that it is attempting to join the game, it’s received the game mode, etc. but it never actually joins. The host and 1st client do not show them as joined, but the 2nd client is completely locked and it can only be forced closed.

shouldn’t this be automatically rejecting connections when at capacity?

None of this has to do with this plugin for the record, I don’t change the subsystem implementations. There are going to be a lot of questions like this that I don’t have a resolution or answer for since I can’t touch or change the base subsystem code, these type of issues should be direct bug reports to Epic.

Hey

I’m having an issue. I set up Steamworks and the steam online subsystem. If I am reading player name the PlayerState I am getting the correct steam name. The goal is now to get the SteamID and replicate it to all the clients once a player connects, so I can read the steam avatar for the individual players (e.g. for a Scoreboard). Unfortunately when I try to get the unique net ID the blueprint below always prints the name and SteamID of the listen server player and not the connecting clients.


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

Does anyone have an idea, what I am doing wrong here? Is this just not possible?
I am using the developper SteamAppID 480.

[quote=“bldy_ch, post:#Post:0x0000559745caeb08, topic:30020”]

Hey

I’m having an issue. I set up Steamworks and the steam online subsystem. If I am reading player name the PlayerState I am getting the correct steam name. The goal is now to get the SteamID and replicate it to all the clients once a player connects, so I can read the steam avatar for the individual players (e.g. for a Scoreboard). Unfortunately when I try to get the unique net ID the blueprint below always prints the name and SteamID of the listen server player and not the connecting clients.


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

Does anyone have an idea, what I am doing wrong here? Is this just not possible?
I am using the developper SteamAppID 480.

That struct doesn’t replicate anything, get the player array from the gamestate and get the unique id off of the player info structure.

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

None of this has to do with this plugin for the record, I don’t change the subsystem implementations. There are going to be a lot of questions like this that I don’t have a resolution or answer for since I can’t touch or change the base subsystem code, these type of issues should be direct bug reports to Epic.

Ah thanks, I wasn’t sure since I was using the 'advanced" nodes. In terms of servers being full, I ended up implementing something in c++ in prelogin to check if the server is full and reject it there. No solution to returning full servers yet, but I’ll leave this note here about checking for a full server in case anyone else runs into this issue and is curious where to look to solve it.

Thanks for this plugin! :smiley: But I’m having a problem… :frowning:

After packaging, the game don’t launch, but when I test in “Standalone Game”, the game and plugin works fine (can acess friends list, send invite, etc…).

My version is 4.24.3. I can’t find the solution…

Already tested:

  • Package 64 bits
  • Package 32 bits
  • Package for shipping and development
  • Create another project, without the plugin and worked (so it’s probably something with the plugin…)

Thanks!

[quote=“zaguito, post:2552, topic:30020”]

Thanks for this plugin! :smiley: But I’m having a problem… :frowning:

After packaging, the game don’t launch, but when I test in “Standalone Game”, the game and plugin works fine (can acess friends list, send invite, etc…).

My version is 4.24.3. I can’t find the solution…

Already tested:

  • Package 64 bits
  • Package 32 bits
  • Package for shipping and development
  • Create another project, without the plugin and worked (so it’s probably something with the plugin…)

Thanks!

Solved! Just followed the REAL instructions and added the C++ and compiled.

Are you still thinking of exposing the kick player in BPs?

Hello, why I downloaded the steam version 4.25 for unreal engine.And when I went to plugins, the plugin is shown as version 4.24 in the session?

Hi. Thank you for the plugin. I am lost on figuring out why I cant find any sessions in packaged game. I can find sessions when in standalone, but not packaged. Where do I begin to look for the answers? Thanks

[quote=“Cipher5, post:2554, topic:30020”]

Are you still thinking of exposing the kick player in BPs?

Pushed a commit for 4.24+ advanced sessions

Adds BP nodes to the library to kick / ban players, since the built in game session does not actually implement ban player, I also provide a very basic naive implementation with a custom game session that bans for the duration of the session (have to set game session in your game mode to the AdvancedGameSession to use it). A real implementation would save out the net id and also perform the check in the game mode before spooling up a player for login, but i didn’t want to override game mode as well.

Adding nodes for this was on my todo for a long time, but was buried under vr work, let me know if there are any other requests related to the game session since there is an override now. (still don’t want to provide a gamemode override for a base class unless I have too).

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

let me know if there are any other requests related to the game session since there is an override now. (still don’t want to provide a gamemode override for a base class unless I have too).

Is there anything that can be done for the server slots? Is it me or public connections/slots don’t do anything? I had to add my own “MaxPlayers” Int and do a check against the current players. I wish there was an easy way to not let players join if the server is full. Right now I have my project check the server capacity before the player joins and if there is room it lets them, but the problem is if 1 slot is left and 2 players click join at the same time they both make it in. It would be nice to have a node that handles clients connection on a full server using the public connections/slots and have a on full rejection output on a node. Just wishing here lol, awesome work by the way and thanks for all the time you put into it.

[quote=“FAXCORP, post:2556, topic:30020”]

Hi. Thank you for the plugin. I am lost on figuring out why I cant find any sessions in packaged game. I can find sessions when in standalone, but not packaged. Where do I begin to look for the answers? Thanks

I had the same problem. For me, the solution was simple (just create a blank C++ class and compile):

  1. Extract the file inside the zip to ProjectFolder/Plugins/AdvancedSessions (create /Plugins/AdvancedSessions if you have to) Note that post 4.20 you shouldn’t be installing it in the engine directory anymore due to some changes epic made that are hard to work around with me having multiple modules.
  2. If installed at the project level you need to Create a C++ blank file in the editor to allow it to package out the plugin - If installed at the engine level you do not need to do anything else.
    NOTE If packaging for a platform other than windows you may need to have the plugin installed at the project level, as I can only package out for windows and not Mac / Mobile.

,i’ve done digging about the OnSessionInviteReceived, and finded out that you said: “Not yet implemented by Epic, do not use this event yet!!”

Years passed and Epic didn’t impremented this yet? (My digging says NO) Is there a way to get this working (C++ or coding)? (I’m complete newby in C++, just know a few things in BP.)

It’s very bittersweet that we can’t accepted the invited inside the game, just with the overlay…

Thanks for your wonderful work!! :wink:

Does anyone know where this text saying “NO REGISTERED SESSIONS!” is coming from and how to disable it? When I use Steam it’s gone but right now I’m testing using my LAN. Is this part of the Advanced Sessions Plugin or part of the engine code? Thanks

Untitled-2.jpg

I created this issue on github:[https://github.com//Advanc...lugin/issues/1

I should mention that I am using a custom online subsystem and here is my find sessions function](https://github.com//AdvancedSessionsPlugin/issues/1)

Hello your Plugin is a great addition for every one how doesn’t know to code in c++ like myself! I just implemented in to a project and every thing works great in the stand-alone game, my only problem is that it doesn’t work in the build project (doesn’t connect to steam and multiplayer is also not possible). Did some one else experience this kind of issue in 4.24.3?

[quote=“poke1103, post:2561, topic:30020”]

I created this issue on github:[https://github.com//Advanc...lugin/issues/1

I should mention that I am using a custom online subsystem and here is my find sessions function](https://github.com//AdvancedSessionsPlugin/issues/1)

In that you appear to have resolved it as an issue on your custom subsystem correct?