Advanced Sessions Plugin

[quote=“VaultedSky, post:2395, topic:30020”]

Hey !

I’ve seen this posted a few times in this thread, but I wanted to ask you a bit about the full servers not showing up on Steam search results.

As you have mentioned, Steam OSS doesn’t return full servers. I’ve asked Epic about this on UDN and they say that shouldn’t happen and the SDK isn’t doing it.
I saw you showed an engine edit for it to work on OSS Null in OnlineSubsystemNullInterface - tried it just in case it would affect Steam and it does not.
Do you have any suggestions on how to solve this? Thank you.

They use “RequestLobbyList” for the steam API call to get the list of lobbies, which has this unfortunate text tagged to it in the Steam SDK documentation:

https://i.imgur.com/rsNeKc3.png

Its not Steam OSS’s fault, its Steam SDK.

Hi guys ! I’m wondering something in the Create Advanced Session node. If i want Allow Join via Presence Friends Only set to true, do I have to let Allow Join Via Presence set to true or false ? Thanks a lot :slight_smile:

1 Like

(post deleted by author)

Hey,Could you please tell me the reason why my session’s state is LAN when I create a dedicated server as WAN mode?

[quote=“War_and_Donuts, post:2381, topic:30020”]

…Currently it appears to utilizing the ‘Filters’ array of the ‘Find Sessions Advanced’ is not working?..

I came here to ask the same question! I’ve been searching everywhere and can’t find any answers. It’s exactly as War and Donuts said here: https://forums.unrealengine.com/comm…77#post1702977

@War_and_Donuts - any chance you got this figured out?

Filter session results works no problem, but providing the session search settings array as the “Filters” input to “Find Sessions Advanced” seems to do absolutely nothing. I’m using the steam online subsystem and I checked the steam SDK - it looks like filtering session searches is supported?

Being forced to use the Filter Session Results node would be a real bummer. That would mean all the clients would have to try to pull down as many sessions as they can fit into memory, and then try to sort through ALL of them to find matching sessions - and they would have to do that on EVERY iteration of the matchmaker - yikes. When people take this approach, what number are you guys using for “Results”? 1,000? 10,000? 100,000? 500,000? It’s really hard to test how actually having that many sessions would impact client performance because while in development I don’t ever have more than a couple sessions of the game up. If it is set too low, that means the client may just happen to pull down sessions that don’t have any matches to the filtering criteria, so they’d get zero results when there actually may be many matching sessions.

TLDR; I would really, really like to figure out how to get the “Filters” on the “Find Sessions Advanced” node to actually work!

…please help?

P.S. Thank you for making this amazing plugin! :slight_smile:

[quote=“faetell, post:2400, topic:30020”]

I came here to ask the same question! I’ve been searching everywhere and can’t find any answers. It’s exactly as War and Donuts said here: https://forums.unrealengine.com/comm…77#post1702977

@War_and_Donuts - any chance you got this figured out?

Filter session results works no problem, but providing the session search settings array as the “Filters” input to “Find Sessions Advanced” seems to do absolutely nothing. I’m using the steam online subsystem and I checked the steam SDK - it looks like filtering session searches is supported?

Being forced to use the Filter Session Results node would be a real bummer. That would mean all the clients would have to try to pull down as many sessions as they can fit into memory, and then try to sort through ALL of them to find matching sessions - and they would have to do that on EVERY iteration of the matchmaker - yikes. When people take this approach, what number are you guys using for “Results”? 1,000? 10,000? 100,000? 500,000? It’s really hard to test how actually having that many sessions would impact client performance because while in development I don’t ever have more than a couple sessions of the game up. If it is set too low, that means the client may just happen to pull down sessions that don’t have any matches to the filtering criteria, so they’d get zero results when there actually may be many matching sessions.

TLDR; I would really, really like to figure out how to get the “Filters” on the “Find Sessions Advanced” node to actually work!

…please help?

P.S. Thank you for making this amazing plugin! :slight_smile:

Little curious what you are using for it, a simple string compare extra setting is working perfectly fine for me, finds the server with the filter correct, doesn’t with it incorrect, filters out all of the extra servers with anything at all in the test app ID (4.24).

I just tested it right now again, though I had also tested on the other guys original report.

Can you test with just a string value? And if you are using something else let me know the value you are attempting to use?

Hello! Since the last epic update from **4.24.1 to 4.24.2, **I am having some issues with the plugin, after create advanced session is triggered the level open for a few frames then go back to the main menu map. I tried the same set up on an empty project and I had the same issue, but when I tried it on an older version it was ok. Let me know if someone is having the same issue! :slight_smile:

