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

If you are able to connect to heresphere on quest then it should connect to deovr too.

Make sure you use the same endpoint ip/port for heresphere and deovr in MFP.
Make sure that remote control is enabled, maybe disable/enable it, maybe try without slr interatcive enabled.
I dont have a quest so is it possible that heresphere is running in the background and preventing deovr from accepting connections? Since they are using the same port.
Is it possible to downgrade deovr version on quest?
Are you able to somehow get the deovr logs? No idea how to do that tho.

Iā€™m running out of ideas tbh, 99% of the time the No connection could be made because the target machine actively refused it. error means that the remote control is disabled in deovr.

You will have to use
[Output Name]::Axis::Range::Maximum::Offset
[Output Name]::Axis::Range::Minimum::Offset

Set target axis to L0, some offset value you want, and change the limit if you dont want it to decrease/increase past some value.
You will have to have 4 gestures, one for each dpad direction.

Media::ScriptOffset::Offset for a global script offset.
Axis::ScriptOffset::Offset for a per axis script offset.

Either
Media::PlayPause::Toggle to pause video.
Axis::Bypass::All::Toggle to bypass axis updates.

Thats more complicated, probably not possible to get it to match JFP 100%.
You would first have to setup random motion providers on L0, R1, R2, with common settings -> blend set to 100%.

Then use two gestures to enable/disable motion providers with Axis::MotionProvider::Set actions for each axis (one gesture, 3x Axis::MotionProvider::Set).
If you leave the Motion provider setting empty in action configuration it will disable motion provider for that axis. If you set it to Random it will enable it.

Should be doable with Axis::Value::Drive. You have to capture the left joystick axis gesture to see the ::Drive actions.

Could be either
Axis::ScriptScale::Set which will scale the script making the script range bigger, or
[Output Name]::Axis::Range::Size::Offset which will change the minimum/maximum range at the same time

No idea how that works and how it differs from upper/lower limit.

No idea what that does, but probably would be a similar setup as for Toggle 3-axis random stroker mode but with a pattern provider.

I am using the same endpoint ip/port, heresphere has been quit in quest2 so I doubt it is running.
After a reboot of quest2, and I removed heresphere from MFP so it wouldnā€™t try to connect, without ever starting heresphere in q2, gives same behaviour.

Just to be clear, I start quest2 headset from reboot, only start deovr, and MFP should connect?
I also tried both remote control off and on, I have slr interactive on.

Thanks for the rest of this, several controls I seldom use anyway, should have been more careful with my paste. Mostly just needed the top/botttom/roll to be controlled while 15 feet away from a computer with a headset on. I should be able to use heresphere/xbvr/osr2+ now and that is my usage 99% of the time if an OSR2 is being used.

You will have to use
[Output Name]::Axis::Range::Maximum::Offset
[Output Name]::Axis::Range::Minimum::Offset

Set target axis to L0, some offset value you want, and change the limit if you dont want it to decrease/increase past some value.
You will have to have 4 gestures, one for each dpad direction.

Media::ScriptOffset::Offset for a global script offset.
Axis::ScriptOffset::Offset for a per axis script offset.

Either
Media::PlayPause::Toggle to pause video.
Axis::Bypass::All::Toggle to bypass axis updates.

Thats more complicated, probably not possible to get it to match JFP 100%.
You would first have to setup random motion providers on L0, R1, R2, with common settings -> blend set to 100%.

Then use two gestures to enable/disable motion providers with Axis::MotionProvider::Set actions for each axis (one gesture, 3x Axis::MotionProvider::Set).
If you leave the Motion provider setting empty in action configuration it will disable motion provider for that axis. If you set it to Random it will enable it.

Should be doable with Axis::Value::Drive. You have to capture the left joystick axis gesture to see the ::Drive actions.

Could be either
Axis::ScriptScale::Set which will scale the script making the script range bigger, or
[Output Name]::Axis::Range::Size::Offset which will change the minimum/maximum range at the same time

No idea how that works and how it differs from upper/lower limit.

No idea what that does, but probably would be a similar setup as for Toggle 3-axis random stroker mode but with a pattern provider.
[/quote]

Yea

Maybe try with slr interactive off?

Also maybe try completely disabling firewall on your pc as a test. But if heresphere connects it should not matter.
Maybe there are some permissions or a firewall on the quest that prevent deovr from working?

I would like to help more but I have no idea why heresphere would work but deovr wouldnt.

i just keep getting errors when trying to connect this to a video player any idea what to do?

heres one when trying to connect to mpc

MPC-HC failed with exception:

