FunscriptToolbox (FSTB?) is a command line tool that contains multiple features that can analyze and/or transform .funscript files.

Installation verb

  • installation

When starting --FSTB-Installation.bat in FunscriptToolbox folder will call this verb and it will install the OFS plugin and creates some use-case folder for the others verbs bellow.

AudioSync verbs

  • audiosync.createaudiosignature
  • audiosync.createfunscript
  • audiosync.verifyfunscript

Allow the synchronization of a .funscript to a video different than the one used by the scripter.

Use the application --help argument to see the application documentation.

See below, in the comments, for some use cases.

MotionVectors verbs

  • motionvectors.prepare: Prepare a video for others motionvectors verb
  • motionvectors.ofspluginserver: Starts a server to respond to plugin request.

Help speed up scripting with an OFS plugin.

See this topic for more information:
How to use FunscriptToolBox MotionVectors Plugin in OpenFunscripter

Subtitles verbs

  • subtitles.video2vadsrt
  • subtitles.srt2vadwav
  • subtitles.srt2wavchunks
  • subtitles.wavchunks2srt
  • subtitles.vadwav2srt
  • subtitles.gpt2srt
  • subtitles.srt2gpt

Help for creating subtitles files for a video.

See this topic for more information:
How to create subtitles


Every .funscript file that the tool creates or overrides is saved in a “vault”, found in “%appdata%\FunscriptToolbox\Vault”. If you ever make a mistake and override the wrong file or something, check this folder for your old file.

The tool also keeps log files of the last 10 executions in the folder “%appdata%\FunscriptToolbox\Logs”.

Binaries and Sources

FunscriptToolbox is fully open source over at github.

Latest release: 1.2.1

Please use github issues for your bug report.


The tool should be useful for some old scenes that have been altered after a script has been created. For example, NaughtyAmericaVR has a bad habit of altering their intro or even changing some parts of the scene (see Wake and Bake).

I know that @JohnSilverGold has been able to re-synchronize a few of his NA videos with this tool.

It should also be useful for 2D scripts that are often based on videos from free site (pornhub, etc), which can also change their video without notice.

1 Like

So far, I haven’t found an application (OFS, scriptplayer, etc) that wasn’t able to read a .funscript with an embedded signature. Let me know if you find an application that is not able to read the file.

Here’s an example:
NaughtyAmericaVR - 2017-04-20 - Melissa Moore - Wake and Bake [zalunda].funscript (667.8 KB)

1 Like

what file extensions do you need added? just .asig?

Yes, please. Thanks @hugecat

k added it

1 Like

Fixed a stupid bug where I moved files, instead of copying, to the %appdata% vault.
So, when generating a file, the file was created and then moved immediately to the vault. So, it seems to disappear.
Oups. Fixed in 1.0.1.

How to setup as a scripter

  1. Download & extract the tool somewhere (for example, C:\Tools\FunscriptToolbox)
  2. Create a folder “ScriptToRelease” (or anything you like).
  3. Create a batch file “PrepareForRelease.bat” in the folder “ScriptToRelease”, with the following content (modify the path of the tool if needed):
"C:\Tools\FunscriptToolbox\FunscriptToolbox.exe" audiosync.createaudiosignature *.funscript

If there is interest, I might expand the tool with commands that could be added to the PrepareForRelease batch file, like adding your default metadata, creating the heatmap image, downloading all images found on the video url, etc).

The tool might not work well with video with music since it’s trying to match similar audio sections. With music, there might be a lot of sections with almost identical audio.

After that, each time you create a script

  1. Move new-scene.mp4 and new-scene.funscript to the folder ScriptToRelease.
  2. Start “PrepareForRelease.bat”.
  3. Your .funscript, with an embedded audio signature, is ready to be released.

Your job is done.
In theory, you should not have to synchronize your script with all versions that exist on the internet.
“Consumers” should be able to do that themselves.

How to setup as a consumer

  1. Download & extract the tool somewhere (for example, C:\Tools\FunscriptToolbox)
  2. Create a folder “ScriptsToValidate” (or anything you like).
  3. Create a batch file “ValidateScripts.bat” in the folder “ScriptsToValidate”, with the following content (modify the path of the tool if needed, add --verbose argument if you want more logs):
"C:\Tools\FunscriptToolbox\FunscriptToolbox.exe" audiosync.verifyfunscript --fix *.funscript

After that, each time you have to synchronize a script to your own video version

  1. Move scene.funscript, scene.asig (if .funscript doesn’t include audiosignature) and scene.mp4 to the folder ScriptsToValidate.
  2. Make sure all the files have the same names.
  3. Start “ValidateScripts.bat”.
  4. If your video version is same as the scripter’s version, you’ll see something like this:

  1. If your version is different, you’ll see this and a synchronized version script will have been created for you:

How to create synchronized .funscript for a remastered video

If you have acces to scene.funscript, scene.mp4 and new-remastered-scene.mp4, the easiest way to create a synchronized funscript for the remastered scene is to open a command prompt and use this command:

"C:\Tools\FunscriptToolbox\FunscriptToolbox.exe" as.cfs -s scene.funscript -n new-remastered-scene.mp4

Good tool! :+1:
Also it works fine on Linux with wine, which is nice :slight_smile:

1 Like

For the last few weeks, I have been working on an OFS plugin to speed up scripting, tied to new features in FunscriptToolbox. It should be finished in a week or two but it’s already usable.

Any scripters that would like to beta test it?

Send me a message if you are interested.

1 Like

Ooh I’d like to help out for sure

Thanks @shamona_heehee, I’ll send you a DM in a few days. I still have a few things I need to prepare first.

1 Like