Advanced Sessions Plugin

[quote=“pftq, post:2604, topic:30020”]

Hi, just following up in case it was missed. If you could clarify where the C++ code change would be made and how to have it take effect, that’d be great. Thanks

No c++ change needs to be made to the engine, you just need to go in and made a game class that the server always has access to, (GameMode/Session) and bind to that delegate. Binding to that delegate removes the auto kick feature so you’d have to handle kicking then.

[quote=“SaphiGoat, post:2595, topic:30020”]

Using “MAPNAME” will pass the mapname correctly? But what about the Servername? my servernames are looking something like 9659872394576

I’m unsure as to the servername. I usually start my servers with the commandline


-SteamServerName="My Server Name"

and that updates for the Steam Listing.

Hey there!

I’m getting strange numbers when I use the “getcurrentplayers” node after I call the UpdateSession node.

Everything works fine when I create a session (the number that getcurrentplayers shows is correct), but the UpdateSession seems to mess the number of getcurrentplayers node.

Almost all the calls after the UpdateSession, the “getcurrentplayers” shows a int = MaxPlayers – 2. Sometimes the int from “getcurrentplayers” comes a negative random… :eek:

Anyone knows whats is going on? Thanks!

hay, so for the life of me i cant get the god **** voip to work!

I’m working with the Example Project.
in the “Steam_VR_Player_Controller” i add the nodes as such (see picture below), what am i doing wrong??
PS- all the INI files are set up.

[quote=“juliusD, post:2611, topic:30020”]

hay, so for the life of me i cant get the god **** voip to work!

I’m working with the Example Project.
in the “Steam_VR_Player_Controller” i add the nodes as such (see picture below), what am i doing wrong??
PS- all the INI files are set up.

Did you actually define it as push to talk in the ini? By default the engine is open microphone. Also you don’t need the console commands there, you can just call Start / Stop networked voice.

Also seeing as how that appears to be a VR setup, you would need the microphone of the headset as the default system input.

Hey,
I am totally new to this plugin and kinda new to UE4.
I installed the plugin in the project folder and changed the engine.ini

but when i start the game as Play as client and standalone while steam is running I dont get the overlay in the window.

is there anything else i need to setup? shift + tap in the action settings or so?

I checked some tutorials but there it always just worked(they have been 1-2 years old, did anything in particular changed?)

Thanks in advanced helping me noob :stuck_out_tongue:

Hello!

I’m trying to setup this plugin without much luck sadly, hopefully someone can help!

I am using 4.25.3 compiled from source with the latest version of the plugin. I want to setup a listen server and connect to it using steam.
I’ve been trying to get it to work with both package builds and just launching with -game, in both 1 and 2 computer setup.

The problem is I believe, that my session doesn’t show up. I’ve also seen a session showing up and I’ve tried to connect to it but I’ve received an “OutdatedClient” error, which makes me think maybe it wasn’t my session after all?

I do get the steam overlay when I launch the game though.
This is my current setup:

DefaultEngine.ini


[/Script/Engine.GameEngine]
+NetDriverDefinitions=(DefName="GameNetDriver",DriverClassName="OnlineSubsystemSteam.SteamNetDriver",DriverClassNameFallback="OnlineSubsystemUtils.IpNetDriver")

[OnlineSubsystem]
DefaultPlatformService=Steam

[OnlineSubsystemSteam]
bEnabled=true
SteamDevAppId=480

[/Script/OnlineSubsystemSteam.SteamNetDriver]
NetConnectionClassName="OnlineSubsystemSteam.SteamNetConnection"

Project.Target.cs


bUsesSteam = true;

Project.Build.cs


PublicDependencyModuleNames.AddRange(new string] { "Core", "CoreUObject", "Engine", "InputCore", "AdvancedSessions",
"OnlineSubsystem", "OnlineSubsystemSteam" });

BP that creates the session

](filedata/fetch?id=1799495&d=1597128899)

BP that searches the sessions

](filedata/fetch?id=1799496&d=1597129067)

Some relevant logs!

Listen Server Logs:


