Playing scripts with a video on your computer
No VR headset, no helper app. Drop a video and a script into ToyControl and play them together in your browser. Setup in three steps.
Most people think you need a VR headset to use a funscript. You do not. If you have a video on your computer and a matching script, ToyControl plays them together in a normal browser tab. The toy moves with the action on screen.
This article is the simple, no-VR version. Three steps from open to playing.
The use case in one paragraph
You have a 2D video on your computer (MP4, MKV, or WebM), a matching .funscript file, and a Bluetooth toy. ToyControl pairs the toy in your browser, plays the video in the browser, and drives the toy from the script in time with the video. Nothing else is needed.
What you need
- A computer with Chrome or Edge on the desktop (Windows, Mac, Linux, ChromeOS). This is the smoothest path because Web Bluetooth is built into these browsers. If you are on iPhone or iPad, see How to use ToyControl on iPhone or iPad for the Bluefy workaround.
- A toy on our supported list.
- A video file on your computer.
- A matching script file ending in
.funscript. See where to find scripts.
No download, no helper app, no headset for the basic flow.
Step 1: Pair your toy
Open ToyControl at toycontrol.app.
In the left sidebar, click the + in the Devices area. Pick your toy from the catalog. Confirm in the small Bluetooth window your browser shows. The toy appears in the sidebar with a green dot.
If something does not work here, see How to pair your first toy.
Step 2: Load the video and the script
The fastest way to do this is drag-and-drop.
- Open the Video Player tab in ToyControl.
- Drag your video file from your computer onto the drop area. The video appears in the player.
- If the script has the same filename as the video, ToyControl auto-loads it.
How filename matching works
ToyControl matches the base filename, ignoring the extension. Examples:
| Video file | Script file | Match? |
|---|---|---|
scene.mp4 | scene.funscript | Yes |
Scene 42.mkv | Scene 42.funscript | Yes |
scene.mp4 | scene_v2.funscript | No |
scene.mp4 | Scene.funscript | No (capitalisation must match) |
Rename the script (or the video) so the names line up if needed.
If the filenames do not match and you do not want to rename:
- Open the Script Player tab.
- Click Import files and pick the
.funscriptfile.
The script and video play together either way.
Step 3: Hit play
In the Video Player, click play.
The video plays. The toy follows.
That is the whole flow.
Tips for the first session
- Start the volume low. The video may be loud and you do not want a surprise.
- Use Set First Cue if the toy feels off. Watch the screen, and the instant you see the first piece of action, press C on your keyboard. The script shifts to match.
- Try the multiplier. If the toy feels weak, set the multiplier in the bottom bar to 1.3x or 1.5x. If it feels too intense, set it to 0.7x or 0.5x.
- Save sessions for later. Imported scripts stay in your library. Drag them in once and they are there forever (unless you remove them).
Troubleshooting
Video plays but the toy is not moving
Three checks, in order:
- Click Test toy at the bottom of the screen. If the toy responds, pairing is fine and the source is the issue.
- Make sure the script is loaded. Open the Script Player tab; you should see the script in the "now playing" card.
- Check the per-device intensity slider in the sidebar is above zero, and the speed range max in the bottom bar is not capped at zero.
See My toy connected but is not moving for more.
The script feels offset from the video
Press C at the moment of the first on-screen action. The whole script shifts to match.
If it is still a touch off, drag the fine-tune slider in 100-millisecond steps.
See The script and video are not in sync.
The toy responds but feels weak
Set the Multiplier to 1.3x or 1.5x in the bottom bar. Or raise the per-device intensity slider in the sidebar to 120-150%. For vibrators, also try the Stretch toggle in the Script Player.
When to use a folder instead of importing files
If you keep many videos and scripts together on your computer, do not import them one by one. Instead:
- Open Script Player.
- Click + Folder.
- Pick the folder where you keep your videos and scripts.
- Allow the browser to read it.
ToyControl will index every script in the folder. When you load a video with the same name, the script auto-pairs. See How to load a script into ToyControl for the full guide.
Computer vs VR headset
Two paths for funscripts. Which one for you?
| Computer (this article) | VR headset | |
|---|---|---|
| Hardware needed | Just a computer | VR headset + computer |
| Setup time | 2 minutes | 10 minutes (first time) |
| Helper app needed | No | Yes |
| Best for | 2D content, beginners | VR scenes (SLR, etc.) |
| Watching position | At the computer | Wearing the headset |
| Walk-up friendly | Yes | Less so |
For VR, see How to play scripts on Meta Quest and Connect to VR.
Common questions
Do I need a stroker? No. Vibrators, machines, and strokers all work. ToyControl translates the script's position values into whatever your toy understands.
Does it work in full screen? Yes. Hit the full-screen button on the video. The toy keeps playing.
Can I watch on a TV? ToyControl plays the video in the browser tab. You can mirror your screen to a TV through HDMI, AirPlay, or Chromecast on the tab. The toy still pairs with the laptop.
Can I add a second toy? Yes. Pair the second one the same way. Each toy gets its own tab, or one can follow the other. See Adding a second toy.
What video formats work? MP4, MKV, and WebM cover almost everything. Whatever your browser plays, the Video Player plays.
Next steps
- Want a VR setup instead? See How to play scripts on Meta Quest.
- Trying the SLR Interactive flow? See How to play scripts with an SLR video.
- Want to build a session without a video? Try Patterns.