Unity engine hooks / support


Has anyone been able to hook Buttplug into Unity for two-way device communication for stuff like the Launch? I can’t help but think this will be a huge milestone in VR / interactive content that could make sync’d video feel like it’s on rails, which it is.

Multi-channel device control would also be welcome. Perhaps give each supported device a category, and increment them as accessible items.

Stroker 1, Vibe 1, Vibe 2, etc.

I could even see robotics and other forms of interactive communication growing out of this.


Yeah, we’ve been talking about unity support since day 1, it’s mostly just an issue of us getting the core stuff together enough to branch in that direction. I feel like we’re getting close to it but haven’t hit that point quite yet.

As for multichannel, that’s basically doable now, it’s more a UI problem than anything. I’ve managed to drive 7 toys at once through a single Buttplug instance. We’ve just got to build out the assignment UI in the applications, Syncydink, etc… With Syncydink and Movies, the idea is that you should be able to load multiple haptics command files for a movie, so that if there’s multiple things happening at once we can relay different actions to different toys.


Can’t wait! Any idea of an ETA at this point, now that you’ve had some time for things to settle?

Also, do you have an HTC Vive? Perhaps you should get one to see how the integration with this and VR would be… interesting.


Checking in on that sweet interaction support for popular VR apps using unity :slight_smile:



Please, no posting of adult images on the boards.


My apologies. I’m guessing no comment on the topic yet. Ah well I’ll check back later. Cheers.


Yeah, still trying to get to the point of working on that. It is definitely still on our list.


Glad to hear it. What’s currently ahead on your list?


Right now, lots and lots of documentation. Most people don’t know how to use what we’ve got, so we’re trying to fix that before adding more.


bump from 6 months ago :slight_smile: Thanks!


I’m currently testing out some stuff in this area, but don’t get your hopes up. So far I’ve found that older versions of Unity have issues with some of the C# dependencies of Buttplug.Client, so a Unity specific port of the library is likely going to be needed.

Once that’s done, unless the developers of the game get involved, it will take significant effort to build mods to hook the client into each game you’d want to integrate with.


That’s cool. I don’t see why you couldn’t require using a newer version of the engine. Then game devs, or tinkerers with Unity can take it from there.


The game I’m trying to mod is stuck back at Unity 5.3, so maybe my requirements differ to others.

There is an en example Unity plugin from the community that should work on modern Unity, but I’ve not tested it: https://github.com/Damitrix/ButtplugClient-Unity-CSharp-Example


Yeah, I don’t know what version of Unity the games I’m interested in modding are on (and I’d like to know how -to- find that out), but what I do know is they’re on ones based in .net 3.5. So the dependencies might be handleable, but it’s going to take some serious refactoring to get rid of the async/await stuff, because that doesn’t exist in those lands.

And sure, we don’t specifically need to be able to use buttplug directly in older software. I’ve done some experimenting with using an intermediary client program between the game and the server with decent result and think there’s something there worth further exploration. But if the goal is to get more developers on board for direct integration, a lightweight client library with fewer outside dependencies and support for older frameworks is probably a good idea.


Sounds like you’re in the same boat as me. Technically Unity runs on mono not .net, but the older versions have more incompatibilities than the newer versions.

The current Unity versions shouldn’t have a problem using the standard C# Buttplug client library, so I’d strongly recommend using that if it’s an option.

For older versions of Unity, the biggest hurdle I’ve encountered was the fact that the JSON library (Newtonsoft) doesn’t work on the older mono versions. So far I’ve replaced a lot of automatic object serialisation with if or switch tables in order to use alternative libraries, but I have my concerns over whether all of these messages are actually converting correctly. This uses a lighter JSON library, but the trade-off isn’t one I’d take voluntarily.


Working on a big Unity project and will be taking a dive into integration. Happy to help out any way we can.


I got the Unity demo working and will be expanding on functionality. I’ll post details as I have them.


Thanks! Really looking forward to seeing what you’ve got going!


Currently we have Kiiroo Fuse and Kiiroo Launch working based on position of a gameObject. This allows us to control the speed and position of the Launch nicely while ramping up vibration on the Fuse accordingly. Doing more work then I’ll show some video of the progress.


Its now working with the Lovense Max (vibration). Looking into the squeeze function (air).
I think I found what I need at