Advanced Sessions Plugin

[quote=“Dijon, post:1646, topic:30020”]

Thank you for this plugin, it has saved me from having to grind my way through C++. I noticed that you have a separate version for each UE4 version and I was wondering it it’s something specific that changes with each update, or is it a matter of seeing what C++ code Epic broke with their latest update. On the Marketplace, for example, when one sees a plugin, the compatibility is usually something like 4.14-4.17, and when it’s updated to the latest version, it changes to 4.14-4.18. If you stop updating the plugin, would it be difficult to update is myself (i.e. fix compile errors)?

Thank you again for this enormous contribution to UE4 users. It is VERY much appreciated.

Entirely depends on what they changed, generally the subsystems are fairly static but since I provide the pre-compiled binaries I still have to have a zip for each version, otherwise they wouldn’t work.

The source itself rarely requires many changes (ie: 4.17-4.18 required none, just a recompile).

  • That’s awesome. I really hope you can stay with this project until Epic gets off their ■■■■■ and fixes it. For me, they spend too much time working on new features and not enough on fixing or improving the existing ones. Just my $0.02

Hey, very awesome plugin! I have a suggestion: can you add like in GTA Online, crew creation?

[quote=“OAXP, post:1649, topic:30020”]

Hey, very awesome plugin! I have a suggestion: can you add like in GTA Online, crew creation?

Look up online beacons, there is already a plugin that provides blueprint accessibility for them as well.

Could you mock up for me how can i implement steam lobby message support as plugin?

[quote=“CriErr, post:1651, topic:30020”]

