Advanced Sessions Plugin

Urgent help needed here…

We have an issue with the player counter and it’s preventing us from patching our game.

Found steam sessions can not return player count or ping if not using the default online subsystem. A game using the steam online subssytem will be unable to display the player count in the server browser.

After advanced session is created, it cannot be updated or even accessed. While players can join, on the host, “Get session state” returns 0, “get session settings” fails, and “update session settings” fails as well. Session is created properly and clients can join. Extra settings set during creation are also accessible to clients.

[QUOTE=sarfios;721253]
Urgent help needed here…

We have an issue with the player counter and it’s preventing us from patching our game.

Found steam sessions can not return player count or ping if not using the default online subsystem. A game using the steam online subssytem will be unable to display the player count in the server browser.

After advanced session is created, it cannot be updated or even accessed. While players can join, on the host, “Get session state” returns 0, “get session settings” fails, and “update session settings” fails as well. Session is created properly and clients can join. Extra settings set during creation are also accessible to clients.

Player counts work in CardinalMenu v170606_416 (The current version for 4.16) in both the default online subsystem and Steam Sessions. I just checked again to make sure. If you see it not working, let me know.

Ping is still broken for steam. I got around this by using the Ping Plugin by DescendentStudios https://github.com/DescendentStudios/PingPlugin and then setting the listen server’s IP in Extra Settings as a temporary fix. pointed out that it might be a DDOS risk if the game is popular. This method is not in CardinalMenu. You could also program it of course, which would be a better method.

To get around the dedicated server problems, I use VaRest to update an official server list outside of steam in a CouchDB database. This method is not in CardinalMenu either. Just posting about it to give ideas.

Thanks for the response! Does it work for 4.15 as well? Or I have to upgrade the project to 4.16?

Edit: Ping is not important in my case, just player counter.

[QUOTE=sarfios;721541]
Thanks for the response! Does it work for 4.15 as well? Or I have to upgrade the project to 4.16?

Edit: Ping is not important in my case, just player counter.

The 4.15 version doesn’t have player count but all you would need to do is copy a few blueprints. Off the top of my head I think WidgetBlueprint’/Game/Cardinal/MainMenu/Blueprints/UI/PlayGamePanels/ServerList.ServerList’ and Blueprint’/Game/ThirdPersonExample/Blueprints/ThirdPersonGameMode.ThirdPersonGameMode’ would be all.

I’m not sure if copying the BP backwards in versions would work. You might have to manually find the changes and add the nodes. The GameMode is really simple to find where the Update Session is found. The ServerList widget has functions called “BuildInternetListenSearchResults” and “BuildLANSearchResults” that might be slightly different.

Hey, I have recently migrated project into 4.16.1 from 4.15.3. Using the 4.16.1 download of plugin and recompiled.

When the project compiles I get:


/Plugins/AdvancedSessions/AdvancedSessions/AdvancedSessions.uplugin could not be parsed ("1579795.0")
/Plugins/AdvancedSessions/AdvancedSteamSessions/AdvancedSteamSessions.uplugin could not be parsed ("1579795.0")

When launching packaged project I get the above in addition to:


[2017.06.10-13.22.08:647]  0]AdvancedFriendsInterfaceLog:Warning: UAdvancedFriendsInstance Failed to get session interface!
[2017.06.10-13.22.08:647]  0]AdvancedFriendsInterfaceLog:Warning: UAdvancedFriendsInstance Failed to get voice interface!
[2017.06.10-13.22.08:647]  0]AdvancedFriendsInterfaceLog:Warning: UAdvancedFriendsInstance Failed to get identity interface!

Project launches with no steam capability :frowning:
Any imminent expectation of an 4.16.1 release?

Much appreciated!

[QUOTE=NukePie;722124]
Hey, I have recently migrated project into 4.16.1 from 4.15.3. Using the 4.16.1 download of plugin and recompiled.

When the project compiles I get:


/Plugins/AdvancedSessions/AdvancedSessions/AdvancedSessions.uplugin could not be parsed ("1579795.0")
/Plugins/AdvancedSessions/AdvancedSteamSessions/AdvancedSteamSessions.uplugin could not be parsed ("1579795.0")

When launching packaged project I get the above in addition to:


[2017.06.10-13.22.08:647]  0]AdvancedFriendsInterfaceLog:Warning: UAdvancedFriendsInstance Failed to get session interface!
[2017.06.10-13.22.08:647]  0]AdvancedFriendsInterfaceLog:Warning: UAdvancedFriendsInstance Failed to get voice interface!
[2017.06.10-13.22.08:647]  0]AdvancedFriendsInterfaceLog:Warning: UAdvancedFriendsInstance Failed to get identity interface!

