Advanced Sessions Plugin

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.

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.

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

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.

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.

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 ← my laptop ip

mordentral, did you have some time to test this?

not yet, will try to get to it, but there really isn’t something I can change on the plugin side to fix a bug with it.

Is there a way to create a session that requires a password? I’ve been implementing it myself with a bool and a string in extra settings, but in that case the validation is entirely client-side. I’m not too worried about hacked clients but I could see it being an issue for some games.

Thanks for the plugin, it’s awesome!

hi! sorry if this have been asked before but the plugin folder is 1.28GB… wich seem pretty overkill for just code. Is there any way of cutting down the size and only keep the strict minimum required to have the plugin working?

Its not just code, it is all of the binaries as well, also the zipped download is 94mb and the repository (source only) is 120mb with history or 84kb with just the zip download.

Your folder being 1.28 gb is because Epic is creating all of the intermediate files, these aren’t packaged out to the executable when packaging and there isn’t anything I can do about them, they are generated locally by unreal engine during the build process and are used during development.

Wow! thanks for the fast reply. The size was bothering me because I backup my project very often and the size of the backup just sky rocketed. Well if there is nothing to do about it… thanks again for the fast answer :slight_smile:

I can’t get is local player talking to work either currently in Lan or Steam. Sadly as part of the VoiceInterface there isn’t much I can do about it.

It’s always returning 0

GetMaxPlayers() works fine.

I think it needs to be return Result.OnlineResult.Session.NumOpenPublicConnections; Might want to change this?

Num open public connections is the total slots available not the current number of players. And player counts aren’t correct from dedicated servers currently, they aren’t actually storing them.

That also isn’t my function, its epics.

NumPublic (total slots) - NumOpenSlots (slots available) == Num Slots used