What is a funscript?

A funscript is a small text file, written in JSON, that lists positions against time: at this many milliseconds into the video, be at this position between 0 and 100. A player reads it alongside the video and moves a connected device from point to point, so the device follows what happens on screen.

Checked against the app's code on 21 September 2026.

What is inside the file

The heart of a funscript is a list called actions. Each action is a pair of numbers:

at
The time of the point, in whole milliseconds from the start of the video.
pos
Where the device should be at that moment, as a whole number from 0 to 100.

Around the actions sit a few header fields. version is the format version, usually "1.0". inverted says whether positions should be read upside down. range is normally 100. metadata is a free-form object for information about the script, such as which program made it. Many files carry other keys too, such as chapters or notes; the field-by-field format reference covers each one.

By convention the actions are sorted by time and no two share the same at. There is no fixed rate: a point sits wherever the motion turns, so a slow scene has few points and a fast one has many.

A tiny example

Two full strokes over the first second and a half of a video:

{
  "version": "1.0",
  "inverted": false,
  "range": 100,
  "metadata": {},
  "actions": [
    {"at": 0,    "pos": 10},
    {"at": 400,  "pos": 90},
    {"at": 800,  "pos": 10},
    {"at": 1200, "pos": 90},
    {"at": 1600, "pos": 10}
  ]
}

Read it as: start at 10, reach 90 by 0.4 seconds, be back at 10 by 0.8 seconds, and so on. Everything the device does between those moments is filled in by the player or the device.

How players and devices use it

The usual convention is that the script sits in the same folder as the video with the same base name: scene.mp4 and scene.funscript. AutoScript Sync follows it both ways. Opening a video loads a same-named .funscript beside it automatically, and a finished generation is saved there too.

As the video plays, the player reads its own clock and sends the device towards the next point, timed to arrive when the video does. How that happens depends on the device. In AutoScript Sync there are two paths.

Autoblow AI Ultra: the device plays the script itself

The app fits the script to the Ultra's limits and uploads it once through Autoblow's cloud when you press Send Script to Device. From then on it sends only start, stop and offset commands, and every 1.5 to 5 seconds it compares the device's playback time with the video and corrects drift. Both the PC and the Ultra need internet. The Autoblow AI Ultra page has the details. It is the one device we have tested on real hardware.

Strokers through Intiface: streamed point by point

For a stroker connected through Intiface, the app sends each point as a move timed to reach the next point, running on the PC's clock from the moment you press play or seek. Nothing is uploaded, and there is no latency measurement or drift correction on this path. In the released app these devices get the script unshaped: your stroke settings and the device's speed limits apply to them from the next update. The Intiface compatibility page covers it. We have tested this path against mock servers and a simulated device, not yet on real strokers.

Either way, a single Offset setting shifts the device earlier or later against the video, if it feels out of step.

Where scripts come from

There are two sources, and the guide to making a funscript compares them.

  • By hand. Someone steps through the video in a funscript editor such as OpenFunscripter and places a point at each turn of the motion. It is slow and as exact as the person doing it.
  • Generated from the video. Software such as AutoScript Sync analyses the footage and writes the points. AutoScript Sync does this entirely on your PC: it measures motion in sampled frames with optical flow, optionally adds pose and depth models, places a point at each reversal of the motion and saves the result as a standard .funscript beside the video. The funscript generator page explains what you get.

A script made either way is the same kind of file. AutoScript Sync opens scripts made by other tools too, through Load Funscript…, drag-and-drop, or automatically when one sits beside the video.

What a funscript is not

  • It is not video. The file carries no pictures, sound or frames, only numbers and a few text fields. It is useless without the video it was made for, and it only lines up with that exact cut: a re-edited or trimmed copy shifts every point.
  • It is not tied to one device. Positions are 0 to 100, not millimetres or motor steps. AutoScript Sync saves the file unfitted. In the released app it fits a copy to the device's speed limits only for the Autoblow AI Ultra upload; Intiface devices play the saved script as it is, and fitting them the same way comes in the next update.
  • It is not always anonymous. The metadata object can say which program made the file and more. Scripts that AutoScript Sync generates carry analysis details, including a scene-type label for each two-second window, so read the metadata before you share one. The app strips it from what it uploads to a device.

Questions

Can I open a funscript in a text editor?

Yes. It is plain JSON text. Notepad will show it; the funscript validator will also tell you whether it is well formed and plot it, in your browser without uploading it.

Does AutoScript Sync play scripts I downloaded or made myself?

Yes. Load it with Load Funscript…, drop it on the window, or name it after the video and put it in the same folder. It then plays on the Autoblow AI Ultra or an Intiface device like a generated one.

Does the app upload my video to make or play a script?

No. Video analysis runs on your PC and the video is never sent to the internet. With the Autoblow AI Ultra the fitted script, without its analysis metadata, is uploaded to Autoblow's cloud, because that is how the device plays scripts. With Intiface devices nothing is uploaded.

Can I use AutoScript Sync's scripts in other players?

The saved file is standard funscript JSON, so any program that reads the format can open it. File → Export Script (as played) also writes a copy with your stroke range, intensity, invert and stroke depth settings applied, so another player feels the same thing.

Read next

Make scripts for your own videos

AutoScript Sync generates a funscript from a video on your PC; the trial is the full app for one day.