Advanced Sessions Plugin

[QUOTE=OverRated_AU;672349]
Thanks for the info, i did post on that thread about that plugin but i don’t have high hopes it will get released, so the default sound capture how would i set that up to use distance thanks.

Until 4.16 when everything probably changes, on a launcher build you would locally register / unregister network talkers based on distance.

If you are on a source build you can open up access directly to the VOIP audio components and run distance based volume and effects.

I felt excitement tingling through my body reading this. It’s going to be incredibly useful for me!
I’m very thankful, I’ll try to include this in my project this week. If it works well, I’ll probably donate as well ;D
Although, the donation will be postponed till July or august (I graduate in June and need to work for a month or two first) ;D
But it’s a certainty. I keep my promises.

Going to push a new update today, I ran into an answerhub thread today where someone was having issues cleanly destroying his session and I noticed that he was using this plugin and calling “End Session” instead if “Destroy Session”.

This made me realize that not only is the EndSession node not really useful in blueprints, but that people have been using it wrong.

Going to set EndSession to Deprecated so that it can’t be used and phase it out, it isn’t useful to Steam Subsystem and isn’t really useful in blueprints to begin with as its use is vauge, would rather enforce the actual total destruction of the session instead by making users call DestroySession as is intended.

I feel like that node suffers from overexposing the back end to blueprints.

I’m currently using voice in game but to me it doesn’t seem obvious how to limit it to only your team. Using it in blueprint, would anyone be able to point me in the right direction?

[QUOTE=;672982]
I’m currently using voice in game but to me it doesn’t seem obvious how to limit it to only your team. Using it in blueprint, would anyone be able to point me in the right direction?

Unregister or Mute remote talkers that aren’t on your team. Hopefully in 4.16 and beyond we’ll have more direct control, though I kind of doubt it.

so I would get a list of all players, and their ID’s and mute all those not on my team. If I am understanding that correctly :slight_smile:

[QUOTE=;672988]
so I would get a list of all players, and their ID’s and mute all those not on my team. If I am understanding that correctly :slight_smile:

Yes, there isn’t currently a way for the server to dictate that directly.

no worries I’m going to give it a try now and let you know, thanks for the quick response

Update pushed to repository, and download for 4.15 has been re-uploaded


Marking EndSession as deprecated

It is not only not really useful in blueprints, but people have also been using it wrong.

It isn't useful to Steam Subsystem and isn't really useful in blueprints to begin with as its use is vauge, would rather enforce the actual
total destruction of the session instead by making users call DestroySession as is intended.

I feel like that node suffers from overexposing the back end to blueprints.

edit: Nevermind, i’m stupid. Was still in LAN mode. Working now! :smiley:

Any idea why the invitation is failing?

edit: Or is it not working with the Spacewar App ID while running in standalone?

Just pushed an update to the repository, will also update the binaries soon. Edit Uploaded

This is a fix for packaging a game entirely without the SteamSubsystem, due to the recent deeper tie of the plugin into Steam it was defaulting to packaging the Steam Subsystem on PC platforms.
(I could get around this again but it would just keep bloating more code into the plugin, would rather make a split)

Splitting the plugin into two modules allows the deeper steam tie to be toggled by enabling/disabling a plugin and opens up room for more interesting steam specific features in the future.

You can still package and run on another platform that isn’t steam without doing this, this just gives the option of not having steam included in packaging / compilation at all.

It has no effect on mobile or unsupported platforms, as they never linked the steam subsystem anyway.


Split plugin into two modules

One is for the general AdvancedSessions (Advanced Sessions Plugin)

The second is for Steam specific implementations (Advanced Steam Sessions Plugin)

This makes it easier to package without steam included, as the default setup always packaged steam out on PC platforms.

Unchecking the AdvancedSteamSessions plugin should allow for totally removing any steam reliance from the plugin.

You would also have to remove steam specific nodes from your blueprints as well however as they will no longer exist, just having them as dummies doesn't work with this.



Nice Plugin

Maybe a dumb question, but how can i get a list of the connected players to a session? i want to do a quick “MMR check” before joining, so i can have a smart matchmaking system, but i cant find out how to get the players and get his skills level before i join to a server.

Thanks in advance!

[QUOTE=CalaveraX;675239]
Maybe a dumb question, but how can i get a list of the connected players to a session? i want to do a quick “MMR check” before joining, so i can have a smart matchmaking system, but i cant find out how to get the players and get his skills level before i join to a server.

Thanks in advance!

You would have to add these into the extra server settings and pull them off the found session in the clients lobby, it mite be some work but i do it for my lobby settings.

[QUOTE=OverRated_AU;675272]
You would have to add these into the extra server settings and pull them off the found session in the clients lobby, it mite be some work but i do it for my lobby settings.

Do you have any tutorial or documentation on how to achieve this? i would really appreciate that!

[QUOTE=CalaveraX;675304]
Do you have any tutorial or documentation on how to achieve this? i would really appreciate that!

There a simple image at the bottom on the OP about it “Example of hosting a session with additional parameters” this should be all you need to get the idea how it works.

