FunPlayer v1.3.1 - macOS funscript player - TCode USB, The Handy, Intiface


FunPlayer app icon

FunPlayer is a funscript player for macOS that syncs a video and a funscript file and supports The Handy via WiFi, many devices via Intiface Central, and TCode (linear axis only for now).

Download

download_on_mac_app_store_badge

Features

  • Video & Funscript Playback – Sync a .funscript file with a video. As the video plays, actions will be sent to connected devices.

  • Private by Design – No telemetry. No ads. FunPlayer is designed from the ground up to be private. I wouldn’t have it any other way. View the privacy policy here.

  • The Handy Support - Add your Handy via WiFi mode for smooth HSSP playback.

  • Intiface Support - Add an Intiface Server connection and use your Handy in Bluetooth mode. Intiface supports many Bluetooth devices. Devices added via Intiface will appear in the app and can be enabled or disabled at any time.

  • TCode (via USB) - Connect your TCode device via USB. Tested on an OSR2+.

  • Hundreds of Compatible Devices – The Handy, Vorze, Keon, and many more.

  • Native App – The app is written in native Swift for smooth, native performance on macOS.

Links

Official site: https://funplayer.app

App Store link: ‎FunPlayer App - App Store

Discord link: FunPlayer on Discord

App Showcase

Bonus

If you are interested in the backstory/lore on this app, scroll a bit below, I’ll post the history in the next comment :slight_smile:

2 Likes

Changelog :bookmark_tabs:

v1.3.1 October 30th 2025

Support for TCode devices via USB. Linear axis only.

v1.2.1 October 6th 2025

Support for The Handy firmware 4.

FunPlayer now supports both firmware 3 and firmware 4.

v1.1.1 October 3rd 2025

  • Support macOS 26

v1.1.0 September 3rd 2025

  • QoL improvement: A device scan is automatically requested after connected to Intiface,
  • Improvement: Management of The Handy device events is improved,
  • Added: A Service notice panel and Update available panel to be used for relaying important information such as if The Handy API is having downtime,
  • Fixed: A UI bug with The Handy syncing note

v1.0.0 July 31st 2025

  • Initial release

The Backstory :books:

If you’ve ever tried to use a sex toy for script playback with something other than Windows or Android, you probably know the pain I went through back in 2021.

I had my iPad, a Keon, and was poking around with @qdot buttplug-js, was trying to get it all playing nicely together. On Windows at least, there’s ScriptPlayer and MFP which are awesome but what about other setups?

Using a sex toy on something not tied to Windows, and specifically, on my Apple devices was still there.

Web apps sort-of filled that itch but still, good native apps feel more polished / reliable, and are typically more capable of more features.

Even with web-apps for script playback, using on iOS was still a pain, had to use an app called WebBLE, was a clunky browser with WebBluetooth jammed in.

Technically it worked, but far from ideal. A native app would definitely be nicer.

I dabbled a bit in a couple other things in the space; Github repo here. Eventually, life moved on for me.


By late 2022, I stepped away and honestly thought it was for good.

Then one day in November 2024 — while clearing out some projects, I saw the old web-app still deployed, visited the Eroscripts post, and found it was still kicking.

People were still using it actively, a recent comment only a couple days ago. I couldn’t help but renew interest in re-working it.

It had to have been here where the thought of how nice it’d be to have a native app came to my mind again (I had a Mac at this point and my trusty iPhone, that iPad was sold). I’m sure there’s people out there that would find such an app useful.

But I was out of Genie wishes to instantly pull this app into reality and so making this app would require rolling up a sleeve, money, a lot of time and effort, and quite literally bureaucracy, walking through Big Corpo steps when setting up and publishing to their store. Still tho, the thought was there.

In December '24, I published a much-needed V2 rework for the web-app, then dabbled into an iOS app. Got it working with Intiface, recorded a little demo with it on my phone, then threw it out :slight_smile:

The code was a mess. It wasn’t something I could publish and stand by, so scrapped it and started over, this time prioritizing tests (shout out to my TDD homies) and a solid foundation.

During the start-over, I also changed to focus on macOS first, then iOS down the line.

Time passed, months flew by. Was juggling between work, life, and late-night coding.

Then, on the 31st July 2025 the app went through review and got published on the Mac App Store :slight_smile:

For this first release, it’s a simple app without the bells and whistles. Pick a video and funscript, add devices, and play.

Support for The Handy via HSSP and Intiface for BT devices. This also means you can use The Handy offline via BT with Intiface.

