Advanced Sessions Plugin

[QUOTE=;390055]
Is he out of your country? I believe that the default steam app id is region locked unfortunately. People with their own App IDs don’t have that problem.

He was outside of my country (I believe). I tried it on my PC and my daughters and it showed up and you could join. I think Conkerballs is having an issue where if him and a friend both try to host, it does not allow it, but if one stops the other starts hosting. I wouldn’t think steam would cause that, but who knows.

1 Like

[QUOTE=Vahid;390432]
Hi,
Thanks for your Plugin …

I have problem for joining session in mobile devices (Android).

I use UE4 default Node for create session and your Advanced Create Session node but there but i have problem to join the session from other device… I have a log on Success execution on session node and it’s running but level can’t load.

but if i use console command Open {IP Address} every thing is good and i can see other player in level.

please help me how i can solve this problem ? If i need to edit join session node in c++ where i must start ? (I’m beginner in C++)

Thanks a lot.

If you are using the null subsystem you will be able to locally find/join in network but not remotely.

If you are using google play as your online subsystem (or amazon) than the session structure isn’t going to work for you.


IOnlineSessionPtr FOnlineSubsystemGooglePlay::GetSessionInterface() const
{
	return nullptr;
}

They do not have sessions implemented on those platforms (although leaderboards are implemented). This means that you will need to roll with a master server lobby list and query system if you want to do what you are talking about. There is a guy with a thread in this section with a master server list project that should work, he also said that he was going to convert it over to be a subsystem eventually which means that if he implemented it correctly would allow you to use the session nodes with it.

1 Like

Thanks for your reply…

I’m using Use LAN variable as true in both create and find sessions node.

my config is :


[OnlineSubsystem]
DefaultPlatformService=NULL

but i don’t know why the other device can’t join ! when Join Success node executed nothing happened…

I put a print string node for getting log in Playercontroller class and i launch standalone game in PC and i seen when i created new session the host playercontroller class spawned again and received a new playercontroller name on my log, and then when second player using join session node to join level, again both playercontroller restarted and i gave me an new playercontroller name on log . but this log and i think restart not working on device when i launch game on them.

What do you think about this?

Also i test this logs on direct ip mode and everything was good… when i use open mymap?listen level and player contorller restared and when on ther device i use open IPAddress both host and client restarted and get new playercontorller class.

1 Like

So Im not sure what might be going on but we are have a problem finding more then one session even though there are more then one sessions going on at one time.

Is anyone else having that issue?

1 Like

[QUOTE=HughieDM;394756]
So Im not sure what might be going on but we are have a problem finding more then one session even though there are more then one sessions going on at one time.

Is anyone else having that issue?

I just loaded up 4 computers and tested and found each of the 3 seperate sessions.

There are a few things that come to mind:

  1. You are filtering something incorrectly
  2. You have sessions returned set to 1
  3. Your server is hosting multiple game servers with the same connection port
  4. The server builds aren’t the same as the client builds (sessions filter by unique build ID)
1 Like

, quick question, when you end_session, shouldn’t you be able to then create a new one? I have an ingame menu that lets you quit out. When I go to host and load a map, all is good, I quit out, calling end_session, seems fine, but when I go to create advanced session again it fails from that point on… am I missing something?

1 Like

[QUOTE=arbopa;394878]
, quick question, when you end_session, shouldn’t you be able to then create a new one? I have an ingame menu that lets you quit out. When I go to host and load a map, all is good, I quit out, calling end_session, seems fine, but when I go to create advanced session again it fails from that point on… am I missing something?

This is a bit obtuse because of how I named the nodes but it is how Epic handles it, when you have HOSTED a session you need to use their “Destroy Session” node to end the session. The “End Session” node is for the client disconnecting (and isn’t fully tested i forgot I made it :p).

Honestly I should probably take some time to go in and transfer the destroy session code to the end session node and call it if you are the host and if not then call the end session code for the client to make it an all in one node.

1 Like