Yeah but i have two issues with that, that only allows me to add some string in extra settings, not a players array, but my principal issue, is that those extra properties are setted at the moment of creating the server. But i need that to update to search for all the connected players and look at theirs scores.

(Thinking a little more, i could set that value with the mmr of the host, and then the new connections check for a proximity to that value before joining)

Regards.

[QUOTE=CalaveraX;675326]
Yeah but i have two issues with that, that only allows me to add some string in extra settings, not a players array, but my principal issue, is that those extra properties are setted at the moment of creating the server. But i need that to update to search for all the connected players and look at theirs scores.

(Thinking a little more, i could set that value with the mmr of the host, and then the new connections check for a proximity to that value before joining)

Regards.

There is an update session node that updates the lobby. I could provide access to requesting the steam lobby information but Valve doesn’t allow SteamIDs to be crawlable by players not in the lobby itself so you can’t retrieve a player list that you can use for something like that (just names). So to do an MMR check in any sane manner you would either want to register the server on some backend of yours, or calculate the average mmr and store and update that in the lobby settings.

Edit Generally for a full featured MMR system you’ll want some backend that tracks users across servers. There are some specific matchmaking tools for Steam but they aren’t currently exposed for blueprint, I have been considering it as a next logical step now that steam is moved into its own module.

Thanks :slight_smile:

I think gonna go with the option of setting the “Server MMR” with the Host MMR at start, and then the joining clients will check againsnt that value to decide if they enter or not.

Hi. Thank you very much for the great plugin !. Been working and everything came out well, just that when compiling I get an error that does not let the compilation and looked at the internet but I still do not know how to solve it. To discard that is not my project, create a new one where I just put the plugin and do nothing with BP and I get the same error when compiling, this error does not exit if I turn off the plugin. I’m using version 4.14.3. A thousand thanks in advance for the help.

[QUOTE]

