.funscript file, connect via Bluetooth, and enjoy automated motion control.
Requirements
- OSSM firmware: Version 3.0 or later (with BLE streaming support)
- Compatible browser: Chrome, Edge, or Opera on desktop/Android
- Bluetooth: Enabled on your device
- Funscript file: A
.funscriptfile matching your video
Web Bluetooth is not supported on iOS devices (iPhone/iPad) or in Safari/Firefox browsers. For these platforms, consider using third-party funscript players with Buttplug.io integration.
How to Use
Load your media files
Click the file pickers to select your video file and matching
.funscript file. The funscript filename should match the video filename (e.g., my-video.mp4 and my-video.funscript).Connect to your OSSM
Click Connect to OSSM and select your device from the Bluetooth list. The OSSM will automatically enter streaming mode.
What is Funscript?
Funscript is a JSON-based file format used to synchronize toy movements with video content. Each funscript contains a series of position/time pairs that define where the device should move at specific moments during playback.Example funscript structure
- pos: Position from 0 (fully retracted) to 99 (fully extended)
- at: Timestamp in milliseconds
Funscripts can be created using tools like OpenFunscripter or purchased from marketplaces like RealSync.
Playback Settings
| Setting | Description |
|---|---|
| Time Offset | Adjust sync timing (-500ms to +500ms). Use positive values if the OSSM is behind the video, negative if ahead. |
| Look-ahead | How far ahead to send commands (0-500ms). Higher values help compensate for BLE latency but may reduce responsiveness. |
Safety Features
- Auto-stop on disconnect: If Bluetooth connection is lost, the OSSM ramps down safely
- Return to menu on disconnect: When you disconnect, the OSSM returns to the main menu
- Manual control: You can pause the video at any time to stop motion
Troubleshooting
OSSM not responding to commands
OSSM not responding to commands
- Ensure the OSSM shows “streaming” mode on its display after connecting
- Check the debug logs for any error messages
- Try disconnecting and reconnecting
- Verify your OSSM firmware supports streaming mode (v3.0+)
Motion is out of sync with video
Motion is out of sync with video
- Adjust the Time Offset slider to compensate for delays
- Increase the Look-ahead value if motion seems late
- Ensure your device isn’t experiencing Bluetooth interference
Funscript file not loading
Funscript file not loading
- Verify the file has a
.funscriptor.jsonextension - Check that the file contains valid JSON with an
actionsarray - Look for parsing errors in the debug logs
Choppy or stuttering motion
Choppy or stuttering motion
- Close other Bluetooth-connected devices to reduce interference
- Stay within 10 meters of your OSSM
- Try reducing video quality if your device is struggling
Technical Details
The funscript player uses the OSSM’s native streaming protocol via BLE:- Command format:
stream:position:timewhere position is 0-100 and time is milliseconds to reach the target - Update rate: Commands are sent every 10ms when new actions are due
- BLE characteristic: Uses the primary OSSM command characteristic (
522b443a-4f53-534d-1000-420badbabe69)
Position streaming is experimental. The firmware calculates the required speed to reach each target position within the specified time, using maximum acceleration for responsive motion. If the BLE connection is lost, the OSSM automatically ramps down and stops over 2 seconds.

