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

Thats extremely strange that there is no difference. So the only way for the handy to behave is to upload the whole script to the device. Thats lame.
Have to wait for 4.0 firmware and see if they add anything usable I guess.

1 Like

Iā€™m new to this. I want to make scripts to play with videos on my Oculus Quest 2, and I was hoping this MultiFunPlayer would do it. I got Intiface and MPC-HC set up, and connected to MultiFunPlayer, successfully. If I go to the bottom of the MultiFunPlayer application, open device map, then and add my Lovense Hush butt plug, like the directions suggest, the butt plug starts vibing at 100% and will not stop until I hit the red trash can icon to remove it. I see no way to change the vibration levels, or to create a funscript file. If I hit play at the top, the video plays, and if I connect my Hush buttplug at L0, it vibrates, but I have no idea how anything in the middle of the screen works. I must be missing something.

Windows 10, connected through the white Lovense USB dongle, with Intifice.io, and I connected to that with Buttplug.io in Multi Fun Player. I have a bunch of other lovense toys I could use. Iā€™m just using the Hush for now. It only has one simple vibrator on it, so no fancy twisting or sucking or any of that. I have other toys, for the fancy stuff later. My Oculus Quest 2 is connected to the PC with a Link cable.

What directions are you following?

You need to open settings via the cog button on top of the window, go to device tab, clone the selected device and change default value of L0 from 50% to 0%.

As alternative in the same tab you could check the ā€œload unnamed scriptā€ for V0, and then map your vibe to V0 which has 0% default value instead of using L0.

You cant create funscripts in MFP, it can only load them if you name the funscript file the same as the video file (<video filename>.funscript) and place it in the same folder as the video.

The middle L0/L1/L2 etc. tabs are additional per axis features, you could just play with them for the axis you map in the buttplug output to see what they do, or you can always ask here.

1 Like

Thank you! It works great now. To answer your questionā€¦ I was trying to follow the directions at the github page for the project. It got me as far as connecting to MPC and Intiface, but then the documentation said connect the device with an arrow and kind of left it at that.

So now I can play funscripts on windows, without the stupid VibeMate browser Lovense came up with. I still donā€™t know how to make them or play them on Oculus Quest 2, but thatā€™s off topic for this thread, so Iā€™ll just keep digging.

Thanks for the help!

EDIT: I figured out how to use this to play video on the Quest! I noticed Deo is on the list of supported video players, so I set it up as the input and it works great with a script I downloaded from here.

1 Like

Hi Yoooi. I sometimes uses single-axis scripts with MFS and my OSR2+. I felt like I could make things more interesting by adding some pitch motion.

I usually do this by making my own .pitch script, which Iā€™d copy from the main script, adjust and offset them, so that each down-up movement will be paired with a scoop motion in the pitch axis.

I recently discovered that MFS can be used to generate motions, but I couldnā€™t figure things out beyond letting R2 performing a pattern on a fixed interval. I wonder if itā€™s possible to establish some sort of correlation between the execution of this pattern and commands on R0, as to achieve something similar to my make-shift pitch script.

Sure, select R2 axis tab, click on ā€œLink scriptā€ button and select L0 as target, then expand additional settings panel using the arrow button on the right side and set some script offset. R2 will now load the same script as L0 just with some offset.

The default behavior for R1 and R2 since v1.25.0 is a random generated motion, and this is what I have always used myself.
If you used MFP before v1.25.0 then you can set R1 and R2 motion provider settings like so:
https://i.imgur.com/BebBJHU.png

1 Like

Thanks! This turns out to be pretty simple. I hope more people knows about this and embraces the OSRs.

Iā€™m having some issue trying to connect to plex as soon as I press connect its says disconnecting and after that disconnected. Has anyone been successfull in setting MFP with plex ? Is there any tutorial I can follow for the setup ?

Did you input your PlexToken and select a client?
Anything in the MFP logs?

I think I have a probleme selecting the client it just show nothing when I open the drop down menu. I also did use the plex token
image
this what I have in the log file

