How to make a funscript

There are two ways to make a funscript: place every point yourself in an editor, or let software generate the points from the video and then correct what it got wrong. Hand-scripting is slow and exact; generating does the bulk of the work for you but needs checking. Either way you finish by validating the file, saving it beside the video and trying it on a device.

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

The two ways, compared

Hand-made and generated funscripts side by side
By handGenerated with AutoScript Sync
Your timeEvery point placed by you, second by second of videoChoose settings, press Generate, then review
Timing of turnsAs exact as your eyePlaced at each reversal the analysis sees; some direction changes are missed
Stroke sizeYour judgementFollows measured motion; tends to come out too small on fast scenes
Idle stretchesLeft still when nothing happensThe engine can keep moving through them; edit them out
Where the work happensIn your editorOn your PC; the video is never uploaded

The honest middle route is the common one: generate, then fix the sections that matter by hand. AutoScript Sync's timeline editor is built for that.

By hand in an editor

Hand-scripting is done in a dedicated funscript editor such as OpenFunscripter, which shows the video with a timeline under it. The workflow is the same whichever editor you use:

  1. Open the video in the editor.
  2. Step through it a frame or a few frames at a time.
  3. At each point where the motion turns, top or bottom, add a point at the position it has reached.
  4. Where nothing moves, put a point at the start and the end of the still stretch at the same position, so the device holds still instead of gliding.
  5. Play back sections to check them, and save the script with the video's name.

It is exact because a person decides every turn, and slow for the same reason. AutoScript Sync can open the result, play it, and let you edit it on its own timeline.

Generated with AutoScript Sync

AutoScript Sync analyses the video on your PC and writes a standard funscript. The trial starts when you click Start free 1-day trial in the activation window, which needs an internet connection.

  1. Open the video with File → Open Video…, or drag it onto the window. The dialog lists MP4, MKV, AVI, MOV and WMV; drag-and-drop also takes WebM and M4V.
  2. Pick an Accuracy: Fast analyses every 4th frame, Balanced (the default) every 3rd, High every 2nd. Fast is quickest but reads noticeably fewer strokes; High takes longer.
  3. Optional: if the action is in one part of the frame and the automatic tracking picks the wrong thing, draw a box with Set Motion Region…, or use Live Track to follow it as the video plays.
  4. Press Generate. Analysis runs locally; an NVIDIA graphics card speeds up the AI models, and without one it runs on the processor, more slowly.
  5. When it finishes, the script is saved automatically beside the video as <video name>.funscript. An existing script there is first copied to .funscript.bak.

Two other ways in: Generate + Play (instant) starts playback after analysing the first 90 seconds or so and swaps in the full script when it is done, but does not save it. Clips of about 110 seconds or less get no head start, and in the released app playback does not then start by itself; that is fixed in the next update. File → Batch Generate Folder works through every video in the chosen folder (not its subfolders) that has no script yet and saves each one beside its video.

What to check after generating

A generated script is a first draft. Look at these, in this order:

  • The quality report. If a run has problems, a quality report opens by itself: how much of the script was measured and how much was filled in where tracking dropped out, plus tracking drift and recoveries, each finding with something to do about it. It stays silent on clean runs. Reopen it any time from Help → Last Generation Quality….
  • Stretches where nothing happens. The engine holds titles and credits at rest, but inside the video it can keep producing strokes through spans with no action. Watch the timeline for those.
  • Fast scenes. Stroke size follows the measured motion and tends to come out too small where the motion is fast.
  • The wrong thing tracked. If a section follows camera movement or the wrong person, set a motion region and generate again, or fix the section on the timeline.

For a closer look, Report Studio opens the script and its generation report in your browser and charts stroke rate, speeds and what the analysis recognised. The reports are the gen_*.json files in %USERPROFILE%\.autoscript_sync\logs.

Fixing sections on the timeline

The timeline under the video shows every point of the script. Single points:

  • drag a point to move it;
  • Ctrl+click to insert a point;
  • right-click a point to delete it;
  • Ctrl+mouse wheel to zoom in on a section.

For a whole stretch, Shift+drag across it to select it, then choose what to do with it:

