Buttplug C# v0.1.2 Released

Update: We've released v0.1.2, a small bugfix release on top of v0.1.1. If you already updated v0.1.1, you'll need to download v0.1.2 from the releases site, as the updater was broken.

Buttplug C# v0.1.2 is out! You can pick it up at the Buttplug C# Releases site on Github.

For those interested, here's the changelog.


  • Added auto update and update checking functionality
  • Added support for the following hardware
    • WeVibe 4 Plus, Ditto, Nova, Pivot, Wish, Verge
    • Lovense Domi
  • Added more product names for the Lovense Hush (LVS-Z36, LVS_Z001)
  • Added Game Vibration Router application
  • WebsocketServer now defaults to SSL


  • Fixed hang when no XBox controllers and no Bluetooth adapters are connected
  • SSL Errors in Websocket Server are now shown in GUI or as a notification, not in modal dialogs
  • Fixed ObjectDisposed Exception in Kiiroo App
  • Fixed port number changing in Websocket Server
  • Fixed crash when copying IP addresses in Websocket Server
  • Fixed version number listing in logs
  • Vibratissimo devices now required to be named "Vibratissimo"

The GUI is still mostly the same as Buttplug v0.1.0, so for right now, the v0.1.0 tutorial is still basically valid. We'll be updating that as needed for the new version.

For those using macOS, Linux, Android, or ChromeOS, remember that buttplug-js supports WebBluetooth on Google Chrome 61 (it's actually worked since 56 but there's relevant bugfixes in 61 that make it worth using) on these platforms! Our Syncydink haptic movie player uses buttplug-js and should work on these platforms with no extra installs.

I'm going to get back to making Buttpluggin' With qDot videos soon, and the first ones on the queue are Buttplug usage tutorials, with many examples of how you're supposed to use what we're building.

If you have any problems, feel free to leave github issues on repos if you have a github account, or contact us on our message boards, Discord Server, or Slack Instance to get help!

Metafetish Dev Log - Week of 2017/09/11

Time for another Metafetish dev log!


First off, just wanted to remind people that I have a patreon to fund all of the work I'm doing here!

Currently, this is about the only income I make off of sex tech work, so every little bit help. Even $1/month donation subscriptions are appreciated.


On to hardware releases and updates...

Kiiroo Pearl 2

The Kiiroo Pearl 2 is now shipping. $99 gets you a vibrator with touch sensors that won't have to do much to be better than the Pearl 1. We'll have support for it in Buttplug pretty soon.

Fleshlight Launch