thank you for the quick reply!

Per your recommendation I did test with a single string value, and it worked! To be more specific I set the session property string in the extra settings of “Create Advanced Session”, and then in Find Sessions Advanced I used an equal comparison op. I tested with the same string value and the server was found, and a different string value and the server was not found - perfectly as expected.

I also tested with a single int session attribute (since < and > ops are critical to skill based matchmaking), and that also seemed to work.

In my original version I had the following sessions properties: 2 string, 2 byte (for enum values), 1 bool. I haven’t been able to root out what was causing it to not work in the first place for me, but I will continue to test as soon as I have time. If the bytes and bool are the cause of the problem it shouldn’t be to hard to switch those over to strings.

Some additional info I probably should have included up front: I’m using UE 4.24.1 installed from the launcher, which looks like it has v146 of the steamworks SDK bundled in.

[quote=“faetell, post:2403, topic:30020”]

thank you for the quick reply!

Per your recommendation I did test with a single string value, and it worked! To be more specific I set the session property string in the extra settings of “Create Advanced Session”, and then in Find Sessions Advanced I used an equal comparison op. I tested with the same string value and the server was found, and a different string value and the server was not found - perfectly as expected.

I also tested with a single int session attribute (since < and > ops are critical to skill based matchmaking), and that also seemed to work.

In my original version I had the following sessions properties: 2 string, 2 byte (for enum values), 1 bool. I haven’t been able to root out what was causing it to not work in the first place for me, but I will continue to test as soon as I have time. If the bytes and bool are the cause of the problem it shouldn’t be to hard to switch those over to strings.

Some additional info I probably should have included up front: I’m using UE 4.24.1 installed from the launcher, which looks like it has v146 of the steamworks SDK bundled in.

Ah, actually I just checked and the only subsystem currently even using that property for filtering is the steam one, and it only implements Int32,String,Float,Byte values (everything is converted to string in the end anyway). I implemented the full FVariantData as that is what Epic uses on the back end so a subsystem “can” use the full range, and their own subsystem coming up in fact may support all types.

I’ll make a note about which types steam supports for searching in the source, but just use something other than bool.

You should still be able to retrieve values just fine, its just the filtering.

I want to ask why I can ‘t open things after packing with 4.24. The error is that the plug-in can’ t load “LogPluginManager: Error: Unable to load plugin’AdvancedSessions’. Aborting.”. I don 't know where the problem is.

After some more testing I got my find session filtering working as desired after surmounting one additional challenge which I wanted to post here in case it helps anyone else:

It appears each session property set in “Extra Settings” can only have up to one corresponding filter on the find session side. In my case I had an int session property called skill, and I had two filters on it to make a range (one less than, and one greater than). Only one of those two filters was working. So I broke out that single session property into two called skill_floor and skill_ceiling (with the same value), and made a separate corresponding filter for each - now it seems to be working beautifully :smiley:

Thanks again for your help here and making this incredible plugin!

Hello, I’ve been pulling my hair out since Unreal updated from 4.24.0. I’ve been designing my game on my MacBook without a single issue, and your plugin has been amazing! But since I’ve updated to the latest, I’m getting a “rebuild from source manually” error, and my project is shut down. Does anyone have an idea of how to rebuild a plugin on mac? or can you PLEASE upload a 4.24.2 version? I have Xcode, and VS Studio installed, but they don’t seem to do anything. I just have no idea what to do, nor have I found anything online about how to solve this problem. Thanks

[quote=“ksimpson1986, post:2407, topic:30020”]

Hello, I’ve been pulling my hair out since Unreal updated from 4.24.0. I’ve been designing my game on my MacBook without a single issue, and your plugin has been amazing! But since I’ve updated to the latest, I’m getting a “rebuild from source manually” error, and my project is shut down. Does anyone have an idea of how to rebuild a plugin on mac? or can you PLEASE upload a 4.24.2 version? I have Xcode, and VS Studio installed, but they don’t seem to do anything. I just have no idea what to do, nor have I found anything online about how to solve this problem. Thanks

I do not own a mac and cannot pre-compile for one, unsure how you got it without having compiled yourself to begin with. If you open in visual studio and compile the Development Editor build target then you can launch from your UProject like normal.

Does this plugin work with the Oculus subsystem? It works fine for me with DefaultPlatformService=Null. But I want to get the Oculus matchmaking working. If I change the DefaultPlatformService to Oculus, then it creates the session (LAN) but the search fails…

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

I do not own a mac and cannot pre-compile for one, unsure how you got it without having compiled yourself to begin with. If you open in visual studio and compile the Development Editor build target then you can launch from your UProject like normal.