[2020.08.11-07.00.21:835][459]LogOnlineSession: Warning: STEAM: Can't destroy a null online session (GameSession)
[2020.08.11-07.00.22:196][612]LogOnlineSession: Verbose: OSS: dumping NamedSession:
[2020.08.11-07.00.22:196][612]LogOnlineSession: Verbose: OSS: SessionName: GameSession
[2020.08.11-07.00.22:197][612]LogOnlineSession: Verbose: OSS: HostingPlayerNum: 0
[2020.08.11-07.00.22:199][612]LogOnlineSession: Verbose: OSS: SessionState: Pending
[2020.08.11-07.00.22:199][612]LogOnlineSession: Verbose: OSS: RegisteredPlayers:
[2020.08.11-07.00.22:200][612]LogOnlineSession: Verbose: OSS: 0 registered players
[2020.08.11-07.00.22:200][612]LogOnlineSession: Verbose: OSS: dumping Session:
[2020.08.11-07.00.22:201][612]LogOnlineSession: Verbose: OSS: OwningPlayerName: Grendert
[2020.08.11-07.00.22:202][612]LogOnlineSession: Verbose: OSS: OwningPlayerId: Grendert [0x1A5ABA09480]
[2020.08.11-07.00.22:203][612]LogOnlineSession: Verbose: OSS: NumOpenPrivateConnections: 5
[2020.08.11-07.00.22:203][612]LogOnlineSession: Verbose: OSS: NumOpenPublicConnections: 4
[2020.08.11-07.00.22:204][612]LogOnlineSession: Verbose: OSS: SessionInfo: HostIP: INVALID SteamP2P: 76561198005592313:7777 Type: Lobby session SessionId: Lobby[0x18600000B4A90A9]
[2020.08.11-07.00.22:205][612]LogOnlineSession: Verbose: OSS: dumping SessionSettings:
[2020.08.11-07.00.22:206][612]LogOnlineSession: Verbose: OSS: NumPublicConnections: 5
[2020.08.11-07.00.22:206][612]LogOnlineSession: Verbose: OSS: NumPrivateConnections: 5
[2020.08.11-07.00.22:207][612]LogOnlineSession: Verbose: OSS: bIsLanMatch: false
[2020.08.11-07.00.22:209][612]LogOnlineSession: Verbose: OSS: bIsDedicated: false
[2020.08.11-07.00.22:210][612]LogOnlineSession: Verbose: OSS: bUsesStats: false
[2020.08.11-07.00.22:211][612]LogOnlineSession: Verbose: OSS: bShouldAdvertise: true
[2020.08.11-07.00.22:211][612]LogOnlineSession: Verbose: OSS: bAllowJoinInProgress: true
[2020.08.11-07.00.22:212][612]LogOnlineSession: Verbose: OSS: bAllowInvites: true
[2020.08.11-07.00.22:212][612]LogOnlineSession: Verbose: OSS: bUsesPresence: true
[2020.08.11-07.00.22:213][612]LogOnlineSession: Verbose: OSS: bAllowJoinViaPresence: true
[2020.08.11-07.00.22:213][612]LogOnlineSession: Verbose: OSS: bAllowJoinViaPresenceFriendsOnly: false
[2020.08.11-07.00.22:214][612]LogOnlineSession: Verbose: OSS: BuildUniqueId: 0x00000000
[2020.08.11-07.00.22:214][612]LogOnlineSession: Verbose: OSS: Settings:
[2020.08.11-07.00.22:216][612]LogNet: Browse: /Game/Maps/VillageMap/VillageMap?listen
[2020.08.11-07.00.22:216][612]LogLoad: LoadMap: /Game/Maps/VillageMap/VillageMap?listen
[2020.08.11-07.00.22:216][612]LogWorld: BeginTearingDown for /Game/Maps/MenuMap/MenuMap
[2020.08.11-07.00.22:218][612]LogWorld: UWorld::CleanupWorld for MenuMap, bSessionEnded=true, bCleanupResources=true
[2020.08.11-07.00.22:221][612]LogSlate: InvalidateAllWidgets triggered. All widgets were invalidated
[2020.08.11-07.00.22:257][612]LogAudio: Display: Waited 35.034000 ms for audio thread.
[2020.08.11-07.00.22:261][612]LogAudio: Display: Waited 39.318001 ms for audio thread.
[2020.08.11-07.00.22:297][612]LogAISub: UAISubsystem::~UAISubsystem EnvQueryManager (000001A5BD190600), frame # 28612
[2020.08.11-07.00.22:297][612]LogAISub: UAISubsystem::~UAISubsystem AIPerceptionSystem (000001A5AA300680), frame # 28612
[2020.08.11-07.00.22:299][612]LogSlate: Slate User Unregistered. User Index 8
[2020.08.11-07.00.22:299][612]LogSlate: Slate User Destroyed. User Index 8, Is Virtual User: 1
[2020.08.11-07.00.22:301][612]LogUObjectHash: Compacting FUObjectHashTables data took 1.15ms
[2020.08.11-07.00.39:515][612]LogAIModule: Creating AISystem for world VillageMap
[2020.08.11-07.00.39:516][612]LogAISub: UAISubsystem::UAISubsystem EnvQueryManager (000001A5D2869E00), frame # 28612
[2020.08.11-07.00.39:519][612]LogAISub: UAISubsystem::UAISubsystem AIPerceptionSystem (000001A5D2847D80), frame # 28612
[2020.08.11-07.00.39:520][612]LogLoad: Game class is 'BP_InGameGM_C'
[2020.08.11-07.00.39:521][612]LogNet: ReplicationDriverClass is null! Not using ReplicationDriver.
[2020.08.11-07.00.39:521][612]LogNetCore: DDoS detection status: detection enabled: 0 analytics enabled: 0
[2020.08.11-07.00.39:522][612]LogNet: Display: SteamNetDriver_0 bound to port 7777
[2020.08.11-07.00.39:523][612]PacketHandlerLog: Loaded PacketHandler component: Engine.EngineHandlerComponentFactory (StatelessConnectHandlerComponent)
[2020.08.11-07.00.39:523][612]LogNet: GameNetDriver SteamNetDriver_0 IpNetDriver listening on port 7777

