The script and video are not in sync
Two tools fix script and video misalignment. Set First Cue handles big offsets in one keystroke. The fine-tune slider handles small ones in milliseconds.
If your script and your video are not lined up, the toy will move too early or too late compared to what you see on screen. This is the funscript offset problem, and ToyControl gives you two tools to fix it: Set First Cue for big offsets, and the fine-tune slider for small ones.
Why scripts go out of sync
A few common reasons:
- Different cut of the video. The script was timed to one version (maybe one with a longer intro). Yours starts differently.
- Re-encoded video. Same content, different start time. Common with downloaded scenes.
- Different frame rate. Less common today, but old scripts on modern videos can drift.
- Wrong script. Sometimes the file name matches but the script is for a different scene. Look at the heatmap; if it does not match the video, find a different script.
The first three are fixable in ToyControl. The fourth needs a different file.
Quick decision tree
- Off by seconds: Use Set First Cue (press C when the first action happens).
- Off by milliseconds: Drag the fine-tune slider in 50-100 ms steps.
- Starts aligned but drifts later: Wrong cut or different frame rate. Find a different version.
- Never matches at all: Wrong script for this video. Find one that matches.
When a script is loaded, the Script Player shows a heatmap of intensity over time. The orange line marks your current position:

Use Set First Cue for the big offset
Most sync problems come from a script that was made for a slightly different cut of the same video. The script starts at a different moment. Set First Cue fixes that in one keystroke.
- Load the video. Load the matching script.
- Hit play.
- Watch the screen carefully.
- The instant you see the first action start (the first thrust, the first touch, the first moment of contact), press the C key on your keyboard.
ToyControl shifts the whole script so that "the first action" lands exactly where you pressed C. From that point on, everything else lines up too.
If you do not want to use the keyboard, the Set First Cue button is in the Script Player tab.
Use the fine-tune slider for the small offset
After Set First Cue, the script might still feel slightly off. Maybe the toy lags by 100 milliseconds, or feels a hair ahead. The fine-tune slider nudges it.
- In the Script Player, find the slider labelled with ±500 ms.
- If the toy feels late (it moves after you see the action), drag the slider to the right (positive offset).
- If the toy feels early (it moves before you see the action), drag the slider to the left (negative offset).
- Adjust in small steps. Most fine-tune corrections are between 50 and 200 milliseconds.
The setting is saved for that specific script. The next time you load it, the offset comes back. You only do this once per script.
When neither tool fixes it
If after both fixes the script still drifts (it lines up at the start but goes off later), the script was probably made for a video with a different frame rate or length. There is no fix on the player side for this. You need a different copy of the script that matches your video, or a different copy of the video that matches your script.
This is most common with re-encoded videos. The original-quality version usually has a matching script.
Resetting
If you change your mind about an offset:
- Click Reset next to Set First Cue to clear that offset.
- Drag the fine-tune slider back to zero to clear the millisecond nudge.