ANANGA

Guide · Scripting

How to make a funscript.

A funscript is a list of points, each a time and a position. Making a good one means putting points where the motion turns, keeping every move within what a device can do, and checking the result before anyone plays it.

01 / IN SHORTFour things to know first.

  • Points go at the turns. A player draws a straight line between points, so you mark where the motion changes direction, not every frame.
  • Work frame by frame. An editor that steps through the video one frame at a time is what makes a script accurate.
  • Stay inside device limits. ANANGA's reference: no faster than 500 units a second, no closer than 80 ms.
  • Check before you share. Run it through a checker, then watch it on a simulator or a device. The format itself is in the funscript, explained.

02 / CHOOSE A TOOLEditors, old and new.

ToolRuns onGood to know
OpenFunscripterWindows, LinuxThe long-standing editor, built on mpv, with Lua extensions. Its original repository was archived in September 2023, at version 3.2.0.
OFS forkWindows, Linux, macOSA continued fork, published under the EroScripts name, that reads and writes Funscript 1.1 and 2.0.
FunGenWindows, macOS, LinuxEditor and AI generator, with a multi-axis timeline and a "Funscript Doctor" that flags issues. Free for personal, non-commercial use; a Pro Pass unlocks its best models.
Handy ScripterBrowser, by OhdokiGraphs and motion tracking, and sends scripts to the Handy. Ohdoki says its scripts are not for commercial use, and the tool is not a development priority.
MTFGAdd-on for OpenFunscripterMotion tracking for static scenes such as VR. It automates part of the work.
ANANGA CreateBrowserMakes scripts from video, words, MIDI or drawing. It opens to everyone this winter.

03 / HOW TO SCRIPTA method that holds up.

  1. Start from the exact video.Use the file you will share the script for, and note its length. A script made for another cut will drift.
  2. Mark the turns.Step frame by frame and put a point wherever the motion changes direction: one at each top, one at each bottom. Extra points along a straight run add nothing.
  3. Use the scale honestly.0 is the bottom of the stroke and 100 the top. Use the full range only when the motion does; short motion gets short strokes.
  4. Write the pauses.A still moment is two points with the same position. Without them, the device glides slowly towards the next point instead of waiting.
  5. Stay inside the limits.No move faster than 500 units a second and no two points closer than 80 ms. When the picture moves faster than that, script shorter strokes at the right moments, not full ones the device cannot make.
  6. Add the details.Fill in the title, creator and licence. For multi-axis devices, add one file per axis, named after the main one: see the OSR2 and SR6.
  7. Save with the video's name.evening.mp4 gets evening.funscript. Whole numbers, sorted by time, no two points at the same moment.

Speed is easy to work out: distance over time. A move from 10 to 90 in 400 ms covers 80 units in 0.4 seconds, which is 200 units a second. The same move in 100 ms is 800 a second, well past the 500 limit.

04 / CHECK ITBefore anyone plays it.

  • Run the checker. ANANGA's checker shows the length, the speeds, points that are too close, duplicates and out-of-order points. It runs in your browser; the file is never uploaded.
  • Watch it move. On a device, or on a simulator. OpenFunscripter's 3D simulator became a separate project, OFS_Simulator3D, in version 3.0, and FunGen has a built-in player.
  • Check the end. The last point should fall near the end of the video. If it does not, you scripted against a different file.
  • In code. Developers can validate against the JSON Schema or use the open @ananga-ai/funscript library.

05 / GENERATED SCRIPTSA draft, not a finished script.

Motion tracking and AI save time on long videos. FunGen runs its tracking over a whole video, and its FunGenerate proposes the next 20 seconds for you to accept or reject; FunGen asks you to judge the quality on your own content. MTFG automates part of the work for static scenes.

Treat what they produce as a first pass. Go through the turns, the pauses and the speeds as you would with your own work, and run the checker before you share it.

06 / QUESTIONSAsked often.

Do I need a device to make a script?

No. Editors and simulators draw the motion on screen. A device helps for the final check.

0 to 100, or 0 to 99?

0 to 100. One early specification says 0 to 99, but scripts and players use 0 to 100.

How many points per second?

As many as the motion has turns, and never two within 80 ms. A slow passage may need one point a second; a fast one, several.

Which licence should I choose?

Any, as long as you write it in the script's details so others know what they may do. The example in ANANGA's spec uses CC BY 4.0.

Where do people share scripts?

See where to find funscripts. ANANGA's free, open catalogue is at ananga.ai/scripts.

07 / SOURCESWhere the facts come from.

Written and checked by ANANGA in Paris against the pages above on 6 November 2026. Corrections are dated on this page.

The player · Opening this winter

Felt, not seen.

ANANGA's player opens to everyone this winter. It plays your videos and their funscripts in the browser and in VR, with the Handy, Intiface devices and TCode devices, and keeps every file on your device.