Client trying to find a session:


[2020.08.11-07.03.45:155][544]LogOnlineSession: STEAM: Found 0 lobbies, finalizing the search
[2020.08.11-07.03.47:579][373]LogOnlineSession: Warning: STEAM: Failed to respond IP:164.39.65.146
[2020.08.11-07.03.47:628][391]LogOnlineSession: Warning: STEAM: Failed to respond IP:134.94.168.171
[2020.08.11-07.03.47:630][391]LogOnlineSession: Warning: STEAM: Failed to respond IP:195.24.142.186

One last thing: I’ve also tried to use the unreal CreateSession and SearchSession and the result on the find session is interesting. Looks like steam finds more lobbies than with the advancedSearch, and funny enough the Task finds 1 extra lobby? although it ends up failing?


[2020.08.11-07.14.22:864][313]LogOnline: Warning: OSS: Async task 'FOnlineAsyncTaskSteamFindLobbiesForFindSessions bWasSuccessful: 0 NumResults: 25' failed in 15.052171 seconds
[2020.08.11-07.14.22:866][313]LogOnlineSession: STEAM: Found 24 lobbies, finalizing the search

Sorry for the long post, tried to give as much relevant information as possible, anybody could point out what I’m missing?

Thank you!

Edit: I’ve managed to make it work with Lan only, by setting the bool bIsLan to true and also ?bIsLanMatch=1 when the listen server travels to the map. But still can’t see my session when is not on lan. I’ve also migrated my project to vanilla 25.3 just to double check as well as disabled firewall in case it was somehow blocking. Still no luck :confused:
At one point I did get a request of joining into the game by somebody else (obviously failed because wrong version)! which makes me think that my sessions are somehow being created properly, is just me that can’t see them :confused:

In case someone ends up having a similar issue, I ended up solving it by using the vanilla CreateSession and FindSession. I’ve then created a custom version of those to pass parameters across (similar to what Advanced sessions is doing) but there seems to be some kind of weird thing going on with the advanced sessions one that were causing the issue for me.

[quote=“Grendert, post:2615, topic:30020”]

In case someone ends up having a similar issue, I ended up solving it by using the vanilla CreateSession and FindSession. I’ve then created a custom version of those to pass parameters across (similar to what Advanced sessions is doing) but there seems to be some kind of weird thing going on with the advanced sessions one that were causing the issue for me.

There isn’t…

Unsure what you had going on there, but it still passes through the same functions.

Little curious why your build ID was nulled though.

[quote=“Cipher5, post:2558, topic:30020”]

Is there anything that can be done for the server slots? Is it me or public connections/slots don’t do anything? I had to add my own “MaxPlayers” Int and do a check against the current players. I wish there was an easy way to not let players join if the server is full. Right now I have my project check the server capacity before the player joins and if there is room it lets them, but the problem is if 1 slot is left and 2 players click join at the same time they both make it in. It would be nice to have a node that handles clients connection on a full server using the public connections/slots and have a on full rejection output on a node. Just wishing here lol, awesome work by the way and thanks for all the time you put into it.

