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

Yup, you can do that no problem. You can even use all four at the same time if you want. SLR scripts work no different than normal scripts so you can test the setup with normal scripts.

You add one network/serial output for osr and a buttplug output for the vibe, and then map the vibe to L0.
But you will probably want to do something like this: MultiFunPlayer v1.22.0 - Multi axis funscript player - Now with SLR Interactive support - #241 by Maryjay

Please note that some users reported problems with DeoVR on oculus quest crashing after its latest update when trying to connect MultiFunPlayer. The fix for now seems to be to disable “Android Overlay (BETA)” in DeoVR settings.

How do I get the user configurable smart limit to have multiple nodes like you show in the example? I clicked around and could only get one value node so it behaves like a global limit instead of having different limits at different L0 values.

Also, could you make it so that the Motion Provider movements provide values that these limits respond to, and that can be linked to. I tried this and when using the Motion Provider on L0, I could not get the R2 axis to respond via linking. Let me know if I’m missing something.

I want to be able to have the L0 axis movements that are randomly generated link to the R2 pitch axis so that at the top of the stroke, the R2 can pitch forward in a “twerk” move, but the bottom, it won’t twerk quite as hard and bend my anatomy. If this could work with linking, but also with randomly generated moves, that’d be great!

The idea is that the moves can gyrate around more at the top of the L0 axis, but are more constrained at the bottom, so having the same kind of linking/limiting ability on the R1 roll axis would be great, too.

I play in VAM and use this to create movements of the characters in a scene. Is there a way to get VAM to trigger Motion Provider parameter changes so that from within a VR CGI scene, one could request faster strokes, or a change of looping scripts, and the command would increase the speed/change the script of the L0 axis?

1 Like

I had that problem and fixed it by uninstalling and reinstalling DeoVR in my Quest 2.

1 Like

Double click on empty space to add new nodes, double click on node to remove it.

Smart limit input value is the final calculated value that combines script, motion provider and other features. You dont have to link axes for smart limit to work, linking is for script only, basically when you link axes the script is copied to the other one.
You have to set “Input axis” in the smart limit for R1/R2 to L0.

Not really what it was designed for but this should work:

  • Random motion provider on L0
  • On R1/R2:
    • Set motion provider to “pattern”
    • Set motion provider range to 99%-100% or 0%-1% depending on what you want (both handles max right or max left), this will limit it to constant 0% or 100% value. Or set it to some specific value you want like 59%-60%.
    • Set smart limit input axis to L0
    • Configure smart limit curve to your liking

Its simpler to create “grinding” behavior with scripts:

  • Link R2 to L0
  • Add slight script offset, for example 0.5s
  • Optionally invert R2 script

Yea that was more or less the idea behind smart limit, just inverted: less movement at the top, more at the bottom.

Only via keyboard/mouse/gamepad keybinds, there is no vam → mfp communication.

1 Like

Slowly getting there ! Your software is awesome I wonder why it took me so long to try it properly _
Last problem to solve : I have OSR2 (serial output) and lovense toy (buttplug) all configured properly as you just suggested. Everything work except that the Lovense still vibrates at its lowest setting when (V0) shows zero.

Is there a way to make it really zero (no vibes at all) ?

Thanks for your support

It should do that yes.
Make sure you have minimum V0 output range in buttplug output set to 0%.

Otherwise you would have to change log level to trace via the cog button at the top, reproduce it not stopping at 0%, and send me the latest log file.

Hello,
need help for quest 2 with Multifunplayer. connect to Buttplug not to Heresphere (Quest) Ip from Quest access denied. Can anyone help why?
thx

Make sure to enable remote control in HereSphere settings, also the ip in MFP also needs to include the port: <ip>:23554.

Added initial The Handy output that uses V3 firmware: nightly.link | Repository Yoooi0/MultiFunPlayer | Run #2703641936
Absolutely not tested as I dont have a handy so I would appreciate if anyone could report any issues.

1 Like

Is there any know issue with Windows 11?
I can open MultiFunPlayer-1.20.2 without any issues. MultiFunPlayer-1.21.0 doesn’t open. No dialog appears, no log folder. :cry:
Any ideas?

Try installing latest .net x64 desktop runtime: Download .NET 6.0 Runtime
As usual it seems microsoft broke update popups because it should tell you that you need to update and auto download/install it.

On github there are also “self contained” releases that you can download which dont require .net installation.

Thanks. That did the trick. :+1:

MultiFunPlayer v1.22.0:

Download: Release MultiFunPlayer v1.22.0 · Yoooi0/MultiFunPlayer · GitHub
Patreon build: https://www.patreon.com/posts/70476358

  • Add internal media source (#40), allows playback of scripts without a video
    2022-08-08_22-09-39
  • Add experimental The Handy support (#49), requires V3 firmware
    2022-08-08_22-11-42
  • Add theme settings
    2022-08-08_22-27-49
    2022-08-08_22-13-49
  • Add ability to limit axis speed with smart limit (#68)
    2022-08-08_22-12-10
  • Convert to double precision numbers
  • Improve buttplug output smoothness caused by sending wrong move duration (#69)
  • Allow auto-homing inside script
    2022-08-11_17-35-07
  • Fix auto-home not working with motion providers by reworking the core update loop (#74)
  • Fix random buttplug crash when stopping (#70)
  • Fix buttplug log messages
  • Fix Axis::Value::Offset action not working with uninitialized state value
  • Fix property changed not getting raised for motion source settings
  • Fix default websocket output update interval
  • Fix exception due to disposing and auto skip to script start race condition
  • Fix random serial output crash when refreshing ports

If you like what I’m doing, please consider supporting me on Patreon

3 Likes

How can keybindings be transferred from one version of MFP to the another.

Just move the MultiFunPlayer.config.json to the new install location, or just overwrite all old version files with the new ones. Unless you are updating from a very old version then its possible they will be reset.

1 Like

Great work! I don’t know if it’s an illusion, but in the case of high update frequency, the device moves more smoothly than the previous version, which feels good. :grinning:

1 Like

Once you get this dialed in with script linking from L0 to R2, and randomized roll and twist, along with keybindings to control the stroke length and midpoint with a game controller…fuuuuuuuuuck! It’s the best!

1 Like

I’m getting a error when trying to connect with a device with Intiface + when MultiFunPlayer tries to connect to it.

Error when connecting to server:

Buttplug.ButtplugConnectorException: Specific error for connector type: Tungstenite specific error: IO error: No connection could be made because the target machine actively refused it. (os error 10061).
at Buttplug.ButtplugClient.ConnectAsync(ButtplugWebsocketConnectorOptions aConnector)
at MultiFunPlayer.Common.TaskExtensions.g__DoWaitAsync|0_0(Task task, CancellationToken cancellationToken)
at MultiFunPlayer.OutputTarget.ViewModels.ButtplugOutputTargetViewModel.RunAsync(CancellationToken token)

You probably didnt start the server in intiface.