Could you mock up for me how can i implement steam lobby message support as plugin?


 Communication within a lobby To send information around within a lobby (chat messages, game start signals, etc.) you need to call [ISteamMatchmaking::SendLobbyChatMsg](https://partner.steamgames.com/doc/api/ISteamMatchmaking#SendLobbyChatMsg), this sends a simple binary message to all users in the lobby. Lobby members need to listen for the callback [ISteamMatchmaking::LobbyChatMsg_t](https://partner.steamgames.com/doc/api/ISteamMatchmaking#LobbyChatMsg_t). After receiving the callback you then can use [ISteamMatchmaking::GetLobbyChatEntry](https://partner.steamgames.com/doc/api/ISteamMatchmaking#GetLobbyChatEntry) to retrieve the contents of the message.

Going to have to bind to some callbacks, basically the same logic as the “OnInviteAccepted” event + any of the asyn nodes for the sending part.

…should actually be pretty easy to implement.

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


 Communication within a lobby To send information around within a lobby (chat messages, game start signals, etc.) you need to call [ISteamMatchmaking::SendLobbyChatMsg](https://partner.steamgames.com/doc/api/ISteamMatchmaking#SendLobbyChatMsg), this sends a simple binary message to all users in the lobby. Lobby members need to listen for the callback [ISteamMatchmaking::LobbyChatMsg_t](https://partner.steamgames.com/doc/api/ISteamMatchmaking#LobbyChatMsg_t). After receiving the callback you then can use [ISteamMatchmaking::GetLobbyChatEntry](https://partner.steamgames.com/doc/api/ISteamMatchmaking#GetLobbyChatEntry) to retrieve the contents of the message.

Going to have to bind to some callbacks, basically the same logic as the “OnInviteAccepted” event + any of the asyn nodes for the sending part.

…should actually be pretty easy to implement.

Im new to all this stuff, so far the issue is to get unique steam id of a session


    // Broadcasts a chat message to the all the users in the lobby
    // users in the lobby (including the local user) will receive a LobbyChatMsg_t callback
    // returns true if the message is successfully sent
    // pvMsgBody can be binary or text data, up to 4k
    // if pvMsgBody is text, cubMsgBody should be strlen( text ) + 1, to include the null terminator
    virtual bool SendLobbyChatMsg( CSteamID steamIDLobby, const void *pvMsgBody, int cubMsgBody ) = 0;

The more I look into subsystem layer, the more I think the person which build it in the way it’s done, figured out its clunky and hard to use, drop developing it and from that time, nobody cared to finish it.

So I was just wondering if anyone has had any luck with getting a steam dedicated server work?

If so could you please point me in a direction

I’ve been following a tutorial for Advanced Sessions by PyroDev on YouTube and, for the most part, everything works as expected. I can create a session, find the session from a second instance of my game (running in a VM), but I can’t join the session. I connected Print String nodes on the On Success and On Failure pins of the Join Session node, and only the On Failure one fires. In parallel, I check if the returned Blueprint Session Result structure is valid and output strings for True (is valid) for False. The output of this step is True (i.e. the session is valid) so I know I must be missing something obvious but I don’t know what other debugging options are open to me. There are only 3 inputs to Join Session – Execute, Player Controller, and the Session Result structure – but I can’t figure out how to fault-find from here. Does anyone else have experience with this problem? Any help would be greatly appreciated.

Update:
Something else that I tried was GetServerName from the Blueprint Session Result structure and print it to the screen. The name displayed is my Steam user name, not the name that I gave the server, which is probably why I can’t join the session. Does anyone have any ideas on where I could go from here to narrow the problem down?

No idea about your problem, it just works for me.

On a topic of lobby messages, i figured it out, right now writing a simple wrapper for some data to pass thru steam matchmaking lobby so one can make actual ingame lobby without joining server by travel into it.

[quote=“CriErr, post:1657, topic:30020”]

No idea about your problem, it just works for me.

On a topic of lobby messages, i figured it out, right now writing a simple wrapper for some data to pass thru steam matchmaking lobby so one can make actual ingame lobby without joining server by travel into it.

You might want to look into UE4 Online Beacons first…

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

You might want to look into UE4 Online Beacons first…

https://docs.unrealengine.com/latest…OnlineBeacons/

The main concern is that I figured out steam, since its easy and have documentation, while beacons and party one spawn tons of questions which doesnt seems to be answered by google search.

hi, **

i just update to 4.18.1
and then when i pakage game it shows:

LogOnline: Display: STEAM: Loading Steam SDK 1.39
LogOnline: Warning: STEAM: Steam API disabled!
LogOnline: Display: STEAM: OnlineSubsystemSteam::Shutdown()

and i can’t create or join online game no more.
please help!

thanks!**

[quote=“huahuapro, post:1660, topic:30020”]

hi, **

i just update to 4.18.1
and then when i pakage game it shows:

LogOnline: Display: STEAM: Loading Steam SDK 1.39
LogOnline: Warning: STEAM: Steam API disabled!
LogOnline: Display: STEAM: OnlineSubsystemSteam::Shutdown()

and i can’t create or join online game no more.
please help!

thanks!**

If it is packaged to shipping then you need the AppID.txt file in order for it to correctly load the subsystem.

If you are using SteamVR and have the HomeBeta enabled than you will need to disable it to run the game unless you are running the game through steam itself, the SteamVRHome Beta uses the steam API and gets in the way of it loading in UE4 if not launched through steam.

Generally for simple testing I package to development as I don’t need to worry about the AppID.txt

After call “Update session” from blueprints, “Find sessions” always return 0. Any suggestions ? Run on single PC without steam.

[quote=“be LSDeath, post:1662, topic:30020”]

After call “Update session” from blueprints, “Find sessions” always return 0. Any suggestions ? Run on single PC without steam.

Make sure you pass in the same extra settings array

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

Make sure you pass in the same extra settings array

Yes, i pass the same extra settings, but it doesn’t work

[quote=“be LSDeath, post:1664, topic:30020”]

Yes, i pass the same extra settings, but it doesn’t work

wait on single pc without steam? Are you using lan or through the editor?

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

wait on single pc without steam? Are you using lan or through the editor?

Run “Launch game” from project icon in project folder and yes, using lan checked