LogTemp:Display: Executing iPhonePackager certificates Engine -bundlename com.YourCompany.AbsolutZero
LogTemp:Display: CWD: C:\Program Files\Epic Games\UE_4.14\Engine\Binaries\DotNet\IOS
LogTemp:Display: Initial Dir: C:\Program Files\Epic Games\UE_4.14
LogTemp:Display: Env CWD: C:\Program Files\Epic Games\UE_4.14\Engine\Binaries\DotNet\IOS
LogTemp:Display: BranchPath = CHISE/C/Program Files/Epic Games/UE_4.14/Engine/Binaries — GameBranchPath = CHISE/C/Program Files/Epic Games/UE_4.14/Engine/Binaries
LogTemp:Display: IPP ERROR: Application exception: System.IO.DirectoryNotFoundException: No se puede encontrar una parte de la ruta de acceso ‘C:\Users\yvasq\AppData\Local\Apple Computer\MobileDevice\Provisioning Profiles’.
LogTemp:Display: en System.IO.__Error.WinIOError(Int32 errorCode, String maybeFullPath)
LogTemp:Display: en System.IO.FileSystemEnumerableIterator1.CommonInit() LogTemp:Display: en System.IO.Directory.EnumerateFiles(String path, String searchPattern) LogTemp:Display: en iPhonePackager.CodeSignatureBuilder.FindProvisions(String CFBundleIdentifier) LogTemp:Display: en iPhonePackager.Program.Main(String] args) LogContentBrowser: Native class hierarchy updated for 'HierarchicalLODOutliner' in 0.0003 seconds. Added 1 classes and 2 folders. LogLoad: (Engine Initialization) Total time: 24.17 seconds LogLoad: (Engine Initialization) Total Blueprint compile time: 4.33 seconds LogExternalProfiler: Found external profiler: VSPerf LogExternalProfiler: Using external profiler: VSPerf LogOcInput: OculusInput pre-init called LogContentStreaming: Texture pool size now 1000 MB LogRenderer: Reallocating scene render targets to support 1096x576 NumSamples 1 (Frame:2). LogAssetRegistry: Asset discovery search completed in 21.6350 seconds LogCollectionManager: Rebuilt the object cache for 1 collections in 0.000017 seconds (found 0 objects) LogCollectionManager: Fixed up redirectors for 1 collections in 0.000080 seconds (updated 0 objects) LogDirectoryWatcher: A directory notification for '../../../Engine/Plugins/' was aborted. LogDirectoryWatcher: A directory notification for 'E:/Impulse/Plugins/' was aborted. LogDirectoryWatcher: A directory notification for '../../../Engine/Plugins/' was aborted. LogDirectoryWatcher: A directory notification for 'E:/Impulse/Plugins/' was aborted. UATHelper: Empaquetado (Windows (64-bit)): Running AutomationTool... UATHelper: Empaquetado (Windows (64-bit)): Automation.ParseCommandLine: Parsing command line: -ScriptsForProject=E:/Impulse/AbsolutZero.uproject BuildCookRun -nocompile -nocompileeditor -installed -nop4 -project=E:/Impulse/AbsolutZero.uproject -cook -stage -archive -archivedirectory=C:/Users/yvasq/Videos -package -clientconfig=Development -ue4exe=UE4Editor-C md.exe -pak -prereqs -nodebuginfo -targetplatform=Win64 -build -CrashReporter -utf8output UATHelper: Empaquetado (Windows (64-bit)): Automation.Process: Setting up command environment. UATHelper: Empaquetado (Windows (64-bit)): BuildCookRun.SetupParams: Setting up ProjectParams for E:\Impulse\AbsolutZero.uproject UATHelper: Empaquetado (Windows (64-bit)): Project.Build: ********** BUILD COMMAND STARTED ********** UATHelper: Empaquetado (Windows (64-bit)): CommandUtils.Run: Run: C:\Program Files\Epic Games\UE_4.14\Engine\Binaries\DotNET\UnrealBuildTool.exe UE4Game Win64 Development -remoteini="E:\Impulse" -noxge -generatemanifest -NoHotReload UATHelper: Empaquetado (Windows (64-bit)): UnrealBuildTool: ERROR: No modules found to build. All requested binaries were already part of the installed engine data. UATHelper: Empaquetado (Windows (64-bit)): CommandUtils.Run: Run: Took 0,7715512s to run UnrealBuildTool.exe, ExitCode=5 UATHelper: Empaquetado (Windows (64-bit)): Program.Main: ERROR: AutomationTool terminated with exception: AutomationTool.CommandUtils+CommandFailedException: Command failed (Result:5): C:\Program Files\Epic Games\UE_4.14\Engine\Binaries\DotNET\UnrealBuildTool.exe UE4Game Win64 Development -remoteini="E:\Impulse" -noxge -generatemanifest -NoHotReload. See l ogfile for details: 'UnrealBuildTool-2017.03.03-09.25.39.txt' UATHelper: Empaquetado (Windows (64-bit)): en AutomationTool.CommandUtils.RunAndLog(String App, String CommandLine, String Logfile, Int32 MaxSuccessCode, String Input, ERunOptions Options, Dictionary2 EnvVars, SpewFilterCallbackType SpewFilterCallback)
UATHelper: Empaquetado (Windows (64-bit)): en AutomationTool.CommandUtils.RunAndLog(CommandEnvironment Env, String App, String CommandLine, String LogName, Int32 MaxSuccessCode, String Input, ERunOptions Options, Dictionary2 EnvVars, SpewFilterCallbackType SpewFilterCallback) UATHelper: Empaquetado (Windows (64-bit)): en AutomationTool.CommandUtils.RunUBT(CommandEnvironment Env, String UBTExecutable, String CommandLine, String LogName, Dictionary2 EnvVars)
UATHelper: Empaquetado (Windows (64-bit)): en AutomationTool.CommandUtils.RunUBT(CommandEnvironment Env, String UBTExecutable, FileReference Project, String Target, String Platform, String Config, String AdditionalArgs, String LogName, Dictionary2 EnvVars) UATHelper: Empaquetado (Windows (64-bit)): en AutomationTool.UE4Build.BuildWithUBT(String TargetName, UnrealTargetPlatform TargetPlatform, String Config, FileReference UprojectPath, Boolean ForceMonolithic, Boolean ForceNonUnity, Boolean ForceDebugInfo, Boolean ForceFlushMac, Boolean DisableXGE, String InAddArgs, Boolean ForceUnity, Dictionary2 EnvVars)
UATHelper: Empaquetado (Windows (64-bit)): en AutomationTool.UE4Build.Build(BuildAgenda Agenda, Nullable1 InDeleteBuildProducts, Boolean InUpdateVersionFiles, Boolean InForceNoXGE, Boolean InUseParallelExecutor, Boolean InForceNonUnity, Boolean InForceUnity, Boolean InShowProgress, Dictionary2 PlatformEnvVars, Nullable1 InChangelistNumberOverride, Dict ionary2 InTargetToManifest)
UATHelper: Empaquetado (Windows (64-bit)): en Project.Build(BuildCommand Command, ProjectParams Params, Int32 WorkingCL, ProjectBuildTargets TargetMask)
UATHelper: Empaquetado (Windows (64-bit)): en BuildCookRun.DoBuildCookRun(ProjectParams Params)
UATHelper: Empaquetado (Windows (64-bit)): en BuildCookRun.ExecuteBuild()
UATHelper: Empaquetado (Windows (64-bit)): en AutomationTool.BuildCommand.Execute()
UATHelper: Empaquetado (Windows (64-bit)): en AutomationTool.Automation.Execute(List1 CommandsToExecute, CaselessDictionary1 Commands)
UATHelper: Empaquetado (Windows (64-bit)): en AutomationTool.Automation.Process(String] Arguments)
UATHelper: Empaquetado (Windows (64-bit)): en AutomationTool.Program.MainProc(Object Param)
UATHelper: Empaquetado (Windows (64-bit)): en AutomationTool.InternalUtils.RunSingleInstance(Func`2 Main, Object Param)
UATHelper: Empaquetado (Windows (64-bit)): en AutomationTool.Program.Main()
UATHelper: Empaquetado (Windows (64-bit)): Program.Main: AutomationTool exiting with ExitCode=5 (5)
UATHelper: Empaquetado (Windows (64-bit)): BUILD FAILED