Advanced Sessions Plugin

[QUOTE=;691057]
Whatever ports you are using for the dedicated…for steam: Steam Support :: Required Ports for Steam

Overflow session flags is still there yes, shorten as many flag names as you can, pack information as tightly as possible.

I don’t actually know what that means though. Does it stop people from connecting? What are session flags?

Also, how does GetNetMode() == NM_Dedicated work? Is it based on the build? If I build as a dedicated it will be considered a Dedicated net mode? If I package normally would it just be NM_Client or something similiar? I want to know if there is a way to save files only to the server (basically, only call game mode “CreateSession” on server, only save files on server, etc). Would putting if(GetNetMode() == NM_Dedicated) {} make it so that whatever is within the curly braces will only be called on the server? I’m talking specifically about the dedicated server. There are certain things I don’t want the client to ever run. Like my file saving…etc

[QUOTE=poke1103;691086]
I don’t actually know what that means though. Does it stop people from connecting? What are session flags?

Also, how does GetNetMode() == NM_Dedicated work? Is it based on the build? If I build as a dedicated it will be considered a Dedicated net mode? If I package normally would it just be NM_Client or something similiar? I want to know if there is a way to save files only to the server (basically, only call game mode “CreateSession” on server, only save files on server, etc). Would putting if(GetNetMode() == NM_Dedicated) {} make it so that whatever is within the curly braces will only be called on the server? I’m talking specifically about the dedicated server. There are certain things I don’t want the client to ever run. Like my file saving…etc

You should probably look up how Authority works in the engine rather than asking me, a full tutorial / documentation reading would be faster and more informative.

Session flags are just additional parameters for the server that the client retrieves with the session information.

[QUOTE=;691091]
You should probably look up how Authority works in the engine rather than asking me, a full tutorial / documentation reading would be faster and more informative.

Session flags are just additional parameters for the server that the client retrieves with the session information.

I already know how authority works. I just don’t know if there is a way to differentiate between what is a SERVER BUILD (keyword: build) and a client. If a client connects to map and they are not connected to the server they become the authority. However, I don’t want this automatic functionality. A server RPC will still run in this instance, simply because the default option unreal has is to make the client authority. if (Role == Role_Authority) {} only detects whether or not that actor has authority over that object. What I need is to know if there is a difference between GetNetMode() and Role, and what the difference is.

Edit:

You know I think I’m retarded. AActor::GetNetMode | Unreal Engine Documentation <– This tells me what I needed to know.

Uhm, so for some reason the FindAdvancedSessions() is just failing. What steps should I be taking to debug this?

[QUOTE=poke1103;691124]
Uhm, so for some reason the FindAdvancedSessions() is just failing. What steps should I be taking to debug this?

Check the log, any plugin related errors show up in there.

[QUOTE=;691128]
Check the log, any plugin related errors show up in there.

I feel like it’s setup right though. http://i.imgur.com/yoq5Kca.png

That’s all I did lol. Yet it’s going to the print “Fail” node

[QUOTE=poke1103;691132]
I feel like it’s setup right though. http://i.imgur.com/yoq5Kca.png

That’s all I did lol. Yet it’s going to the print “Fail” node

For finding you actually need a player controller, its the dedicated servers that don’t. Again, the editor log will say why it failed.

[QUOTE=;691137]
For finding you actually need a player controller, its the dedicated servers that don’t. Again, the editor log will say why it failed.

Sorry. Thanks, I fixed it!

[QUOTE=;691137]
For finding you actually need a player controller, its the dedicated servers that don’t. Again, the editor log will say why it failed.

So uhm I wanted to verify… This does work on Steam right? Because it’s only showing up on LAN. Also, even though I have no “extra settings” I’m still getting the STEAM OVERFLOW SETGAMEPLAY TAGS thing.

[QUOTE=poke1103;691267]
So uhm I wanted to verify… This does work on Steam right? Because it’s only showing up on LAN. Also, even though I have no “extra settings” I’m still getting the STEAM OVERFLOW SETGAMEPLAY TAGS thing.

Overflow can happen just from the built in game name and flags that epic uses on a dedicated server, I know…its messed up. But its not something I can fix in a plugin without re-creating steam subsystem itself. There are several different direct engine modifications than can help, like lowering the default game name and other flags to smaller values.

And yes it works on steam, and yes others have gotten it working with dedicated servers.

[QUOTE=;691269]
Overflow can happen just from the built in game name and flags that epic uses on a dedicated server, I know…its messed up. But its not something I can fix in a plugin without re-creating steam subsystem itself. There are several different direct engine modifications than can help, like lowering the default game name and other flags to smaller values.

And yes it works on steam, and yes others have gotten it working with dedicated servers.

Mine seems to be getting the server name from “OnlineSessionAsyncServerSteam.cpp” I’m sorry if this sounds really dumb but where should I be looking for these “flags” do you mean Session flags? lol

