Moved my app to 4.20. Having worked fine with 4.19.2, findsessions (built in) and findsessionsadvanced (from AdvancedSessions Plugin) never return any sessions when a server is running. The same blueprints worked fine previously. Anyone else seen this?
It works with -nosteam so it’s Steam specfic. Doesn’t look like many changes in the Steam online subsystem code though.
Edit this is only happening with 4.20 built from source, looking into it.
Same issue here. Code that worked in 4.19 and prior now doesn’t work in 4.20
They did make changes to Steam OSS in 4.20 to add Steam Authentication, though I believe it’s something we have to setup ourselves but there’s no documentation on it.
@ A bit confused by the documentation re authentication though it looks like this is at the join session point rather than when enumerating servers/sessions. Tried enabling auth in the defaultengine.ini and it didn’t help with the findsessions issue.
Thanks for the confirmation that someone else has the same issue - sending a test project to epic tomorrow as they’ve got back about the bug report.
Yeah I just found that. I added the Authentication stuff the my WindowsEngine.ini file, but still unable to find any sessions. My session is definitely being created and registered according to the output log window, but I’m unable to find it on another machine with another Steam User. Session is created on Port 7777 and I get a valid lobby ID. I’m creating my sessions with presence enabled.
I’m going to attempt to package up Shooter Game using my AppID’s and see if I can find any sessions there. Perhaps that way I can see what else needs to be changed between versions.
EDIT: So I’ve just tried this with ShooterGame and I was able to find and join a listen server session. Ping is still shown as 9,999 so that still doesn’t work properly, but at least I was able to join. Going to check my code vs theirs.
I’ve found the problem which is to do with building unreal from source. It’s fine with the prebuilt version. For the moment the work around is to override the buildid in the defaultengine.ini for the project:
In the source there’s a changelist number defined which it uses as the buildID. This is set to 0 in 4.20 which causes the search to ignore the session as it needs to match by buildid for compatibiilty reasons.
Well that explains a lot given that I’m using a source build packaged as an installed build. I’ll give it a try and see if it works. Thanks for reporting back. How did you find this one?
And is it working for you now? I’ve set up those settings in WindowsEngine.ini and it’s still not finding any sessions. I’ve also checked the FNamedOnlineSession and it seems to be coming back with a valid BuildId, though not one I’ve specified anywhere.
No worries, guess I’ll have to try stepping through as well. Thanks for the help either way, looks like that’s a good place to start. Did Bug team get back to you?
np you’re welcome, Yep bug team got back but before I located this specific issue, mailed them it now. Before this they couldn’t repro but if it’s build config related then it’d need a clean get and build to repro anyhow.
BTW if you’re using the placeholder steam ID 480 (Spacewars), you get a load of other people’s sessions in the find results which are then filtered out by buildid so maybe that’s what you saw - someone else’s session.
Nah using my own app ID, getting nothing at all in the session list (keeps coming back empty). I’ll just have to step through and see what’s going on, as far as I can tell I’m not doing anything out of the ordinary. Perhaps it’s not reading config settings from WindowsEngine.ini and falling back to DefaultEngine instead (that would be irritating). Down the rabbit hole we go…
Further update on this. I’ve tested several projects under several different scenarios now, this doesn’t just affect me.
Multiplayer Shootout: Launcher & Source builds work as intended.
ShooterGame: Only Launcher build is able to find sessions. Source build fails.
I’ve tried the fix mentioned by @jimsnomis - still doesn’t solve it for ShooterGame it seems.
Further Update:
It looks like using search filters is what breaks it. So you need to implement the fix provided by jimsnomis for the BuildID, then you also need to ensure that when you search for sessions, you’re not using any search filters.
Finally able to see sessions through steam. Ping is still 9,999… but that’s a challenge for another day.
As mentioned on the 4.20 release thread, we currently have a bug submission for this issue and I’m looking into it personally. I’ve reproduced the issue using the 4.20 release stream from Github and I’m currently narrowing down other versions.
I wonder if epic is going to fix a simple ping on 2020. its been ages and this is not working. maybe they will fix it when they release a game on steam but since they are not going to then no hope to fix this small issue unless you go to the source and change it by yourself.
It’s not actually Epic’s fault technically, It’s actually a limitation of Steam Lobby Servers (which is what Listen Servers are as far as Steam is concerned). Steam doesn’t provide a way for you to retrieve the ping to a lobby, so Epic would have to ping the lobbies themselves. If you use dedicated servers, pings will show up just fine.