Advanced Sessions Plugin

I followed the installation instructions.

Here is an image of my file :

If I’m wrong, then maybe it’s because of the translation.

[QUOTE=Scozor;686184]
I followed the installation instructions.

Here is an image of my file :

If I’m wrong, then maybe it’s because of the translation.

Unless you install the plugin in the unreal engine directory like the launcher does, then as far as I am aware, all project level plugins still currently need to be linked in the build.cs for the project and the project needs to have at least a blank
c++ class so that it generates code in order to package out the plugin.

You can move the plugin into the engine/plugins folder where unreal is installed and it shouldn’t have that requirement.

I did not understand everything, but following your instructions the package works and I can play using your plugin! Thank you

I get a warning:

[QUOTE]
LogDirectoryWatcher:Warning: Failed to begin reading directory changes for C:/Users/Scozor/Documents/Unreal Projects/Scozoras/Plugins/. Error: Le fichier spécifié est introuvable. (0x00000002)

EDIT : By restarting UE4 the warning seems to have disappeared.

[QUOTE=;685307]
Use bool UAdvancedVoiceLibrary::IsLocalPlayerTalking(uint8 LocalPlayerNum) instead for the local player.

Using IsLocalPlayerTalking was the first thing I’ve tried however it always returns False, no matter what. That was the reason why I asked for help on this thread.
Start Networked Voice, Stop Networked Voice are working perfectly, I have no clue what’s wrong with IsLocalPlayerTalking.

[QUOTE=VytautasR;687561]
Using IsLocalPlayerTalking was the first thing I’ve tried however it always returns False, no matter what. That was the reason why I asked for help on this thread.
Start Networked Voice, Stop Networked Voice are working perfectly, I have no clue what’s wrong with IsLocalPlayerTalking.

Didn’t you originally post using it for remote clients though? You can use the unique player id from the local player controller for that node, and the one from the replicate player array for the remote talking node.

AFAIK nothing regarding that interface broke in 4.15

[QUOTE=;687568]
Didn’t you originally post using it for remote clients though? You can use the unique player id from the local player controller for that node, and the one from the replicate player array for the remote talking node.

AFAIK nothing regarding that interface broke in 4.15

Nope, it was your suggestion to use IsRemotePlayerTalking. I’ve tried iterating through all the players and setting variables from Game Mode. I did not achieve usable results. And now you offered IsLocalPlayerTalking (where I started) so it was a bit of a loop.

What you mean by “unique player id from the local player controller”? IsLocalPlayerTalking takes a LocalPlayerNum. “Get Player Controller” -> “Get Unique Net ID” gives a Net Id Structure.

[QUOTE=VytautasR;687591]
Nope, it was your suggestion to use IsRemotePlayerTalking. I’ve tried iterating through all the players and setting variables from Game Mode. I did not achieve usable results. And now you offered IsLocalPlayerTalking (where I started) so it was a bit of a loop.

What you mean by “unique player id from the local player controller”? IsLocalPlayerTalking takes a LocalPlayerNum. “Get Player Controller” -> “Get Unique Net ID” gives a Net Id Structure.

Yeah sorry, thats what I meant.

So in short IsLocalPlayerTalking should just work as it is? Only it doesn’t work. :-/

islocalplayertalking_node.png

[QUOTE=VytautasR;687623]
So in short IsLocalPlayerTalking should just work as it is? Only it doesn’t work. :-/

islocalplayertalking_node.png

It should work, I can run some tests tonight, but the last time I went over the voice nodes they were fine. If it doesn’t work then its something that the engine needs fixed on the back end.

At least on steam it directly checks if there are compressed voice bytes ready to send out, so they actually need to be talking at the time.

Thank you! Let me know if you find something.

Hi. I have struggled with the voice stuff now for some time. It looks like everything is working except unmute. I think i have tested everything but it feels like i have hit a wall.
Currently running 4.13 over steam. push to talk enabled.

If i as a server mute another client i cant find a way to unmute them. (just as i type this i don’t think i have tested it being the client and muting the server.)

I might be missing something obvious…

Thanks for the plugin anyway and have a nice weekend :slight_smile:

[QUOTE=;685487]
Not a mistake, the plugin has steam functions separated into a different module now so that you can remove the module if not publishing to steam. It will let me go deeper into steam features in the future without complicating mobile and other platforms.

Does this mean, I can use AdvancedSteamSessions only, if we only deploy to steam or do I still need the other plugin?

[QUOTE=adipFTW;689181]
Does this mean, I can use AdvancedSteamSessions only, if we only deploy to steam or do I still need the other plugin?

You still need the other one, the steam one just contains steam only blueprint.

[QUOTE=MagnusAnder;688782]
Hi. I have struggled with the voice stuff now for some time. It looks like everything is working except unmute. I think i have tested everything but it feels like i have hit a wall.
Currently running 4.13 over steam. push to talk enabled.