Amplify / Soften
Make every stroke in the span 15% bigger or smaller. Amplify is the quick fix for strokes that came out too small.
Shift ±20 ms
Move the span earlier or later in 20 ms steps.
Smooth
A 3-point smoothing pass over the span.
Delete
Remove the points in the span. The device then glides from the point before it to the point after it; for a full stop, add a point at each end at the same height.
Loop
Play the span over and over while you work on it.
Teach class
Label the span's scene type, so the app's classifier learns from you.
Re-analyze
Scan exactly this span again at full frame rate, and splice the result in. Useful where fast motion was sampled too coarsely.

Undo and redo keep 50 steps. When you save an edited generated script, the app learns from your edits how big strokes should be for each scene type, and uses that on later videos.

Validating, naming and saving

Scripts saved by AutoScript Sync are always well formed: sorted, one point per millisecond at most, whole-number positions from 0 to 100, written to a temporary file first so a crash cannot corrupt the one on disk. Hand-made or downloaded scripts are worth a check. Drop the file on the funscript validator: it reports invalid JSON, malformed actions, times out of order or repeated, positions outside 0 to 100 and moves faster than a speed limit you set, and can download a repaired copy. It runs in your browser and uploads nothing.

Name the script exactly like the video with the extension changed, scene.mp4 and scene.funscript, and keep them in the same folder. That is what makes AutoScript Sync load it automatically, and it is the common convention elsewhere.

After editing, save with File → Save Funscript As…, choosing the same name to replace the file or a new name to keep both. Keep your own copy of a script you care about: each Generate keeps only one .bak of the previous file, and the next Generate overwrites it.

Trying it on a device

With an Autoblow AI Ultra, connect it with its device token, press Send Script to Device so the fitted script is uploaded once, then play the video. After editing the script or changing stroke settings, send it again: the device plays the copy it was given. The Ultra is the one device we have tested on real hardware.

With a stroker through Intiface, connect and play; the app streams the points live from your PC and uploads nothing. In the released app these devices play the script without your stroke settings; those apply to them from the next update. We have tested that path against mock servers and a simulated device, not on real strokers.

If the device feels behind or ahead of the picture, change Offset. It runs from -5000 to +5000 ms in 50 ms steps; raise it if the device feels late. The app remembers the value for each video. Try a short section first, and if the motion is right but shifted, Offset is the fix rather than editing the script.

Before you share a script

Funscripts are often shared alongside the video they fit. Before you post one, open it in a text editor and read the metadata object, because it says more than you might expect:

  • The creator. Every file AutoScript Sync saves has metadata.creator set to "AutoScript Sync", even when you saved over a script someone else made. If you are sharing an edit of another person's work, credit them yourself.
  • What the analysis recognised. Generated scripts carry an analysis block: the generator and algorithm, timing, tracking details and a scene-type label for every two-second window. Anyone who opens the file can read those labels.
  • The video's file name. Scripts from the basic engine (with the adaptive AI engine turned off) record the video's file name, though never its folder.

If you want others to feel what you felt, use File → Export Script (as played). It writes <name>_as_played.funscript with your stroke range, intensity, invert and stroke depth settings applied, since other players do not know those settings. Device-specific fitting is left out on purpose, so the file suits any device.

Questions

Will generating the same video twice give the same script?

Not necessarily. The app learns between runs, from your labels and edits and from videos it has analysed before, so a later run can differ. Within one session, regenerating with the same settings reuses the analysis already done and is nearly instant.

Which Accuracy setting should I use?

Start with Balanced, the default. In the developer's own measurements on a few test films, Fast read about half as many strokes, and High scored about the same as Balanced while taking about 1.5 times as long. For a section with very fast motion, select it on the timeline and use Re-analyze, which scans at full frame rate.

Can I start from someone else's script and edit it?

Yes. Open it with Load Funscript… or put it beside the video, then edit it on the timeline like a generated one. When you save, the app sets the creator field to AutoScript Sync, so credit the original author when you share it.

What if the video has no motion the app can read?

If fewer than 5% of the analysed frames show real motion, the app does not invent a script. It tells you the video looks static.

Read next

Generate your first script

The trial is the full app for one day, started from inside the app; a licence is £14.99 once.