Advanced Sessions Plugin

[QUOTE=Gabeee;483752]
Hello, I didn’t seem to find it in the thread, can you use it for commercial project? I have a really hard time with the basic session nodes so I was wondering if I could use this plugin. It’s freaking awesome

I haven’t attached any requirements what so ever to it, feel free to use for whatever you want.

1 Like

[QUOTE=;483769]
I haven’t attached any requirements what so ever to it, feel free to use for whatever you want.

Thank you very much! I really appreciate it!

1 Like

I remade every session based parts in my blueprints but I think I found a bug of some sort, not sure yet. When I use the UpdateSession node the players gets mixed up or something. The players/maxplayers goes -(Original Max - 1)/0 for me and yes it goes - and always Original - 1, any idea what can it be? sorry if my explanation was hard to understand, I can show pics if it’s needed. (In case I don’t use the UpdateSession node everything is fine (but I really want to update it cause I have a loading screen that shows a picture of the map, also the server lister shows the gamemode and map that’s currently active.)

Edit:
Now that I manually set 12, it say 5/12 when I’m alone on the server.

1 Like

[QUOTE=;483696]

Onlinesubsystem NULL also supports voice chat, and subsystem null can be used with direct IP connections. You are free to rip the voice chat stuff from the null subsystem and use it yourself, but this plugin only supports interfacing through a subsystem.

Here is your easy way out (and also the one that follows UE4’s coding conventions), take the NULL subsystem and make a copy of it’s files, rename it to “MYMASTERLISTSubsystem” and change the server searching code to refer to your server instead of how it currently is implemented. Keep the UniqueID implementations as they are now and interface them with your master server, then the voice chat that is part of NULL will plug right in and all of Epics and my blueprint nodes will work and the game data that gets send with player states also gets populated correctly.

The null subsystem is a base to build off of, use it.

Thank you so much for your reply! It is very thoughtful and inspiring, and I truly appreciate it!

However, I have a minor question. Probably I misunderstand some knowledge somewhere. I thought that OnlineSubsystems (including NULL) and “open IPAddress” are two separate (i.e. parallel) approaches. So I do not entirely understand how it is possible that “subsystem null can be used with direct IP connections”. Could you please explain it a little bit? For example, do you mean that executing command “open IPAddress” can take a client into a specific Session on a server? Or can we use voice chat with only “open IPAddress” (i.e. without Sessions at all)? I don’t think we can do these two things, right? Or do you mean that the usage of direct IP connections can apply at both LAN and Internet scales? Thank you again!

1 Like

Problem seem to be solved through this :

1 Like

Hi and thank you for a great plugin. I am having a lot of problems trying to get dedicated server to work with Steam. Right now the dedicated server shows up in steam’s server browser but Advanced Find Server node cant find the server at all. The only warning I am getting from the logs is that “session callback player state not found”. However I am not sure what I am doing wrong. Can anyone help with this or verify that they got dedicated servers to work with Steam? I am using presence false and dedicated true.

1 Like

[QUOTE=xinran;484329]
Thank you so much for your reply! It is very thoughtful and inspiring, and I truly appreciate it!

However, I have a minor question. Probably I misunderstand some knowledge somewhere. I thought that OnlineSubsystems (including NULL) and “open IPAddress” are two separate (i.e. parallel) approaches. So I do not entirely understand how it is possible that “subsystem null can be used with direct IP connections”. Could you please explain it a little bit? For example, do you mean that executing command “open IPAddress” can take a client into a specific Session on a server? Or can we use voice chat with only “open IPAddress” (i.e. without Sessions at all)? I don’t think we can do these two things, right? Or do you mean that the usage of direct IP connections can apply at both LAN and Internet scales? Thank you again!

NULL searches for local (LAN) sessions and when you join a session it directly connects to the IP of it. It should be fairly simple to modify it to use your master server to find sessions instead is what I was trying to say.

NULL is missing many of the features of the full subsystems but you can fill those out as required and NULL DOES support voice.

1 Like

Thank you! Now I understand your suggestion. Really makes sense. I am going to look at the implementation details. You are very kind. Thank you again!

1 Like

Thanks for the response! To clarify, the bool is always returning True, even though none of my Steam friends are playing the game I am working on. Also, I did understand that it was Game and not Server :slight_smile:

Another question, do you think you will add support for such things as “View Profile” and “Send Message”?

1 Like

[QUOTE=thevfxguy13;485762]
Thanks for the response! To clarify, the bool is always returning True, even though none of my Steam friends are playing the game I am working on. Also, I did understand that it was Game and not Server :slight_smile:

Another question, do you think you will add support for such things as “View Profile” and “Send Message”?

There are a few additional things I can add around that area, many of the functions are not implemented in every subsystem so it is hit and miss and I tend to focus on steam enabled features as it is the largest user base normally (plus other subsystems remain kind of broken).

I’ll see what I can add today while looking at the “In same game” issue.

Edit Found the problem with “InSameGame”, fixed it and also went ahead and exposed ALL of the presence info to the friends struct now as a member “PresenceInfo” struct. I have kept the same variables in the original FBPFriendInfo structure though so it won’t break peoples node layouts. Its just duplicating one byte and one bool per friend so it shouldn’t be a big deal.

1 Like

Hi, so i’m using 4.8.3 (don’t ask why)

Anyway, long and short of it I just can not get this thing to compile (i’m using the 4.8.3 source branch on git), i’ve made sure that “OnlineSubsystem, OnlineSubsystemUtils, OnlineSubsystemSteam, AdvancedSessions” are all in the PublicDependencyModuleNames

however at build time I get

[QUOTE]
1>REDACTED\plugins\advancedsessions\source\advancedsessions\classes\AdvancedFriendsInterface.h(4): fatal error C1083: Cannot open include file: ‘OnlineSubSystemHeader.h’: No such file or directory

and absolutely nothing I do seems to solve this, anybody else has this issue or know how to fix?

1 Like

Uploaded new version

  • Fixed bIsInSameGame and added more presence related information to the friendinfo struct (two of the presence fields are both in the main struct and the presenceinfo struct, this is to prevent breaking currently working nodes, it is only two bytes overlap anyway).

  • Exposed missing ExternalUIInterface functions to BP with the AdvancedExternalUI blueprint node set. This includes using built in UI’s to the subsystem to invite friends to sessions, view the profiles of players, load up websites and a few more things.

  • Set the default values for the UpdateSession node to sane numbers but the correct usage is still to set all of the pins when using it.

  • Exposed the NumPrivateConnections variable to both the create and update session nodes (not sure how I originally missed this).

  • Last thing to note is that I updated the examples blueprint to have all of the missing and new nodes and to fix a few areas that have changed over the versions, it should be a far better reference now.

The new ExternalUI Nodes

1 Like

Thanks for the quick update and for all of your contributions! The new features will definitely be a big help.

1 Like

[QUOTE=GotSomePills;486813]
Hi, so i’m using 4.8.3 (don’t ask why)

Anyway, long and short of it I just can not get this thing to compile (i’m using the 4.8.3 source branch on git), i’ve made sure that “OnlineSubsystem, OnlineSubsystemUtils, OnlineSubsystemSteam, AdvancedSessions” are all in the PublicDependencyModuleNames

however at build time I get

and absolutely nothing I do seems to solve this, anybody else has this issue or know how to fix?

If you aren’t using the 4.8.3 download then it won’t work at all because they changed some of how the subsystem worked since then.

Also you somehow messed up the file structure, OnlineSubsystemHeader is a header file I use to manage the includes in the library, if you are using the 4.8.3 version then it should work as is (Granted that version is missing a lot of fixes and improvements).

1 Like

Thank you very much for this plugin!

1 Like

I’m using the 4.8.3 version from the post, creates the /Plugins/AdvancedSessions/ folders and extracted the archive to there. Tried again from scratch and i’m just getting nowhere

1 Like

Okay so starting from scratch, this time using the .uproject file to compile instead of VS i got it working. Turns out if you make the plugins folder, generate VS files and try to compile a plugin that way it breaks. I had to move the plugin over then open the uproject file, it asked if i wanted to rebuild the plugin (source build of 4.8.3) and it worked fine. No idea what that was all about

1 Like

Is there a bool where you can start a session as dedicated server?

1 Like

Okay scratch that last post, i’ve got it compiling now, but as soon as I try to include AdvancedFriendsGameInstance.h in my game instance class to inherit from it i get:

[QUOTE]
1>E:\Repositories\RefactorBranch\Plugins\AdvancedSessions\Source\AdvancedSessions\Classes\AdvancedFriendsGameInstance.h(4): fatal error C1083: Cannot open include file: ‘OnlineSubSystemHeader.h’: No such file or directory

if I change the include to point to the location then I get the same error but with one of the .generated files.

i’m definitely using the correct version for 4.8.3 so i’m not sure what it is i’m doing wrong.

EDIT: Also, will this be getting updated to 4.11 when its released?

1 Like

[QUOTE=CLBander;489011]
Is there a bool where you can start a session as dedicated server?

Yeah in the createadvancedsessions node there is a bool for dedicated and you have to toggle off the “use presence” boolean as well. There seems to be some issues getting dedicated steam servers working (period, not just with the plugin). I haven’t tried to make one myself so I can’t help in that area at the moment.

[QUOTE=GotSomePills;489005]
Okay so starting from scratch, this time using the .uproject file to compile instead of VS i got it working. Turns out if you make the plugins folder, generate VS files and try to compile a plugin that way it breaks. I had to move the plugin over then open the uproject file, it asked if i wanted to rebuild the plugin (source build of 4.8.3) and it worked fine. No idea what that was all about

Shouldn’t have to do that, when I regenerate my project files the plugins are added into the project under their sub folders and compile fine.

[QUOTE=GotSomePills;489037]
Okay scratch that last post, i’ve got it compiling now, but as soon as I try to include AdvancedFriendsGameInstance.h in my game instance class to inherit from it i get:

if I change the include to point to the location then I get the same error but with one of the .generated files.

i’m definitely using the correct version for 4.8.3 so i’m not sure what it is i’m doing wrong.

EDIT: Also, will this be getting updated to 4.11 when its released?

Yes I will update asap when 4.11 is out. Make sure your folder structure is “project/plugins/advancedsessions/”, I don’t know if you are using a custom build of 4.8.3 but the plugin worked fine on that version (aside from some bugs that have been fixed since).

1 Like