If i as a server mute another client i cant find a way to unmute them. (just as i type this i don’t think i have tested it being the client and muting the server.)

I might be missing something obvious…

Thanks for the plugin anyway and have a nice weekend :slight_smile:

Just tested with 4.15.1 and it works!!

how does the anti cheat work ?

[QUOTE=MagnusAnder;689432]
Just tested with 4.15.1 and it works!!

Sorry I didn’t notice that you said 4.13, 4.13 had multiple voice engine bugs that they fixed in 4.14 (and I think 1 in 4.15).

How do I use this for RegisterServer() for a dedicated server on steam? Can I just call

UCreateSessionCallbackProxyAdvanced::CreateAdvancedSession(); in my GameSession -> RegisterServer()

Is WorldContextObject just a UWorld pointer? So could I use GetWorld()

Also, what am I supposed to input for PlayerController() if I’m trying to host a dedi?

Also, for this http://i.imgur.com/OgsKSOm.png is there a list of the different properties? What’s the difference between GAMENAME and Server name? I noticed all of my servers being named “Unreal Test!” before I checked your plugin out and I didn’t want to have to alter the GAMEDESC macro (forgot what class) in the engine files so I’m hoping this will help me out.

Again http://i.imgur.com/hMBvTsH.png, for the “Open Level” portion do I need to make it open a new map if I want “this” map to be the map the server uses? Seems redundant if I set the Server Default map to this map.

Where should I be calling CreateAdvancedSession (for a dedi server)? GameMode? I was under the impression it should be called in “GameSession=>RegisterServer()” but GameSession is not blueprintable. So how would I do this in BPs? Or is there a way to use this function inside of C++?

[QUOTE=;550436]
Is player in session probably only works for clients yes, the clients shouldn’t need to call it themselves. I haven’t ran into the Find Session info returning nothing if it is the host, in fact the only way to test it would have been client to host so you might have something wrong.

I can’t fix that in a plugin sadly unless I redefine names and I really shouldn’t #undef / #define engine constants.

The “overflow sessionflags” ******** is still there, what would I need to do on my end to repair this issue? Is it actually even doing anything? It’s still showing up on LAN (but I need it to show up globally). What ports do I need forwarded? Just 7777?

See below for responses

[QUOTE=poke1103;690946]
How do I use this for RegisterServer() for a dedicated server on steam? Can I just call

UCreateSessionCallbackProxyAdvanced::CreateAdvancedSession(); in my GameSession -> RegisterServer()

Is WorldContextObject just a UWorld pointer? So could I use GetWorld()

UWorld is a valid world context yes, but I don’t think any of MY nodes need one passed in unless you are trying to use them inside a gamemode blueprint

Also, what am I supposed to input for PlayerController() if I’m trying to host a dedi?

When hosting dedicated it doesn’t even use the passed in player controller, don’t pass one in.

Also, for this http://i.imgur.com/OgsKSOm.png is there a list of the different properties? What’s the difference between GAMENAME and Server name? I noticed all of my servers being named “Unreal Test!” before I checked your plugin out and I didn’t want to have to alter the GAMEDESC macro (forgot what class) in the engine files so I’m hoping this will help me out.

These are custom properties that you make, I would actually suggest using shorter names IE: GN = GameName to save on flag space

Again http://i.imgur.com/hMBvTsH.png, for the “Open Level” portion do I need to make it open a new map if I want “this” map to be the map the server uses? Seems redundant if I set the Server Default map to this map.

**You need to open up a map as Listen, default is not a listen server, also that is when the gamemode registers the server, you manually call Register Server instead and not do the map load if you wish.

This is how the game mode auto registers on first load, it checks for a valid session. This is why in blueprints the reload makes the server known.


	if (GetNetMode() != NM_Standalone)
	{
		// Attempt to login, returning true means an async login is in flight
		if (!UOnlineEngineInterface::Get()->DoesSessionExist(World, GameSession->SessionName) &&
			!GameSession->ProcessAutoLogin())
		{
			GameSession->RegisterServer();
		}
	}


**

Where should I be calling CreateAdvancedSession (for a dedi server)? GameMode? I was under the impression it should be called in “GameSession=>RegisterServer()” but GameSession is not blueprintable. So how would I do this in BPs? Or is there a way to use this function inside of C++?

See above answer, create the session first.

[QUOTE=poke1103;690958]
The “overflow sessionflags” ******** is still there, what would I need to do on my end to repair this issue? Is it actually even doing anything? It’s still showing up on LAN (but I need it to show up globally). What ports do I need forwarded? Just 7777?

Whatever ports you are using for the dedicated…for steam: Steam Support :: Required Ports for Steam

Overflow session flags is still there yes, shorten as many flag names as you can, pack information as tightly as possible.