• Hi Guest!

    We are extremely excited to announce the release of our first Beta1.1 and the first release of our Public AddonKit!
    To participate in the Beta, a subscription to the Entertainer or Creator Tier is required. For access to the Public AddonKit you must be a Creator tier member. Once subscribed, download instructions can be found here.

    Click here for information and guides regarding the VaM2 beta. Join our Discord server for more announcements and community discussion about VaM2.
  • Hi Guest!

    VaM2 Resource Categories have now been added to the Hub! For information on posting VaM2 resources and details about VaM2 related changes to our Community Forums, please see our official announcement here.
StrokerSync

Plugins + Scripts StrokerSync

Download [<1 MB]
So, it's been a while since the last update now but I am confident that you will find it worth the wait.
Again, this has only been tested with a Handy 2 Pro with some overclocking so I cannot guarantee that it will be as great for other devices,
but to me, this feels like a brand new plugin.

I have rewritten several parts of the plugin. Now I would say the recommended starter settings would be:
Send Rate: 20Hz
Padding: 10-50ms depending on how rough you want the strokes.

You will need to play around with the settings to find the feeling you want.
I have also implemented alooooot of new features, mostly under the hood.

Blowjobs has been fixed and should now work, regardless of what gender is recieving.
I have tested it to make sure that it works Male/Female, Male/Male, Futa/Female, Futa/Futa.
You will have to manually select penetrator and reciever as it still defaults to Male for penetrator and female for reciever.

I have also added a dropdown under the penetrator where you can select a sex toy node, which will then override the above penetrator setting.
In other words, dildos and such works now.

The strokes should be overall way smoother than before and even more synced with the movements.

If you are using a scene where the persons use VAMTimeline, make sure to enable the Learn from Timeline checkbox, as it gives an even smoother experience.

I have also optimized the "turns" (where the movement changes from in to out and vice versa) so these should be alot less jerky/stuttery. Along with that
there is now a built in threshold that determines if a new position should be sent or if the plugin just keeps the old one, which is set dynamically depending on
how big the movement is. This makes sure that smaller "tease"-penetrations still gets translated well to the stroker, and larger moves will ignore the extra positions so
the stroke feels more natural/less jumpy.

As I said, overall this should be a huge improvement and I hope you guys like it.

On a second note, this will probably be the last update for the plugin. The patreon has recieved zero and null love and development does take up way too much time
for me to continue doing it just for fun, and I dont really like the idea of charging for the plugin since I want everyone to be able to enjoy it regardless of wealth. With that
said, don't expect any bug fixes and so on to be released any time soon.
I messed up when creating the .var file for update v4.

It should now be fixed and the plugin is working again.
StrokerSync Update v4 — Signal & Connection Improvements
Sync & Responsiveness

Position extrapolation: Instead of sending where the penetration IS, the plugin now sends where it WILL BE at the end of the interpolation window. This lets the device glide smoothly across the full LinearCmd duration instead of staircase-jumping between positions. At 20 Hz, each command gets ~55ms of uninterrupted movement — dramatically smoother than the old approach of interrupting every 33ms with a new target.
Adaptive send rate: Command frequency now scales dynamically with motion speed. Fast strokes use the full configured rate; slow/idle movement backs off to 5 Hz, reducing unnecessary Bluetooth traffic. The "Send Rate" slider now sets the maximum rate. Default lowered to 20 Hz to complement extrapolation (fewer commands = longer glides = smoother).
Accumulator-based timing: Replaced the simple timestamp check with a time accumulator that carries leftover frame time forward. The average command rate now stays mathematically on-target regardless of frame rate fluctuations. Capped at 2x interval to prevent burst-sending after alt-tab or loading stalls.
Predictive LinearCmd duration: The device interpolation duration is now calculated from the actual time until the next expected command, plus a small user-configurable padding. Previously a fixed value, this caused the device to either sit idle between commands (at low rates) or never complete a movement (at high rates). The "Device Smoothness" slider is now "Duration Padding" (default 10ms).
Source-space deadband: Position deadband is now applied before stroke zone mapping. Previously, a compressed stroke zone (e.g. 0.3–0.7) inflated the effective deadband by up to 2.5x.
Penetration hysteresis: The "no penetration" threshold now uses hysteresis (stop at 0.005, resume at 0.02) to prevent the device from rapidly toggling on/off when the tip barely touches the target.

