Script Player
Script Player drives your toy with a script that is timed to a video. Drop the script in, hit play, the toy moves with the action.
Script Player is a funscript player for Bluetooth toys. It plays a .funscript file in sync with a video, and as the video plays, your toy follows the action on screen. It is the closest thing in ToyControl to "set it up once and forget it."
What it is
A script (a file ending in .funscript) is a small file that describes how a toy should move over time. Script Player reads that file, watches the clock, and drives your toy in step with the video.
If you have ever seen an interactive scene from SLR or downloaded a community script for a 2D video, this is the feature you use to play it.
Who it is for
- Anyone watching an interactive scene that came with a script.
- Anyone using VR content with funscripts (through HereSphere on a VR headset).
- Anyone with a 2D video and a community script for it.
If you do not have a video and just want patterns or solo sessions, see Patterns instead.
How it works
The setup takes a minute.
- Pair your toy. If you have not done this, follow How to pair your first toy.
- Load the script. Click Script Player in the sidebar, then Import files, and pick the
.funscriptfile. The script appears in your library. - Load the video. Drop the video file onto the Script Player. (Local video playback now lives inside Script Player; see Video Player for the feature page.) ToyControl auto-pairs the script and the video if they share the same filename.
- Hit play. The video plays. The toy moves with it.
If the script and the video are a little out of sync, see "Fixing alignment" below.
The heatmap
When a script is loaded, the Script Player shows a heatmap across the top.

Each vertical bar represents a moment in the script. Tall bars mean intense action. Short bars mean calm. The orange line shows where you are right now.
Click anywhere in the heatmap to jump to that moment. It is a quick way to skip ahead, or to find the moment a script gets interesting.
Fixing alignment
Most of the time, a script and a video that share a name line up perfectly. Sometimes they do not, especially if you have a different cut of a scene than the script was made for.
Two tools fix this.
- Set First Cue. Watch the video. The instant you see the first action happen, press the C key (or click Set First Cue). The whole script shifts to match. This handles big offsets in one keystroke.
- Fine-tune slider. A small slider (±500 ms) lets you nudge the script forward or backward in tiny steps. ToyControl saves the setting for that specific script, so once you align it, you never have to redo it.
For a complete walkthrough, see The script and video are not in sync.
Tuning the feel
Two switches let you change how a script feels without changing the script itself.
- Stretch. Some scripts are gentle by design. Stretch exaggerates the highs and the lows so a soft script feels more dynamic. Turn it on for slow-paced scripts. Turn it off for already-intense ones.
- Loop. When the script ends, restart it from the beginning. Useful for short loops or warm-up clips.
You can also adjust the Multiplier in the device bar at the bottom to make the whole script stronger or gentler, and the Speed range to set a floor and ceiling.
Auto-match
If you have lots of videos and scripts stored together, Auto-match is the time-saver. When you load a video, ToyControl looks through your library for a script with the same name and loads it automatically. No clicks needed.
This works whether the script is in your imported library or in a folder you pointed ToyControl at. See How auto-match finds the right script for the details.
Try it
If you are paired with a toy, drop a video and a script into ToyControl and hit play. That is the whole thing.
If you do not have a script yet, see Where to find scripts for your videos. The first one is free.
When to use Script Player vs Connect to VR
| Script Player (no video) | Script Player (with local video) | Connect to VR | |
|---|---|---|---|
| Where is the video playing | Anywhere else (or no video) | In ToyControl, on your computer | On a VR headset in HereSphere |
| Where does the script live | Your ToyControl library | Your ToyControl library | Your ToyControl library |
| Helper app needed | No | No | Yes |
| Best for | The script feature itself | 2D local videos | VR scenes |
You can use Script Player without a local video or Connect to VR if you have your video playing somewhere else and just want the toy to match. The script knows its own timeline.
Frequently asked
Can ToyControl play .funscript files? Yes. Drop one into Script Player and it plays.
Can it sync a funscript to a local video? Yes. Drop the video into the Script Player; ToyControl plays both together. See Video Player for the feature page.
Can it adjust script timing? Yes. Set First Cue handles large offsets in one keystroke; the fine-tune slider handles small ones in milliseconds. Settings save per script.
What files does Script Player support? Files ending in .funscript. They are small text files that say what the toy should do at each moment. See What is a funscript.
Can I edit a script in ToyControl? Not currently. Use the free OpenFunscripter (OFS) for editing, then load the edited script back into ToyControl.
Related
- Patterns, for sessions without a video.
- Video Player, for local videos on your computer.
- Connect to VR, for VR scenes on a headset.
- What is a funscript, if you want to understand the file itself.