Due to getting even more reports of people bricking their Fleshlight Launch toys while upgrading firmware on them, I decided to do some digging into the firmware loading process. I've now written my own firmware loader that I'll be posting soon (it's web based, so you can just use chrome on android), as well as figured out the bugs that are causing Launch toys to get stuck in bootloader mode. If you have a Launch that is stuck in bootloader mode, please post on this thread in our forums and we can help get you fixed up.

I'll be making a large post about the internals of the firmware loading system soon, including information on loading our own modified firmware to the Launch (which is possible now!).

The nice thing about this work is that we are now basically free of the FeelConnect app system. The only thing we needed the app for was firmware loading, and since that can be handled by our own code now, we can finally kick it off our devices. Yay!

Metafetish Dev Log - Week of 2017/09/05

Time for our weekly roundup of Metafetish Project Development!


New Section! This is where we'll put updates for hardware specific changes companies have made in the last week. I doubt this section show up frequently, but since working on Buttplug means we have to stay up to date on this stuff, it's worth adding.


Last week, we mentioned that Lovense is now shipping their new Domi Magic Wand toy!

It's already supported in Buttplug, but just in case anyone wants that info:

  • Device Name: LVS-Domi37
  • Main Service UUID: 57300001-0023-4bd4-bbd5-a6920e4c5653
  • TX Characteristic: 57300002-0023-4bd4-bbd5-a6920e4c5653
  • RX Characteristic: 57300003-0023-4bd4-bbd5-a6920e4c5653

The Domi adheres to the normal Lovense communications protocol.

Also, we had reports from the community that Lovense Hush Buttplugs that shipped recently now identify differently than old toys. Sure enough, it looks like the Hush plugs are running new firmware. Here's the identifying info:

  • Device Name: LVS-Z36
  • Main Service UUID: 5a300001-0024-4bd4-bbd5-a6920e4c5653
  • TX Characteristic: 5a300002-0024-4bd4-bbd5-a6920e4c5653
  • RX Characteristic: 5a300003-0024-4bd4-bbd5-a6920e4c5653

Fleshlight Launch/Kiiroo

As of 2018/09/05, the Fleshlight Launch Firmware has now been updated to v1.3. A quick binary diff didn't show any huge changes, with the code section growing maybe 50 or so bytes, and no large banks of changes seen. Users who've tested it report that it works with both Buttplug and ScriptPlayer. More info about new features if/when we figure out what they are.

Metafetish Projects

On to our own projects!


We added the new Hush info to buttplug-csharp, and it'll be added to buttplug-js soon. I'll most likely do a new npm push of buttplug-js so that hush/domi support is available, though I'm not sure anyone but me is using buttplug-js yet.

Due to these toy configuration additions/changes, we're looking at moving to a more flexible configuration definition system. Right now, toy info is built into Buttplug servers, meaning if we want to support new toys, we have to recompile everything ourselves. That sucks.

There's now a new project bug filed to change our device configuration definitions to an external config file that we can update without recompiles. This should save us a lot of testing and release time, while also hopefully making life easier on users.

Full list of changes/bug fixes that happened this week:

  • Buttplug C#
    • Devices that disconnect now take the same index when they reconnect. (Commit)
    • Fixed the "Can't load assembly file, no version info available!" error that always shows up in the logs.(Commit, Commit)
    • New Hush ID Support (Commit)
  • Buttplug JS
    • None

We're looking at a v0.1.1 release of Buttplug C# soon. That is waiting on 2 things:

  • Fixes to the websocket UI (better errors, defaulting to SSL on)
  • Update system checks (So we aren't depending on people to constantly check forums/websites for Buttplug C# updates)


Syncydink development has moved to working on a web based encoding solution. This means that, sometime in the future, you'll be able to pull up Syncydink in your favorite modern web browser, load a movie, and start creating haptics files for it.

This is still in the super early stages of development, but should have something to show soon!

Other Development

Funscript Blender Encoder

Did you know you can build haptics files in Blender? Funjack has been putting work into making encoding an easier and better experience. You can now use keypad buttons for encoding commands in the Blender encoder, and there's new hints and output verification.

The Video Encoder is available from the LaunchControl Releases Page.

That's it for this week! Back to the code mines...

RealTouch History Article in Logic Magazine and Vice

Logic Magazine's new Sex Issue has a wonderful article by David Parisi on the history, labor requirements, and impact of the RealTouch.

I highly recommend buying a copy of Logic because it's a great magazine that also happens to have an article with me and Internet Of Dongs talking about sex toy security. However, the RealTouch article has now been republished on Vice, in case you're interested.

Metafetish Dev Log - Week of 2017/08/28

Back to the dev log habit. As we've actually released software (though it's still "soft launched" right now since we're missing things like, say, documentation), it seems like now might be a good time to get back to dev logs since you can now actually go what's listed here if you want.

Metafetish Org

I'm kinda diving into the middle of development news here after a 2 month gap in dev logs, so there's a good chance some of this won't make sense. If you've got questions, please feel free to ask on our message boards.

Also, since we haven't had dev logs or much in the way of user feedback, we've run into the problem of having developed a huge pile of software that makes sense to us, but probably doesn't to anyone outside the core engineering group. We're trying to figure out how to better convey this information now, but expect confusion on all sides of a while until we get that going.

Buttplug CSharp

As of a couple of weeks ago, Buttplug C# is now at 0.1.0 (unannounced because soft launch!). We released the 0.1.0 app suite as well as the 0.1.0 nuget packages. Just like everything else, these aren't well documented. The libraries have some comments but that's it, while the app suite has some tutorial written for it around the Metafetish Forums.

Since then, we've:

  • Created a new Game Vibration Router application, which will be talking more about in another post/video soon.
  • Created a unified device control panel UI, which should make new C# apps easier to build.
  • Added WeVibe 4 Plus, Ditto, Pivot, Nova, Verge, and Wish support.
  • Added Lovense Domi Support.

We're now trying to plan for the 0.2.0 version of the libraries and app suite, which will hopefully also include some bug fixes, automated update checks, and the features listed above.

Buttplug Javascript

The Javascript Server is done! Or, well, started but usable, I guess.

The WebBluetooth portion of the Javascript server is up and running. This means we can now write webapps that use the Buttplug Protocol, and all users need is Google Chrome to access their sex toys on macOS, Linux, Android, and ChromeOS. No other installed software is required, and the app just needs to be hosted off a SSL (https) site. So far, we support:

  • Fleshlight Launch on macOS and Android (Linux is a no go right now due to a bug in WebBluetooth, ChromeOS may work but is untested)
  • Lovense toys (all, including the newly released Domi) on macOS, Linux, Android, ChromeOS
  • WeVibe 4 Plus, Ditto, Pivot, Nova, Verge, Wish

We'll be adding more toys to this soon, as it's fairly trivial to do so. We're on version 0.1.0 on npm (our 10th release!), which includes the server code.

As mentioned before, almost no documentation exists for this, inside or outside of the library. We're working on fixing this, both via library documentation and planned tutorials on Watch this dev log updates for more info.


Syncydink, our web based movie player with sex toy sync thanks to Buttplug, is now up at, which is probably where I'll keep releases for the time being. The whole page is 2 files, about 2.5mb of minified javascript (only! Yay modern web dev. :) ), and does not reference any outside sites, or even our own piwik tracking instance. Ghostery and uBlock should come up quiet on it.

Syncydink now supports:

  • 2D and VR video playback (including VR on Android!) using funscript, VirtualRealPorn, FeelMe, and other haptic file formats.
  • Buttplug C# Websocket connections on Windows
  • Buttplug-js on macOS/Linux/Android/ChromeOS

There's a tutorial about how to get all of this working at the Metafetish Forums.

Next up, much like the other projects, is more documentation, especially for error states. Right now we fail silently all over the place, which is very annoying for everyone. Getting that cleaned up is top priority.

Other Projects


Development on the ScriptPlayer sex toy synced movie player for Windows continues apace. Liquid, the main developer, is working on movie encoding, ways to track scripts from github, and other features.


For those not familiar, Funscript is a haptic movie file format built by Funjack, of golaunch and launchcontrol fame. Both ScriptPlayer and Syncydink support Funscript as a haptic format for movies, and it works quite well with the Fleshlight Launch and other toys.

Lately, Funjack has been improving the Blender tools for encoding movies with funscript. These tools allow users to encode their own movies, which can then be played by either of the 2 supported players. There is now also a funscript forum on RealTouchScripts where users can share their scripts.