Skip to content

Supported Formats


Input formats

Audio

Format Extension Notes
MP3 .mp3 Most common; all bitrates supported
WAV .wav Lossless; fastest analysis
FLAC .flac Lossless compressed
OGG Vorbis .ogg
M4A / AAC .m4a, .aac

Video

Format Extension Notes
MP4 .mp4 H.264, H.265
Matroska .mkv Any codec
QuickTime .mov

When you load a video file, forgegen extracts the audio track automatically using FFmpeg. The video frames are not analysed in this version — the funscript is driven by the audio track only.


Output format

forgegen exports standard .funscript JSON — the same format used by OpenFunscripter, FunScriptForge, SyncPlayer, and all major haptic players.

File structure

{
  "version": "1.0",
  "inverted": false,
  "range": 90,
  "actions": [
    { "at": 0, "pos": 10 },
    { "at": 500, "pos": 73 },
    { "at": 1000, "pos": 10 },
    ...
  ]
}
Field Description
version Always "1.0"
inverted Always false — standard orientation
range Device range hint — always 90
actions Array of {at, pos} keyframes
at Timestamp in milliseconds
pos Position 0–100 (0 = bottom, 100 = top)

Constraints

  • Actions are sorted by timestamp
  • Duplicate timestamps are removed (last value wins)
  • Positions are clamped to 0–100
  • A minimum of 2 actions is required; forgegen raises an error if the curve is empty

Compatibility

The output .funscript file is compatible with:

  • FunScriptForge — recommended next step for refining the draft
  • OpenFunscripter — open for manual editing
  • SyncPlayer — direct playback with a connected device
  • Intiface Central — device bridge for Handy, OSR2, and others
  • Handy app — direct upload to The Handy
  • MultiFunPlayer — multi-axis funscript player