You need to enter your plex token, change endpoint ip to point to your server, then refresh the client list and select a client. Then you can connect.
Iā€™ll change the UI to not allow connecting without token or client.

this is exactly what I did.

image

I tried the local ip with the port 32400
Is it not working beacause Iā€™m trying to use it on the same pc that my plex server is on?

What client are you using?

I know Plex for Windows doesnt work.
I know Plex Media Player and Plex on iOS work, Plex for HTPC should work too.
Donā€™t know about other clients.

windows. so that is the issue then.

what media player do you recommend using on Windows ?

If you mean plex then dunno, I use plex for windows.
If you mean in general then for VR HereSphere, for 2D mpv or mpc-hc (clsid2 builds).

Hi. I am trying to figure out how to get multi-axis scripts to automatically work with MFP + SR6 + HereSphere + XBVR. I host my videos and funscripts in XBVR and play them using HereSphere. I connect MFP to my SR6 and HereSphere. MFP receives video info but does not load funscripts automatically. Funscripts may be in different paths and use different names than the original video, and HereSphere / XBVR will convert the sent video name anyway into a different format.

I think HereSphere should send metadata in json format via API to MFP, and MFP should be able to read the funscript file path from there. Why does it not work? Is there any simple way to automatically load XBVR configured funscripts in MFP? Thanks.

I wish not to manually rename each funscript file to match with the video file names since Iā€™ve already done the linking in XBVR.

EDIT: Maybe the easiest way to implement support for XBVR served funscript files is to get funscripts via XBVR HereSphere web API. It is really easy to use JSON API. Maybe consider this integration? It would make lives a lot easier. Thanks.

I implemented support for getting multi-axis funscripts automatically from XBVR by adding the following to the end of ScriptViewModel.cs ā†’ SearchForScripts() method:

        // Try to get from XBVR
        if (MediaResource.Remote && MediaResource.Name.Contains(" - "))
        {
            var xbvrID = MediaResource.Name.Split(" - ")[0];
            var xbvrURL = $"http://localhost:9999/heresphere/{xbvrID}";
            using var client = NetUtils.CreateHttpClient();
            var response = client.GetStringAsync(xbvrURL).Result;

            var info = JsonConvert.DeserializeObject<XBVRMediaInfo>(response);
            foreach (var funscriptFile in info.scripts)
                TryMatchName(funscriptFile.name, FunscriptReader.Default.FromStream(funscriptFile.name, "C:\\Interactive", client.GetStreamAsync(funscriptFile.url).Result));
        }

You will also need these classes:

 public class XBVRMediaInfo
 {
     public string title { get; set; }
     public List<XBVRFunscriptMetadata> scripts { get; set; }
 }

 public class XBVRFunscriptMetadata
 {
     /// <summary>
     /// File name with extension.
     /// </summary>
     public string name { get; set; }

     /// <summary>
     /// File URL.
     /// </summary>
     public string url { get; set; }
 }

Maybe not the safest or best approach but it works. Have fun!

The code above is granted to you with MIT license - use it however you want. I will not create a Github pull request or tidy the code in any way since I donā€™t want to link my personal Github account to pr0n. :wink:

2 Likes

Itā€™s a bit of a pain because XBVR serves a different name to the video player. For single axis scripts itā€™s not too bad, just use the export funscripts function and save them somewhere (that XBVR wont scan else it will try add them again), then add that folder to the script libraries in MFP.

Multi-Axis makes things more complicated because XBVR currently doesnā€™t support them so will require some manual renaming. Itā€™s not a huge issue because I donā€™t have too many multi-axis scripts.

What I do is add the base script to to Stash (my VR MA folder), the exported scripts go in the XBVR folder, then I move the MA scripts to the XBVR MA folder along with the other axis scripts. I then have to rename the scripts for the other axis to be the same as the one from XBVR.

image

1 Like

Haha I just got rid of the pain, check my code above and apply it to MFP :wink:

1 Like