Tracking & Filtering

Rolling calibration: The penetration range now adapts continuously during play without manual intervention. New extremes expand the range instantly; if the observed range narrows (position change, different angle), the stored range slowly contracts over ~45–60 seconds. Pauses and cutscenes freeze the range. This eliminates the need to open the menu and recalibrate after changing positions. Enabled by default, can be toggled off for full manual control.
Conditional spike rejection: The median filter no longer runs unconditionally. During smooth motion, raw samples pass through with zero added latency. The median only engages when a sample deviates beyond a spike threshold, limiting the 1-frame latency penalty to actual physics glitches.
Asymmetric EMA: The noise filter now smooths direction-dependently. Increasing penetration depth gets 4x less smoothing for snappy attack feel; withdrawal uses full smoothing for softer release.
Pelvis-blended vaginal direction: Vaginal canal direction now blends 70% trigger-based vector with 30% pelvis bone axis. This stabilizes depth tracking during extreme poses where the labia/vagina triggers alone give a poor canal estimate. Falls back to trigger-only if no pelvis bone is found.

Connection & Reliability

WebSocket fragmented frame support: TinyWebSocket now handles continuation frames (opcode 0x0) per RFC 6455 §5.4. Control frames (ping/pong) are processed immediately even mid-fragment.
Callback TTL cleanup: Pending Buttplug protocol callbacks now expire after 10 seconds. A sweep runs every 5 seconds to prevent unbounded memory growth during long sessions if the server silently drops responses.
Sampled LinearCmd error logging: Every 100th position command now registers an error callback. This catches persistent device errors without flooding the callback system (~one check every 3 seconds at 30 Hz).
Clean client disposal on reconnect: The old ButtplugClient is now explicitly disconnected before creating a new one during auto-reconnect, preventing ghost receive threads from accumulating.
Component cache validation: Cached rigidbody/transform references are verified every 2 seconds. If an atom reload (clothing change, appearance preset) silently destroys a component, the cache is rebuilt immediately rather than waiting for a full null-out failure.

Added Hand tracking for jerking off or getting jerked off. Have not had time to test it 100% so it might be buggy.
Save Settings:


  • "Save Settings as Default" button saves all tuning values (Device Smoothness, Send Rate, Stroke Zone, Noise Filter, Detection Radius, auto-cal settings) to a config file
  • Saved defaults are automatically applied on every plugin load, across all scenes
  • Scene-specific overrides from VAM's built-in save system still take priority

UI Improvements:


  • Auto-Calibrate button moved to the very top of the motion source panel — no scrolling needed
  • Live penetration readout display positioned directly under the button for immediate feedback

Auto-Calibrate on Scene Load:


  • New toggle: "Auto-Calibrate on Scene Load" — when enabled, calibration starts automatically after a configurable delay
  • New slider: "Auto-Cal Delay (seconds)" — range 3–30s, default 10s, gives the scene time to start its animation before calibrating
  • Both settings persist via "Save Settings as Default"

ADDME.cslist Location:


  • Moved to the root of the plugin folder for faster access when loading manually
  • Source files organized under src/ subdirectory

Ping/Pong Fix (Connection Stability):


  • Fixed disconnects and unstable connections to Intiface.
  • Also added Buttplug protocol-level Ping messages
Changed the tracking from gender-based to oriface/penis-based. Now you can enjoy Futa models as both penetrator and/or reciever atoms.

Changed speed limiter + EMA with a 3-sample median filter for smoothing. Removes single-frame physics spikes with zero amplitude compression, then let the device handle physical smoothness.

All in all the experience should be way smoother now than with the old filtering.
Back
Top Bottom