Skip to content
Go to file

Latest commit


Git stats


Failed to load latest commit information.
Latest commit message
Commit time


This project will deprecated and archived in the coming weeks/months, with the C# implementation of buttplug moving to an FFI layer on top of buttplug-rs. Bugs are currently being triaged from this library to buttplug-rs.

The new C# project will be at

The API will change, though minimally (mostly connection in methods), and we will still distribute the package under the same nuget package ("buttplug"). Many of the support packages for connectors and device management will also be deprecated, as their functionality will now be handled in Rust.

You may continue to use this repo for the time being, just wanted everyone to be aware of the changes happening in the near future.

Buttplug Protocol Implementation - C# .Net Standard/Framework

Build Status codecov NuGet

Patreon donate button Discourse Forum Discord Twitter

Buttplug is a framework for hooking up hardware to interfaces, where hardware usually means sex toys, but could honestly be just about anything. Think of it as a userland HID manager for things that may not specifically be HID, but may go in your butt.

Or other places too! We're not completely butt-centric, despite the project name. And logo.

Want to use your sex toys with Movie Players, Games, Etc?

If you're a user that just wants to use your sex toys with pre-existing Buttplug software, check out Intiface Desktop.

Table Of Contents

Support The Project

If you find this project helpful, you can support us via Patreon or Github Sponsors! Every donation helps us afford more hardware to reverse, document, and write code for!


Documentation is available for the Buttplug Protocol and Frameworks, as well as this specific library.

Library Usage Examples

Want to know what using the library looks like in code? The project includes some heavily commented examples!

Library API Documentation

API documentation for the current release is available at

API documentation for the current development branch is available at

Buttplug Spec and Documentation

Buttplug implementations are available in multiple languages (rust, javascript, etc)/frameworks/platforms. For a full list of documentation, libraries, and applications, see the website.

Hardware Support

For a full list of supported devices, check out IOSTIndex.

Operating System support is as follows:

  • Windows 10 - Creators Update (15063, April 2017) or later

    • All Devices
  • Windows 7/8 and 10 pre 15063

    • All USB/Serial/Other Devices (No Bluetooth)


Packages and libraries from the buttplug-csharp repo are available via nuget. Simply run a search for "buttplug", or follow this link to the nuget "buttplug" search.

Development Branches

There are 2 main branches:

  • master - The current release code for the library
  • dev - The current development code for the library

When submitting patches, they should be based on the current state of the dev branch, and should use dev as their target. The master branch is kept synced to release so our documentation matches expectations.


The project should compile with Visual Studio 2017, Visual Studio on Mac (.Net Standard projects only), or Mono on linux (.Net Standard projects only).

Note that for building using Visual Studio on Windows 7/8/10, the project requires the Windows 10 SDK to be installed.

Note that some of the Windows 10 SDK links in the UWP Bluetooth Manager project are hard-linked to the C:\ drive. If your program files and SDKs are not on your C: drive, you may need to readjust these paths by hand.

Unity Game Engine Support

Unity support is provided via a Unity Custom Package file, and is available in the Buttplug Unity Repo.

Applications Using Buttplug C#


Buttplug is BSD 3-Clause licensed. More information is available in the LICENSE file.

You can’t perform that action at this time.