For some reason on mac, visual studio doesn’t seem to work that way. I’m also not too insanely familiar with the ins and outs of VS. BUT, every time you release a version on here, I have no issues with it whatsoever as long as it matches whatever version you’ve released. If you were to release a compiled 4.24.2 version on here, it would work without any issue. It doesn’t have to be compiled for Mac, it just has to match whatever version of the engine it’s working with. If you by chance are able to support us Mac guys and drop a 4.24.2 version on here, I would be eternally thankful!

I don’t know if this is still active, so I integrated steam with the game using the advanced sessions. However for some reason, now the LAN option on the advanced sessions do not work. Where if I create an advanced session with LAN, than another client finds a session with LAN, it doesn’t return any sessions. Any ideas why?

[quote=“ksimpson1986, post:2410, topic:30020”]

For some reason on mac, visual studio doesn’t seem to work that way. I’m also not too insanely familiar with the ins and outs of VS. BUT, every time you release a version on here, I have no issues with it whatsoever as long as it matches whatever version you’ve released. If you were to release a compiled 4.24.2 version on here, it would work without any issue. It doesn’t have to be compiled for Mac, it just has to match whatever version of the engine it’s working with. If you by chance are able to support us Mac guys and drop a 4.24.2 version on here, I would be eternally thankful!

4.24.2 is the current uploaded version

Hi, anyone knows its possible to get a steam user’s avatar without being friends?

[quote=“BulleTime, post:2413, topic:30020”]

Hi, anyone knows its possible to get a steam user’s avatar without being friends?

Its named that, but it can get anyones avatar, just pass in the unique ID.

Hello can anyone help me figure out why I can’t package my small demo project made with this plugin? My project is just the default ThirdPersonTemplate with this plugin installed.
Engine version 4.24.2
AdvancedSessions Plugin installed at project level: C:\Users\Cipher5\Documents\Unreal Projects\Cipher5SteamConnect\Plugins\AdvancedSessions

I get this message in the log in yellow text while packaging:


UATHelper: Packaging (Windows (64-bit)):   LogPluginManager: Warning: Plugin 'AdvancedSessions' exists at 'C:/Users/Cipher5/Documents/Unreal Projects/Cipher5SteamConnect/Plugins/AdvancedSessions/AdvancedSessions/AdvancedSessions.uplugin' and 'C:/Users/Cipher5/Documents/Unreal Projects/Cipher5SteamConnect/Plugins/AdvancedSessions/AdvancedSessions.uplugin' - s
econd location will be ignored
PackagingResults: Warning: Plugin 'AdvancedSessions' exists at 'C:/Users/Cipher5/Documents/Unreal Projects/Cipher5SteamConnect/Plugins/AdvancedSessions/AdvancedSessions/AdvancedSessions.uplugin' and 'C:/Users/Cipher5/Documents/Unreal Projects/Cipher5SteamConnect/Plugins/AdvancedSessions/AdvancedSessions.uplugin' - second location will be ignored

Is this the reason my project won’t package?

The Errors in red are:


UATHelper: Packaging (Windows (64-bit)): ********** COOK COMMAND COMPLETED **********
UATHelper: Packaging (Windows (64-bit)): ********** STAGE COMMAND STARTED **********
UATHelper: Packaging (Windows (64-bit)): ERROR: Stage Failed. Missing receipt 'C:\Users\Cipher5\Documents\Unreal Projects\Cipher5SteamConnect\Binaries\Win64\Cipher5SteamConnect.target'. Check that this target has been built.
UATHelper: Packaging (Windows (64-bit)):        (see C:\Users\Cipher5\AppData\Roaming\Unreal Engine\AutomationTool\Logs\X+Program+Files+Epic+Games+UE_4.24\Log.txt for full exception trace)
UATHelper: Packaging (Windows (64-bit)): AutomationTool exiting with ExitCode=103 (Error_MissingExecutable)
UATHelper: Packaging (Windows (64-bit)): BUILD FAILED
PackagingResults: Error: Missing UE4Game binary.You may have to build the UE4 project with your IDE. Alternatively, build using UnrealBuildTool with the commandline:UE4Game <Platform> <Configuration>
LogSlate: Window 'Message' being destroyed

Thanks for taking a look

UPDATE:
Solved my problem. I installed it wrong I guess lol. I wish there was better instructions posted on how to install this plugin. I found this video and followed the install process and it works now :slight_smile: [ue4] Update to 4.21 & small Improvements & THX - Advanced Session - Steam Multiplayer #35 - YouTube