System.TimeoutException: A task was canceled.
ā€”> System.Threading.Tasks.TaskCanceledException: A task was canceled.
at System.Threading.Tasks.TaskCompletionSourceWithCancellation1.WaitWithCancellationAsync(CancellationToken cancellationToken) at System.Net.Http.HttpConnectionPool.HttpConnectionWaiter1.WaitForConnectionAsync(Boolean async, CancellationToken requestCancellationToken)
at System.Net.Http.HttpConnectionPool.SendWithVersionDetectionAndRetryAsync(HttpRequestMessage request, Boolean async, Boolean doRequestAuth, CancellationToken cancellationToken)
at System.Net.Http.RedirectHandler.SendAsync(HttpRequestMessage request, Boolean async, CancellationToken cancellationToken)
at System.Net.Http.HttpClient.g__Core|83_0(HttpRequestMessage request, HttpCompletionOption completionOption, CancellationTokenSource cts, Boolean disposeCts, CancellationTokenSource pendingRequestsCts, CancellationToken originalCancellationToken)
ā€” End of inner exception stack trace ā€”
at MultiFunPlayer.Common.ExceptionExtensions.Throw(Exception e)
at MultiFunPlayer.MediaSource.ViewModels.MpcMediaSourceViewModel.UnwrapTimeout(Func`1 action)
at MultiFunPlayer.MediaSource.ViewModels.MpcMediaSourceViewModel.RunAsync(CancellationToken token)

You need to enable web interface in mpc (Options ā†’ Web Interface ā†’ Listen on port).

Hello Yoooi,

On the handy integration: could this be the same ā€˜problemā€™ with the interpolation causing the stuttering?

dec 22:
Is there a way to only output the raw funscript points to the t-code device, without the interpolation?
(i.e. L00000I500 L09999I450 L00000I300 L05000I250)
Iā€™m using a stepper servo system and the controller needs this for the correct acceleration values, currently itā€™s working but itā€™s far from smooth.

Script interpolation on itself is not causing the stuttering. Its the amount and frequency of data sent to the handy. But apparently it is even stuttering at like 5-10hz update rate which should not be a problem. Without a handy to test with I cant tell what is the issue, but it is most likely the problem with sending data through their servers.

Even if MFP sent funscript points it would use the same method, so not really a fix. And implementing that would be a huge change to the core loop of MFP, so Iā€™d rather wait for them to support local wifi, or remove the handy completely. A toy requiring always online communication sounds/works terrible.
To me it seems like only way for handy to behave correctly is to upload the full script, which tbh would be an easy plugin to make so maybe I will convert the implementation to a plugin that uploads the script.

I have done this, but it does not seem to have any effect on adjusting the top value of L0? What am I doing wrong/missing?
i.e., in JFP each time I hit DirectionalPadUp, the top of the range limit moves up.
In MFP nothing changes, I canā€™t move the output range up or down with the controller.

The offset is configured to 0%, so it doesnā€™t change the range.

Is there currently any way to use MFP with Stash?

1 Like

No, I recently checked the stash api and there seems to be no way to get the status of currently played video, or something like a user session state.
You would have to use stash as a host for other supported video players, but there might be an issue with MFP not finding the funscripts from stash.

Assumed so. I think someone over there was working on something a while back, but then they gave up.

Well hopefully itā€™s something that can be worked out eventually. Using XTP at the moment, but itā€™s not the same as my organised library in Stash.

If you could make it so videos from stash open in mpv instead of in browser then it should work fine.
Or you could maybe use stash deovr/heresphere integration.

1 Like

Hmm, didnā€™t think about that. Will give it a shot :+1:

didnā€™t give up, just had other projects so havenā€™t made it easy to use

Here is my pre release version if someone wants to try using it

https://anonfiles.com/63edpcz7zf/stash_mfp_zip

2 Likes

Close enough.

ā€œHavenā€™t made it easy to useā€ means itā€™s probably no use to me :joy:
Someone else might be able to make use of it though.

**
Yeah nah, the plugin fails to compile. Beyond my understanding.

there must have been some breaking changes in MFP
iā€™ll see if I can fix it soon

2 Likes

Whatā€™s the deal with all the SexLikeReal issues? Is that something we can fix?

A few people seem to have issues with the remote control server in deovr/slrapp on quest not working or not accepting connections for some reason.
Heresphere seems to work for @scrptr9 so that rules out the network and mfp (since heresphere has the same api format as deovr)

is there some settings I am missing to get this working with the DeoVR app? trying to visit SLR but it doesnā€™t get a script. It just gets a blank script everytime