AH! Will switch that out when I get a chance and see how it goes. Guess I will need to track if you are a host or just a client now… to see which to do. lol. Thanks.

1 Like

[QUOTE]
There are a few things that come to mind:

You are filtering something incorrectly
You have sessions returned set to 1
Your server is hosting multiple game servers with the same connection port
The server builds aren’t the same as the client builds (sessions filter by unique build ID)

So we were wondering if we dont have anything going into the filter it wont filter correct?
also we have results set to 50
we are also not using a dedicated server right now

here is our find servers/hosts macro

dono if we set up something wrong but we are still not finding multiple server

1 Like

Not sure what the point of the “UMG Main Menu Ref” variable in there is that is stored in that BP but you appear to be resetting it to each search result over and over when looping through what was found, could that be your problem?

The rest of the nodes look good, I just can’t think of a reason to be re-assigning that variable over and over.

Otherwise run with the startup command “-log” and paste what it says when finding servers, currently it should print “found server - ping ####” for each server it finds.

You can also try using the standard Find Sessions node and see if that changes anything, but I went back and checked today and it is the same base code just with the filtering changes.

1 Like

I found the issue and it was the umg but all we had to do was add child first… now it works dono why that has to happen first, but it works! thanks

a86e7e31054386f35d1fb666effac318bdfdbb0f.jpeg

My only other issue now is that when someone gets drop or leaves as a client and sometime a server host quits, the destroy session sometimes doesn’t work or takes forever.

not sure if there is anything that can be done about that but the player cant do anything until the session ends for the client or the host destroys there session. Other then quitting the game and restarting and even that has weird results some time like being dropped from games or failing to search for games.

1 Like

Its waiting for confirmation from the client that they know the game is over, I think a custom destroy session node could fix that, like I said above I should probably make my own to merge the client leaving in as well.

1 Like

Thanks for this plugin! =D

1 Like

We have another question that involves the destroy session node or eventually the end session node.

What is the best place to run them?

First thing we try’d was running the destroy session when ever someone would leave a game, but if you did not set it up so that on success you would leave to the main menu they destroy session would never happen and the search for session would never end and creating a games would fail. Main problem with this method was if the client was dropped from a game the session would never be ended for them and the same issue would happen. Even when you connected the leave or quit to on success it would never succeed for the client.

Now we are currently running the destroy session node from our main menu controller into our game instance. the reason being so that we can store a variable on the client side that says weather or not your still in a session and not let the client try and create a game or search for games until there out of there old session. The only issue now is that sometime the end/destroy session doesn’t happen and you have to restart the game to search and create.

we also have for quit on the sever to run destroy session and then quit and sometimes it takes forever and it seems like it wont ever quit. Not sure if there is a better way to do this.

Were just looking for how others set up there destroy sessions and best practices for it.

1 Like

Yeah, clearly the stock built in stuff has some issues, I switched from end to destroy, and still have to quit out to create a new session, otherwise it just errors out each time. Fun.

1 Like

So this wont work for 4.9.2 ?
And if, is there a way to downgrade my engine ?

1 Like

Epics official word on clients leaving was to “Open Level” to a menu level with them and it should exit cleanly. The “End Session” node is an experiment at this time and probably has issues.

1 Like

[QUOTE=Aero;396149]
So this wont work for 4.9.2 ?
And if, is there a way to downgrade my engine ?

? It should work fine with 4.9.2, are you on a blueprint only project trying to package? I might need to reupload for 4.9.2 for packaging.

1 Like

I think so, but im not trying to package, I try to set it up, so that I can use it in my project. I tried 4.8.3 and 4.9 both only showing example blueprints in my Editor. Maybe im blind, cant see my mistake.

//edit: Got it, Thanks for help !

1 Like

[QUOTE=;396290]
Epics official word on clients leaving was to “Open Level” to a menu level with them and it should exit cleanly. The “End Session” node is an experiment at this time and probably has issues.

Same for a host shutting down?

1 Like