MultiFunPlayer is a simple app to synchronize your devices (e.g. OSR or buttplug.io supported devices) with any video using funscripts. Supported video players are DeoVR, MPV, MPC-HC/BE, HereSphere and Whirligig.
The player’s main feature is the ability to play multiple funscripts at the same time, allowing for greater movement fidelity.
The project is hosted on github so any issues/feature requests should preferably be posted there, but you can of course always do that here too. Under the “actions” tab you can find development/beta builds with not yet released features.
If you are interested you can also find my other OSR/VaM/TCode projects on my github profile.
If you like what I’m doing, please consider supporting me on my Patreon
Patreon only features
Support for DeoVR SLR Interactive script streaming (requires SLR subscription)
Internal player to play scripts without video files
Supports buttplug.io, network TCP/UDP, websockets, namedpipes, serial, file and The Handy outputs
Supports multiple outputs of the same type working concurrently
Supports TCode v0.2 and TCode v0.3 devices
Auto detection and connection to any supported video player and output
Bind keyboard/mouse/gamepad input to almost any customizable action (150+ available actions)
Seek and play/pause video from MultiFunPlayer
Supports multiple concurrent outputs
Real time script smoothing using pchip or makima interpolation
Per axis speed limit
Auto-home when axis is idle for specified time
Smart limit to limit axis output range or speed based on position of another axis with fully customizable curve
Supports local, DLNA, web and unc video paths
Soft start sync feature to prevent unwanted motion
Script libraries to organize funscripts in different folders and load funscripts not located next to the video file
Ability to link unscripted axes to scripted axes
Ability to generate additional motion or fill script gaps using random, script or pattern motion providers
Customizable color theme
Multi funscript heatmap with stroke length visualization
True portable app, no files are created/edited outside of the executable folder
To synchronize with videos, start your desired video player and wait for automatic connection or click on the connect button to connect manually (NOTE: DeoVR, Whirligig and HereSphere require you to enable remote support in their settings). Once connected, the funscripts can be loaded in several ways:
Manually, by dragging a funscript file from windows explorer and dropping it on the desired axis File text box.
Manually, by using the Script->Load menu in the axis settings toolbar.
Automatically, based on the currently played video file name if the funscripts are named correctly:
Yes, there is the table above with correct names, all currently shared multi axis scripts will work fine, although “suck” was/is sometimes “valve”, I’ll add compatibility for suction to handle “suck” too.
Quick question, if you just needed to use OSR manually, (without funscript), is there any software available able to handle this? perhaps using a gamepad? It appears that all OSR softwares available are primarily for playing funscripts.
I am cross-referencing HandyControl where you are able to use the Xbox controller’s dpad to increase/decrease speed and stroke length as needed live on the Handy. Any such capability with OSR?
I read somewhere that Tempest himself is creating a random stroker app but unsure if he will add gamepad support.
If you consider adding the functionality to your app, please consider using the dpad - left/right for speed increase and up/down for stroke length increase. Also, a way to pause- perhaps the start button.
I think OSR has a lot of potential, and per a lot of testimonials here, better than the handy, but for people who prefer to not use scripts, it is a little limited.
I cant thank all of you enough that literally share your programming expertise for all of us to enjoy through these apps. You are doing gods work.
There are a few random strokers available on the OSR discord, none have gamepad support iirc. I also have a random stroker app in plans. And you could also technically use my other app LiveSense just by adding the tips manually, it allows you to simply program additional motions, but has some built in.
speed increase - there is not speed with OSR, it just accepts live positions, you can just use video playback speed to have similar effect
pause - unnecessary as MFP pauses when you pause the video
stroke length - i guess the only that would be useful, but it gets complicated with all the available axes
So i think for now im not planning on adding shortcuts.
Add shortcuts feature that allows binding keyboard/mouse/gamepad input to almost any setting or value (there are 900+ possible actions). Shortcut settings can be accessed via a button on the window title bar.
Show window minimize button (#10)
Fix rare value stutter by resetting sync before setting new position
Fix position error correction causing micro stutters, now smoothly adjusts time scale
Fix output target range sliders visual jitter
Fix serial autoconnect working after device is disconnected (#11)
Fix auto home not working in certain situations
Fix repeated valid index search before script first keyframe
Fix message spam from DeoVR and HereSphere
Fix TCode commands beginning with a space character
Fix video changed message getting ignored when playing a video file with the same name but in different path
If you like what I’m doing, please consider supporting me on Patreon
Just getting to know the software since I got my OSR2+ the other week. Is there a hotkey setting to reduce the script intensity, either travel distance or stroke cadence? Something to help with edging without the blunt instrument “on/off” setting of the power bus switch.
If I’m understanding correctly though, there is a chance that I “overshoot” my tuned limits and risk smashing my wang? So I’d have to keep track of how many “clicks” I reduce by, and then reverse the same number of clicks when I wanted to get back to the original action?
Yea, I guess you would have to do that. I have my limits set at about 5%-95% so there is not really much to overshoot.
I could easily add new actions to adjust a “multiplier” that would go from 0-100% where 100% would always be the value that you have set on the slider. But that is a lot of new actions. Its the first iteration of shortcuts so time will tell what changes/additions have to be made.
Donate to Eroscripts to help support our server costs. Currently only accepting crypto:
BTC - bc1qspjpwhtnu377xp2pt68xkyv2ylfa36wh0523mx ETH - 0x772DE07eBA1C3D4621c252eBe44671060CF45CdC XMR - 47HbrW3BLvRKWAp6rx27DwKUVQYRTFowMboquTgihhxAY5ReAnHSzt7S9NHijCRYFscbCBatv8AFkgRKyPahDZAF58Q8XYD