Hello everyone! My name is Devvious and I like to do random projects whenever my adhd brain kicks in full gear. I noticed the lack of Vrchat support for The Handy so I took it upon myself to build one. Unlike Lovense products, the Handy has a real problem trying to properly translate incoming data but I tried my best to make it work. I’m sure there is a better way but it’s just a hobby for me at best. I will gladly take any technical advice to make this product better in the future.
====================================================
Edit: The program now supports Lovense and other strokers!!
Please join the Discord if you have any questions or want to keep up. I will be happy to help
everyone. Also I plan to be hosting giveaways time to time so maybe you will be able to snag a key for your partner ![]()
====================================================
How does it work?
If you have used OSCGoesBrrr then its the exact same thing. Connect your Handy bluetooth to Intiface, and load up VRChat with an OSC and SPS enabled avatar.
Does this work with things outside of other players?
Absolutely! As long as the other has SPS attached to it, the Handy will respond to it. For example, Conrad_The_Woff’s Milking Machine works PERFECTLY for this.
~Requirements for Giveaway~
-
Needs to own a Handy (1 or 2, they both work)
-
I am looking to finalize the program in about a week, so I am looking for reviews and/or feedback in a week.
Upon completion of testing, I would be more than happy to provide selected testers that have helped with a free copy to keep.
EDIT: ALL THE TESTER SPOTS HAVE BEEN FILLED, THANK YOU EVERYONE FOR YOUR INTEREST AND SUPPORT.*
8/15/26: I WILL BE DEACTIVATING ANY KEYS TO THOSE WHO WERE INACTIVE, PLEASE REACH OUT TO ME IF YOU MISSED OUT FOR WHATEVER REASON.
Disclosure
Please do keep in mind there is a sort of limitation to the Handy’s movements due to how it functions in comparison to a usual .script file, I just made it so it actually responds correctly.
If you would like to just jump in and try it, or support me and my insane coffee intake, here is the product page.
—> OSCGetsHandy — VRChat OSC to Toy Bridge <—
UPDATE LOG
Previous Updates
V.2.0.1
- Added OSCQuery functionality so there are no more port issues is user has another osc related program like VRCFT.
- Added a reminder, closing only minimizes program into taskbar. Also if you now try to run another instance while a previous one is open, it will show a warning. (Program won’t work if there are multiple instances).
V2.0.3
- Implemented Manual Sources
If there are any sources outside of the standard or because of naming issues, The debug panel in my program will appear as OSC IN (Unmatched). You can copy paste the pathway that comes after into the manual section so the program will read those values.
- Implemented Wildcard Sources
If you’re lazy or there aren’t many sources to worry about, you can use wildcard to simplify the process.
-
Manual Wildcard AND Wildcard general sources.
-
You can rename your sources so you remember what it’s for.
-
Debug pause because trying to copy/paste it while its moving is practically impossible. No need to stop the program now to read the debug.
-
Added a feature into the simulator to also mimic edited tags.
V.2.0.4 MASSIVE Update for Lovense Support [08/16/2026]
- Predictive Movement - A feature that will look at your first 2 strokes, then send a template AHEAD of time to your device so it feels like there is little to no delay. If the stroke changes TOO much, then of course there will be a moment of of de-sync. There are also 2 sliders that allow the original template to start transitioning to the new stroke so it will always be updating towards the new movements.
-
Inside Predictive Movement, there is also a delay Calibration button you can use in tandem with the simulator to figure out your delay. Or you can just manually figure it out in-game. Lovense Solace tends to be about 1200-1500ms delay.
-
Saved Presets for situations in which you have multiple devices.
-
Motor Kick-Start - This feature starts every new stroke direction with a little more power to your device, so it doesn’t feel as sluggish. Makes it snappier.
-
Source Mapping - (Under Active Sources Section) Instead of manually having to find the sources in the Debug, now this section will list off all the sources it comes across. You can click on the source and it automatically adds it to your Active Sources! Soo much easier ~ !
Tweaks - Some UI reordering, Debug Log Filters and pop out, Port number now shows in the Status section
V2.0.5 ANOTHER MASSIVE Update 9/3/2026
OSCQuery Integration The bridge now queries VRChat’s own OSCQuery tree (and the local per-avatar OSC config file it auto-generates) instead of relying only on passively watching traffic go by. This means +Sources and Parameter List can show your avatar’s parameters right away, even ones you haven’t triggered in-game yet. Passive listening still runs in the background too, refining which sources look “likely” based on real traffic.
Sources Overhaul
- Split into “Likely Stroker” and “Likely Vibrate” groups, plus a “Not Likely” group for common non-SPS clutter (movement, blinking, voice, etc.)
- Each section is individually collapsible
- Shows each address’s live value right next to it
- Search bar to filter by name
- Manual Refresh button
- “Dump Sources List” button to export the list to a file, avatar ID included in the filename
- Keyword Tuning, improved the guessing of “likely sources”
- Added a keyword inclusion/exclusion list for the user to add terms to (I will also be adding to these lists to narrow down sources as I come across them in future updates). It helps the source sorting.
Parameter List A separate window showing every parameter your avatar has, completely unfiltered.
- Sort by Name, or by Value Change frequency (default, most-active sources first)
- Click any row to add it as a source
Debug Filters
- Per-address filters now auto-populate on their own. Only addresses with values that actually vary, or that send high-frequency traffic appear
- Check All / Uncheck All buttons
- Named filter profiles – save your current filter setup and switch between them (handy if you swap between a few different avatars)
Character Profiles Saves the settings of the entire application, and links it to your current loaded avatar.
- Auto Switch setting that allows your profiles (and settings) to change based off of what Avatar you have loaded in-game. You can turn this feature on/off.
Keyword Tuning - A new setting in Active Sources that allows you to add/remove keywords to help your likely sources to be found quicker.
- When you update your application and the keywords list do not match, it will prompt you if theres a difference and will ask you if you want to add new keywords or do nothing.
Preset Strokes - Feature that allows you to override any in-game movement with a preset movement.
Macro Switch - Set an avatar osc action (sit, dance, whatever your avatar can do) and link it to a function in OSCGetsHandy. Actions are pluggable and more will be added in as requested or when I think of more.
Bug Fixes
- Fixed an issue where an idle source could block a source that was actually moving, freezing the toy in place even though live values kept visibly updating
- Predictive Movement now always reaches the true 0/1 endpoints of a stroke, instead of sometimes stopping short
- Popup windows now open on whichever monitor your main window is actually on (multi-monitor support)
- Action buttons (Refresh, Close, etc.) can no longer get pushed off-screen when a window is shrunk
Other Changes
- Removed the standalone “Live Source Values” section – values now show right next to each source in Active Sources instead
- The 3 built-in sources always match any address with that tag automatically (no more separate Universal Wildcard checkbox to toggle)
- “Log Unmatched OSC” renamed, now on by default for new installs
- General UI text made bolder for readability
- New “Settings” menu: Invert toggle, plus a Reorganize screen to drag-and-drop reorder the main window’s sections to your preference
- New “View” menu: hide/show individual sections, everything visible by default
- Added a User Guide link to the Help menu
- +Sources/Parameter List now recognize toggle-style values and show “On”/“Off” alongside the raw number