Try the console command


net.MaxPlayersOverride 16

Or whatever number you want. See if that fixes your issue. Fixed it for me.

Hi,

I use the same map for both lobby and game. When i try to join a session from client to server, the map just reloads. (since its the first time connecting to the server?) it looks a little odd to just reload the lobby map when joining a session. Anyone knows its possible to seamless join a lobby?

I’m going to plus one the issue that Grendert was having. Using version 4.24.3, completely stock. Session creation succeeds, it is set to advertise, I’ve ran through it several times to make sure it’s set up correctly, but outside of testing locally with PIE windows, the session does not get posted to Steam servers.

Steam integration is set up correctly. Trying to test in standalone mode with my remote partner on the project I’m working on, neither of us can see the sessions we create. Same commits of the project and everything. Steam also doesn’t find any local sessions for the games we create (set to use internet, not LAN), but we get valid session IDs. Find servers is also set up fairly simply, following several guides, and I know it works because it works in PIE windows. This issue is a real pain in the neck :frowning:

Hello!

I am currently working on a multiplayer game with hosted servers. I encounter a problem with servers visibility:

Sometimes, Canadians or other players in other country (i’m french) can’t see my server in the server list. When my friend change the “download region” of Steam he can see my server. Is there a way to solve that problem without changing the Steam download region?

Thanks for your answer!

[quote=“Infinity9115, post:2620, topic:30020”]

Hello!

I am currently working on a multiplayer game with hosted servers. I encounter a problem with servers visibility:

Sometimes, Canadians or other players in other country (i’m french) can’t see my server in the server list. When my friend change the “download region” of Steam he can see my server. Is there a way to solve that problem without changing the Steam download region?

Thanks for your answer!

Get your own AppID and make sure it isn’t set to use region locking, the default testing app id is region locked on purpose by valve.

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

Did you actually define it as push to talk in the ini? By default the engine is open microphone. Also you don’t need the console commands there, you can just call Start / Stop networked voice.

Also seeing as how that appears to be a VR setup, you would need the microphone of the headset as the default system input.

ok so the start network voice works but only one sided, the other guys in game can hear me but when they try to talk i cant hear them, its not a server\client issue because even when we restart the game and one of them hosts the game everyone can still hear me (i the client now) but i cant hear any of them and they cant hear each other.

im thinking maybe this is a network speed issue, as i have the fastest internet of the bunch (fiber optics with 100mb upload and 1gb down), is there a way to set the network voice bandwidth higher? let it work on slower connections?

It doesn’t work and nobody seems to know why:

https://forums.unrealengine.com/deve…did-i-do-wrong

It only works when clients are on same network even though LAN is not enabled.

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

Get your own AppID and make sure it isn’t set to use region locking, the default testing app id is region locked on purpose by valve.

I use my own AppID, where can i see if it is set to use region locking? In Steamworks?

Thanks for your answer!

[quote=“Infinity9115, post:2624, topic:30020”]

I use my own AppID, where can i see if it is set to use region locking? In Steamworks?

Thanks for your answer!

Now that you can get it to work could you help me?

[quote=“Psy-Lance, post:2625, topic:30020”]

Now that you can get it to work could you help me?

Hello Psy-Lance,

at the moment, with my own AppID, it not works, i can’t see players from Canada and they can’t see me (in France)

I’m waiting for any information about this problem!

[quote=“Infinity9115, post:2626, topic:30020”]

Hello Psy-Lance,

at the moment, with my own AppID, it not works, i can’t see players from Canada and they can’t see me (in France)

I’m waiting for any information about this problem!

I understand that it doesn’t work with your own AppID but you said it works with the appID 480. I know there is a region lock for appID 480 and that’s fine for me right now. Just need it to work.

[quote=“Infinity9115, post:2620, topic:30020”]

Hello!

I am currently working on a multiplayer game with hosted servers. I encounter a problem with servers visibility:

Sometimes, Canadians or other players in other country (i’m french) can’t see my server in the server list. When my friend change the “download region” of Steam he can see my server. Is there a way to solve that problem without changing the Steam download region?

Thanks for your answer!

???
https://forums.unrealengine.com/deve…did-i-do-wrong