MultiFunPlayer v1.31.1 - Multi axis funscript player - Now with SLR script streaming

Ok, I have re checked again and it works now, thanks for the help. must have accidently clicked it off when used

Hi, first of all thanks for this great tool!! Unfortunately I have an issue; while with v1.29.3 everything is fine, all the most updated versions do not start at all.
Any idea on what is going on?

Thanks

Can you check the logs if it crashes?
If it does post the latest log file with the crash.

Hey there! First of all thanks for all the work youā€™ve put into the player. I have three problems that I hope youā€™ll be able to help me with.

Iā€™ve got my osr2+ last week and got your latest Patreon version the second the package arrived. The first setup (Quest3, MFP, DeoVR/SLR) was a breeze and everything worked perfectly. However, starting today I canā€™t seem to log in into SLR anymore using MFP.

Connecting to DeoVR without SLR credentials still works, but as soon as I put in my credentials Iā€™m hit the following message:

DeoVR failed with exception|System.Exception: SLR Interactive login failed! [Session: ]
at MultiFunPlayer.MediaSource.ViewModels.DeoVRMediaSource.SlrInteractiveManager.RunAsync(CancellationToken token)
at MultiFunPlayer.Common.ExceptionExtensions.Throw(Exception e)
at MultiFunPlayer.Common.TaskExtensions.ThrowIfFaulted(Task task)
at MultiFunPlayer.MediaSource.ViewModels.DeoVRMediaSource.RunAsync(ConnectionType connectionType, CancellationToken token)

Iā€™ve restarted the pc, the quest and changed my SLR password to see if there is a problem with the account, but nothing changed (SLR in the browser works perfectly fine and the account has script access). I also deactivated the firewall during testing. Do you have any idea what the issue could be?

The second issue is regarding my workaround using Heresphere and xbvr. Iā€™ve started xbvr and connected MFP with Heresphere using the Heresphere IP as the endpoint. The connection works, but when I now open Heresphere on the quest and start a video MFP doesnā€™t seem to react at all. Iā€™ve tried setting up a Script repository and pointed it towards the script directory of my xbvr but that too didnā€™t help. Have I missed something here?

Then I thought about using MPV to play local files, which works, but Iā€™m not sure how I can connect MFP/MPV with the quest. Is there perchance a tutorial for that?

Thanks in advance and sorry for the text wall!

1 Like

the same for me

Iā€™m also getting the ā€œSystem.Exception: SLR Interactive login failed! [Session: ]ā€ error. Iā€™ve tried on two different PCā€™s and two different versions of Multifun player. I have confirmed my SLR subscription is still active.

I must say seeing that Iā€™m not the only one makes me feel a tad better

this is from v1.29.4

2024-09-26 19:16:05.5978|FATAL|MultiFunPlayer|System.ArgumentException: An item with the same key has already been added. Key:
at System.Collections.Generic.Dictionary2.TryInsert(TKey key, TValue value, InsertionBehavior behavior) at System.Collections.Generic.Dictionary2.Add(TKey key, TValue value)
at System.Linq.Enumerable.ToDictionary[TSource,TKey,TElement](List1 source, Func2 keySelector, Func2 elementSelector, IEqualityComparer1 comparer)
at System.Collections.Frozen.FrozenDictionary.ToFrozenDictionary[TSource,TKey,TElement](IEnumerable1 source, Func2 keySelector, Func2 elementSelector, IEqualityComparer1 comparer)
at MultiFunPlayer.Common.DeviceAxis.LoadSettings(JObject settings, JsonSerializer serializer)
at MultiFunPlayer.Bootstrapper.ConfigureDevice(JObject settings)
at MultiFunPlayer.Bootstrapper.Configure()
at Stylet.BootstrapperBase.Start(String args)
at Stylet.BootstrapperBase.b__9_0(Object o, StartupEventArgs e)
at System.Windows.Application.<.ctor>b__1_0(Object unused)
at System.Windows.Threading.ExceptionWrapper.InternalRealCall(Delegate callback, Object args, Int32 numArgs)
at System.Windows.Threading.ExceptionWrapper.TryCatchWhen(Object source, Delegate callback, Object args, Int32 numArgs, Delegate catchHandler)
at System.Windows.Threading.DispatcherOperation.InvokeImpl()
at MS.Internal.CulturePreservingExecutionContext.CallbackWrapper(Object obj)
at System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback callback, Object state)
ā€” End of stack trace from previous location ā€”
at System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback callback, Object state)
at MS.Internal.CulturePreservingExecutionContext.Run(CulturePreservingExecutionContext executionContext, ContextCallback callback, Object state)
at System.Windows.Threading.DispatcherOperation.Invoke()
at System.Windows.Threading.Dispatcher.ProcessQueue()
at System.Windows.Threading.Dispatcher.WndProcHook(IntPtr hwnd, Int32 msg, IntPtr wParam, IntPtr lParam, Boolean& handled)
at MS.Win32.HwndWrapper.WndProc(IntPtr hwnd, Int32 msg, IntPtr wParam, IntPtr lParam, Boolean& handled)
at MS.Win32.HwndSubclass.DispatcherCallbackOperation(Object o)
at System.Windows.Threading.ExceptionWrapper.InternalRealCall(Delegate callback, Object args, Int32 numArgs)
at System.Windows.Threading.ExceptionWrapper.TryCatchWhen(Object source, Delegate callback, Object args, Int32 numArgs, Delegate catchHandler)
at System.Windows.Threading.Dispatcher.LegacyInvokeImpl(DispatcherPriority priority, TimeSpan timeout, Delegate method, Object args, Int32 numArgs)
at MS.Win32.HwndSubclass.SubclassWndProc(IntPtr hwnd, Int32 msg, IntPtr wParam, IntPtr lParam)
at MS.Win32.UnsafeNativeMethods.DispatchMessage(MSG& msg)
at System.Windows.Threading.Dispatcher.PushFrameImpl(DispatcherFrame frame)
at System.Windows.Application.RunDispatcher(Object ignore)
at System.Windows.Application.RunInternal(Window window)
at MultiFunPlayer.App.Main()

@_toast @Spektrus @Fentx

Seems like SLR changed login behavior, I have a fix internally, should be released this weekend after I do some more tests.

You have to enable XBVR repository and enter the correct ip of your XBVR server. Then you have to open the same ip:port in HereSphere web browser on your quest. It will show you a library view of your XBVR. Once you play videos from that view MFP will be able to get the scripts from XBVR server or your local script libraries.

Seems like you somehow have a device that has two axes with the same name. Can you also send me your config file?

1 Like

Found the issue; I placed the v1.29.3 MultiFunPlayer.config.json in the v.1.30.2 folder to avoid rewriting of the config, removed it and the program starts. I rewrote the config.json and everything works. Up to v.1.29.3 just copying the old config file worked.

Its still works, but maybe there was a bug when migrating config to newer version.
Do you still have the config that was crashing? I would like to take a look.

here it is

MultiFunPlayer.config.json (58.8 KB)

So your RESTIM Alltracks device has multiple axes with empty name, I need to ignore duplicate/empty axes when loading so it does not crash.

But what you are saying is that this config works in v1.29.3 but does not work in v1.29.4?
Is this config after you updated to v1.29.3/v1.29.4? What version did you use before the update?