Project launches with no steam capability :frowning:
Any imminent expectation of an 4.16.1 release?

Much appreciated!

Its already on 4.16.1 on the OP download.

The engine version parse warning isn’t a big deal, i’ll get around to removing that from the uplugin at some point, the failed to get interfaces is a bigger deal and you have something set up wrong.

After upgrading to 4.16.1 and downloading the zip from BitBucket I’m getting an error across all the .cpp files “Error Expected AdvancedSteamWorkshopLibrary.h to be first header included.” even though they are in fact the first header to be included. Windows 10 using VS2015. Any ideas? Same thing happens with the Google Drive zip.

[QUOTE=;722309]
After upgrading to 4.16.1 and downloading the zip from BitBucket I’m getting an error across all the .cpp files “Error Expected AdvancedSteamWorkshopLibrary.h to be first header included.” even though they are in fact the first header to be included. Windows 10 using VS2015. Any ideas? Same thing happens with the Google Drive zip.

You likely have old intermediate files left over from 4.14 before the include what you use switch. Try deleting your intermediate folder in the plugin folder and regenerating the project files. This happens fairly often when switching engine versions so I tend to remove the intermediate folders prior to every upgrade.

[QUOTE=;722396]
You likely have old intermediate files left over from 4.14 before the include what you use switch. Try deleting your intermediate folder in the plugin folder and regenerating the project files. This happens fairly often when switching engine versions so I tend to remove the intermediate folders prior to every upgrade.

This worked but I also had to delete the Intermediate folder in the project, thank you.

any way to kick a specific player with blueprints?

[QUOTE=gustavorios2;722536]
any way to kick a specific player with blueprints?

In their blueprint tutorial series Epic sends an RPC telling the other player they are kicked where they load MainMenu and Destroy Session out of the server.
However for a forcible disconnect in GameSession they have a code function titled “KickPlayer” that destroys their pawn and player controller out from under them.


		if (KickedPlayer->GetPawn() != NULL)
		{
			KickedPlayer->GetPawn()->Destroy();
		}

		KickedPlayer->ClientWasKicked(KickReason);

		if (KickedPlayer != NULL)
		{
			KickedPlayer->Destroy();
		}

First it removes their pawn, then it sends a kick message to the player, then it destroys their PlayerController which forcibly disconnects them from the server.

I’ll look into exposing some of the game session code to blueprints, none of these functions are directly exposed and the blueprint method that they give is subject to abuse if they set their client to ignore that RPC (though a program). I remember an old game I used to play that kicked with a method like that and I set up a packet filter to become unkickable…

Fixed it up. Something silly was going on somewhere. I had been using the plugin in the project location and it didn’t like that very much when changing engine versions and the upgrade workflow was messy.
Moved the plugins into the engine side and recompiled and cleaned up the 4.15 version. Installed the 4.16.1 version to engine and then re-ran an upgrade and after a rebuild it works fine!

Cheers for the response and the plugin!

[QUOTE=;722134]
Its already on 4.16.1 on the OP download.

The engine version parse warning isn’t a big deal, i’ll get around to removing that from the uplugin at some point, the failed to get interfaces is a bigger deal and you have something set up wrong.

hey is it possible to force it to show full servers?

[QUOTE=DwunkyPengy;725889]
hey is it possible to force it to show full servers?

Edit NVM…it appears that no current subsystems actually implement SEARCH_MINSLOTSAVAILABLE…

Steam GameServers implementation (not lobby) specifically early’s out in Epics code with


	// TEMP!!!!
	return;

	/**
	 * "full"		- not full
	 * "empty"		- not empty
	 * "proxy"		- a relay server
	 */

Appears to have been planned…and then forgotten about?

oh cool, thanks for replying!

Hi there…

I can´t get the Plugin to run.
I tried to implement it by Project and by Engine. Using 4.16.1, i alsways get “missing module in Advanced Session” with follwing List:
UE4Editor-AdvancedSessions.dll
UE4Editor-AdvancedSteamSessions.dll

Hi,
How can I create loading maps widget with upload percentage ?? I want the player to view the map only when everything…

[QUOTE=visualnotte;726722]
Hi,
How can I create loading maps widget with upload percentage ?? I want the player to view the map only when everything…

That is not an easy task currently, there are several loading screen tutorials on the wiki that you can follow but most of the good ones require some coding.

Also a loading percentage bar would require you to tie into some systems yourself to manage.

[QUOTE=;726756]
That is not an easy task currently, there are several loading screen tutorials on the wiki that you can follow but most of the good ones require some coding.

Also a loading percentage bar would require you to tie into some systems yourself to manage.

Can help me?

Can help me?