Tutorial: Syncydink v20170821


Welcome to the Syncydink Tutorial!

Syncydink is a Web-based Haptic Movie Player with support for 2D and VR videos. It can output commands to Buttplug Sex Toy Servers.

Syncydink can be accessed at:


Syncydink Features

Syncydink supports the following haptics formats:

  • Funscript
  • Virtual Real Porn (ini)
  • Feelme (JSON)
  • Kiiroo/Flicker.tv (js)

(Vorze and RealTouch coming soon)

Syncydink is capable of taking the above file formats and outputting control commands for the following toys via Buttplug:

  • XInput (XBox) Gamepads
  • Fleshlight Launch
  • Lovense Vibrators
  • Vibratissimo Vibrators
  • Magic Motion Vibrators

More toys and file formats will be added to this list as they’re supported.

Syncydink Browser/Platform Support

Syncydink has been tested on the following browsers:

  • Firefox 55/56/57 (2D, VR via WebVR, tested with Oculus Rift)
  • Chrome 59/60 (2D)
  • Edge 40.15063.0.0 (2D)
  • Android M Chrome (2D, though reports of VR working)
  • Safari 10.1.1 (2D)
  • iOS 10 Safari (2D)

To use Syncydink with Buttplug on Windows, you will need to be running a Buttplug Server. Currently, the only choice for this is Windows 7-10, via Buttplug C#.

For macOS, Linux, Android, and ChromeOS, Bluetooth access is build into the Google Chrome web browser. You should just be able to access your hardware via the syncydink web app.

Basic Usage

Interaction with Syncydink happens via one of 2 UI pieces:

  • Left Side Panel (accessed via clicking the 3 line icon at the top right, or swiping right anywhere on the page)

  • Video Controls (usable after video loaded, accessed by moving cursor toward bottom of screen, or tapping screen on mobile)

Video Loading/Playback

Loading a Movie/Haptics File

To use Syncydink, you will need 2 files:

  • A movie file
  • A haptics file [optional]

To load these files, open the panel and select the “VIDEO” tab. You can then click or tap on the file fields of load videos or haptics files.

2D Playback

The 2d Playback interface is similar to what you would see on Youtube. There are Pause/Play controls, as well as speed controls. Note that playing the video faster than 1x will also result in the haptics playing faster, and may cause inaccurate movement in hardware.

VR Playback

To choose VR playback, change the selection on the “VIDEO” tab on the left sidebar to “VR”. If your browser supports WebVR, the movie display will split in half, with the 2D movie shown on top and the VR movie shown on bottom.

To enter fullscreen VR mode (used for pushing to Vive/Oculus headsets), click on the VR Goggles icon in the lower left of the VR pane.

2D/VR Split

Since we don’t yet have a way to control playback in VR, this mode shows both the 2D and VR renderer at the same time. The top panel will be the 2D with full controls, while bottom is a view of the VR renderer. Hitting the VR goggles icon will allow you to go full screen in VR.

To control movie playback timing, use the video controls in the 2D pane, as you normally would with a 2D movie. We currently do not have in-helmet movie control for VR.

Haptics via Buttplug

For haptics playback, we support the Buttplug Sex Toy Control Protocol. Syncydink can connect to a server via:

Connecting to Buttplug

You can connect to Buttplug in one of two ways:

  • Via the local browser (used for Google Chrome MacOS/Linux/Android/ChromeOS)
  • Via a websocket (used for Windows 7/10)

Connecting via Browser (macOS/Linux/Android/ChromeOS)

To connect via the local browser, simply ignore the server settings and hit “Connect Local”. This will establish a Buttplug Server session in your browser. No outside software is needed.

NOTE: This is currently only useful for macOS/Linux/Android/ChromeOS. While this will bring up a server session in Windows and iOS, due to lack of WebBluetooth support in Chrome Windows, and Firefox and Safari on all platforms, no hardware is supported via this method on those platforms at the moment. Please use the Websocket method if on Windows, or if on iOS, connect to a windows machine running buttplug-csharp. iOS native solutions are still in development.

Connecting via Websocket (Windows 7/10)

To connect to a Buttplug Server using Websockets:

  • Bring up the Buttplug Websocket Server (if you have not yet installed buttplug-csharp on Windows, please check this tutorial).
  • Bring up the “BUTTPLUG” tab on the left sidebar
  • Enter your server address in the Server Address field
  • Click connect

Assuming the connection is successful, you should see a Device and Log field pop up in the panel, and on your Websocket Server GUI, it should show “Syncydink Video Player” as the client.

Selecting Devices

To connect to a device once a selection is made:

  • Click the “Start Scanning” button
    • If you have already connected to a server and scanned, and are just reconnecting, the currently connected devices will show up on connection to the Buttplug server, you shouldn’t need to scan again.
  • As devices are found, they will appear in the list
  • To select a device for use, click on the check box next to it.

Assuming there is translation available for the current movie script to the selected devices, haptics commands will be sent to them.

Where to get Haptics Files/Scripts

Scripts for movies for Syncydink are available at:

  • RealTouchScripts Funscript Forum (Requires free account)
  • Funjack’s Script Repo (Matching videos fetchable from Pornhub)
  • FredTungsten’s Script Repo (Matching videos fetchable from Pornhub)
  • If you are a VirtualRealPorn member, VirtualRealPorn haptics files (.ini files in the videos/config directory of VirtualRealPlayer) and movies work.
  • flicker.tv has free movie downloads that work with Syncydink. To use:
    • Unzip the movie file
    • Load the movie file
    • Load the “data/js/vstroker2.subtitle.json.js” file as your haptics file.

Making Your Own Movie Encodings

If you’d like to make your own encodings to work with Syncydink or ScriptPlayer, there are instructions on using Blender for encoding at

There’s also some support messages about this in the following RealTouchScripts forum thread:


We are working on our own dedicated movie encoders, and will make updates when these are ready for use.

Launch firmware update problem
Software Tutorial List

Does Syncydink work with Realtouch and Vorze?


Syncydink should work with the Vorze, but only using a generic Bluetooth dongle: no support has been implemented for the Vorze specific dongle yet. As for the RealTouch, no support has been implemented yet.


Has anyone else had an issue with connecting to buttplug server. I can not even run the test that fails both WSS and WS.


The most common issue with connecting the web applications to the Buttplug Websocket Server is that the SSL certificate has not been accepted yet. Try pointing your browser at https://localhost:12345 and see if you get a certificate warning or a blank page.

I’d also highly recommend taking a look at https://tutorial.buttplug.world which will take you step by step though this.


I can connect Script player. I get an http 400 when trying to connect phone, PC, or Linux laptop. I tried turning off the firewall and that did not help. I have fixed IP on the computer itself so I have tried using the IP. I have tried to browse from just in the the network (Local subnet) and I have tried from the internet poking a hole in the firewall to allow 12345 to that device.


So I finally got it to connect through Firefox. I have been using Chrome.