Funscripted

Players and apps

How to Set Up MultiFunPlayer for Funscripts

MultiFunPlayer is a free, open source Windows app that plays funscripts on many devices at once. It follows the playback time of a video player, such as VLC, DeoVR or HereSphere, and sends each axis to your devices.

By the Funscripted team. Updated .

What you need

  • A Windows PC with the .NET 8.0 x64 Desktop Runtime and the Visual C++ 2019 x64 Redistributable.
  • The latest MultiFunPlayer release from its GitHub page. Version 1.32.1 came out in March 2026.
  • Your device, plus the video and its .funscript files.

Set it up step by step

  1. 1Install the .NET 8 and Visual C++ runtimes if you do not have them, then download and start MultiFunPlayer.
  2. 2Pick your video player as the media source. VLC needs its web interface turned on. DeoVR, Whirligig and HereSphere need remote control turned on. You can also use MultiFunPlayer's own player.
  3. 3Add an output for your device. The table below shows which one to pick.
  4. 4Play the video. MultiFunPlayer loads the scripts that match the video name.
  5. 5Set a speed limit and range for each axis, and adjust the offset if the moves feel early or late.

Which output to add

DeviceOutput
OSR2, SR6, SSR1 on a USB cableSerial. Pick the COM port of the robot.
ESP32 robots on Wi-FiUDP or WebSocket, with the TCodeESP32 firmware
Bluetooth toys, such as the Kiiroo Keon, Lovense Solace Pro or a vibratorButtplug.io. It connects to Intiface Central at 127.0.0.1:12345.
The HandyThe Handy output is marked experimental, and an open bug report says it does not work on firmware 4. Use Handyverse or the Funscripted player instead.

Other outputs include TCP, named pipes and a file output. MultiFunPlayer supports T-Code v0.2 and v0.3.

How MultiFunPlayer finds scripts

  • It loads scripts on its own when they are named after the video, such as my-video.funscript.
  • Extra axes use names like my-video.roll.funscript. See the multi-axis guide for the full list.
  • Script libraries let it load scripts that are not next to the video file.
  • It can also use XBVR and Stash as script sources.

Settings worth knowing

SettingWhat it does
OffsetShifts the script earlier or later, in seconds. There is a global offset and one per axis.
Speed limitCaps how fast each axis may move. Set it before your first run.
InterpolationHow the path between points is drawn: Linear, Pchip, Makima or Step. Pchip, a smooth curve, is the default.
Auto-homeMoves an axis back to its home position, set per axis.
Smart limitLimits the range or speed of one axis based on another axis.
Soft startEases in when playback starts, to prevent sudden unwanted motion.
Motion providersFill gaps in a script, or add extra motion, with random, pattern or custom curve motion.

Find your next script

Every script on Funscripted is a standard .funscript file that works with the players and devices in our guides.

Frequently asked questions

Is MultiFunPlayer free?

Yes. It is free and open source under the MIT license.

Does MultiFunPlayer work on Mac or Linux?

No. It is a Windows app that needs the .NET 8 x64 Desktop Runtime. For T-Code robots on a Mac or Linux PC, XTPlayer is a free player that runs on Windows, Linux and Mac.

Why does MultiFunPlayer not load my script?

Check that the script has the same name as the video and sits in the same folder, or add its folder as a script library. Also check that MultiFunPlayer is connected to your video player.

Does MultiFunPlayer work with The Handy?

Its Handy output is experimental, and an open bug report says it does not work on firmware 4. Use Handyverse, ScriptPlayer, HereSphere or the Funscripted player for The Handy.

How do I connect MultiFunPlayer to Intiface Central?

Start the server in Intiface Central and connect your toy there. Then add a Buttplug.io output in MultiFunPlayer. It looks for Intiface at 127.0.0.1:12345 by default.

Related guides

Sources