[QUOTE=poke1103;691271]
Mine seems to be getting the server name from “OnlineSessionAsyncServerSteam.cpp” I’m sorry if this sounds really dumb but where should I be looking for these “flags” do you mean Session flags? lol

There are constants for server names, I can’t recall where they are at the moment.

I’d also note that you can’t test steam dedicated or not dedicated with two instances on the same computer and if on different computers you NEED the correct ports open for a dedicated server as it doesn’t have NAT punchthrough.

[QUOTE=;691275]
There are constants for server names, I can’t recall where they are at the moment.

I’d also note that you can’t test steam dedicated or not dedicated with two instances on the same computer and if on different computers you NEED the correct ports open for a dedicated server as it doesn’t have NAT punchthrough.

Yeah for some reason mine is only showing on LAN (I have it on a laptop with a different steam account logged in). Whenever I try to connect, it just reloads the main menu I did(open steam.SteamServerID(long ID):port). I passed the Session search results into a button when on click it uses the session result to call JoinSession() and nothing happens.

[QUOTE=poke1103;691434]
Yeah for some reason mine is only showing on LAN (I have it on a laptop with a different steam account logged in). Whenever I try to connect, it just reloads the main menu I did(open steam.SteamServerID(long ID):port). I passed the Session search results into a button when on click it uses the session result to call JoinSession() and nothing happens.

Dedicated servers don’t use the steam client at all, they also need to be specifically built for via a special build target (requires a soruce copy of the engine and modifications). If you are trying to connect to a dedicated server that is just a normally packaged project then it won’t work, you will have to use a standard client server instead.

Try this guide

[QUOTE=;691454]
Dedicated servers don’t use the steam client at all, they also need to be specifically built for via a special build target (requires a soruce copy of the engine and modifications). If you are trying to connect to a dedicated server that is just a normally packaged project then it won’t work, you will have to use a standard client server instead.

Try this guide

I already know all of this. Steam has its own Server Browser and if you have steam enabled on the client then you are unable to connect to the server. I can connect using OnlineSubsystemNull perfectly fine. It’s only steam that doesn’t work.

[QUOTE=poke1103;691493]
I already know all of this. Steam has its own Server Browser and if you have steam enabled on the client then you are unable to connect to the server. I can connect using OnlineSubsystemNull perfectly fine. It’s only steam that doesn’t work.

Wait…You are doing Open on a level from the client with the steam ID/port? Clients don’t open the level, the server does, the client will automatically switch levels on joining.

[QUOTE]

Whenever I try to connect, it just reloads the main menu I did(open steam.SteamServerID(long ID)ort). I passed the Session search results into a button when on click it uses the session result to call JoinSession() and nothing happens

On the client you don’t use the open command, just join session. If you have valid open query ports and a valid session search result than it should work just fine.

[QUOTE=;691510]
Wait…You are doing Open on a level from the client with the steam ID/port? Clients don’t open the level, the server does, the client will automatically switch levels on joining.

On the client you don’t use the open command, just join session. If you have valid open query ports and a valid session search result than it should work just fine.

Yeah, so I have it coming up in my custom server browser and I passed the “Blueprint Session Search Result” into my button and onclick it calls JoinSession() => With the passed session result gathered from (FindAdvancedSessions()) However, it doesn’t do anything when I click it. And… its inaccessibly outside of LAN.

[QUOTE=poke1103;691523]
Yeah, so I have it coming up in my custom server browser and I passed the “Blueprint Session Search Result” into my button and onclick it calls JoinSession() => With the passed session result gathered from (FindAdvancedSessions()) However, it doesn’t do anything when I click it. And… its inaccessibly outside of LAN.

Not sure what to tell you, unless the server is throwing out its params (buffer overflow) so its unfindable and assuming you have all of the correct ports open, it should work.

Though I will note that this is what Steam says about dedicated servers behind the same router

[QUOTE]
Important:
If you have a server and a client behind the same router, the client cannot connect to the server through the server browser. In fact the server may not be visible in the server browser of the client.
The client must connect to the server using the server’s internal IP address.

IE: IP address of the local network, which the subsystem would not be returning.

[QUOTE=;691540]
Not sure what to tell you, unless the server is throwing out its params (buffer overflow) so its unfindable and assuming you have all of the correct ports open, it should work.

Though I will note that this is what Steam says about dedicated servers behind the same router

IE: IP address of the local network, which the subsystem would not be returning.

Okay yeah that makes sense… So I would have to type open 192.168.1.157 <– my laptop ip

[QUOTE=;687631]
It should work, I can run some tests tonight, but the last time I went over the voice nodes they were fine. If it doesn’t work then its something that the engine needs fixed on the back end.

At least on steam it directly checks if there are compressed voice bytes ready to send out, so they actually need to be talking at the time.

, did you have some time to test this?