It’s not flashy, but it’s a solid foundation I’m genuinely proud to share and build on.

To my fellow Apple citizens—join me on Discord and let’s continue shaping this app together. There’s a long road ahead, and some ambitious ideas waiting and I would love input on what to focus on and what actually matters for you.

2 Likes

The LLM removed any spaces present in the brand part of IoST Index URLs listed under Device Compatibility.
Couple of examples:
Your link to Adrien Lastic’s “Palpitation” is https://iostindex.com/devices/adrienlastic/palpitation/
Real URL is https://iostindex.com/devices/adrien%20lastic/palpitation/

Your link to Mirea AI’s “Little Blue Whale” is https://iostindex.com/devices/mireaai/little%20blue%20whale/
Real URL is https://iostindex.com/devices/mirea%20ai/little%20blue%20whale/

This seems to be the case for all links with “%20” in the brand name.

1 Like

you’ve got as sharp an eye as ever! appreciate you :love_you_gesture:

I had this written down a little bit ago but forgot about it.

yeah this was the note on my phone lol:

alright, fixed it, all good now.

edit: oh great nvm just tested the case that I mentioned in my original note post, + still breaks. need to replace + with _

edit2: okay there we go.

hey everyone, the v1.1.0 release is now available on the Mac App Store.

the new update brings the following:

  • QoL improvement: A device scan is automatically requested after connected to Intiface,
  • Improvement: Management of The Handy device events is improved,
  • Added: A Service notice panel and Update available panel to be used for relaying important information such as if The Handy API is having downtime,
  • Fixed: A UI bug with The Handy syncing note

download_on_mac_app_store_badge

Hey this looks awesome! I can’t wait to try it out, which I hope to do tomorrow :wink: Thanks so much for making this.

1 Like

no worries, enjoy! :smiley:

any chance of getting this to work with VR video on the Vision Pro?

1 Like

I actually haven’t looked into Vision Pro.
What video player apps are there for it?

The idea is for example on Meta Quest devices people use apps such as DeoVR for example, which have a feature that, when toggled, an app for example running on your Mac would be able to ask DeoVR what time the video that is playing is at. Then with that piece of info FunPlayer for example will say okay video is at 20:00 minutes in, will send actions for that time.

——
By the way, this feature is not yet supported anyway but is planned for a future release. The feature would be FunPlayer allows a user to connect to supported video players on a users VR headset so it knows the time the video is at and other info such as what the video name is so could auto-load the funscript that is stored in a folder for example

The VR player I use is Moon Player (and sometimes reality player) to play from a SMB share and I think DLNA is supported as well. And since iPad apps are supported, intiface central can be installed directly on the Vision Pro as well. It feels like all the pieces are here to make something.

Vision Pro has the best graphical fidelity of any VR headset I’ve ever used and the pinch controls are actually really intuitive.

1 Like

thanks for the info, will keep this in mind when working on that feature later

1 Like

just released a new update for macOS 26 support. had to make a couple changes and a layout fix.

new update just released.

v1.2.1 brings support for The Handy firmware 4.

FunPlayer now supports both firmware 3 and firmware 4.

Does this work with the FunSR1 ?

Any chance to add the heatmap below the video?

Awesome app, thanks for the hard work!

1 Like

using Serial devices like FunSR1 is planned but not right now. the main thing I want to do before that is the script management, right now one script can be selected, for Serial devices they can have multiple scripts for different axis.

as to heatmap under the video, yeah that is a work in progress :slight_smile:

actually scratch that plan to improve script management before getting Serial devices to work.

I think it’s better to add Serial device support even if it’s just for stroke axis, at least that would cover those who just want to use a video player with eg SR1.

then script management improvement can come along after so that Serial devices with more than 1 axis actually have a good user experience because the app right now really is for a single axis

I’ll probably work on this feature very soon.

Wonderful software. One problem is that the player window doesn’t seem to display longer videos? When I load Noodledude Cock Hero or Noodledude Mega Mix the player screen turns gray with a light gray Q inside it. Audio still plays but no video. https://discuss.eroscripts.com/t/noodledude-ultimate-collection-all-scripts-upscaled-videos/161229

hmm that definitely shouldn’t be the case.
I’ve loaded a very long and large video into the many GB without drama.

very interesting, I’ll download the video you tried playing and see if I get the same issue.

in the meantime, could you try out any other long videos from a different creator to see if it still occurs and report back?

would help for sure.