EroScripts is a community for scripts that sync up interactive sex toys with porn. Learn more.

To discover, download, and help choose what gets scripted, create an account.


OpenFunscripter - another scripting tool - 1.1.9 release

Hello there.

This is a tool to create funscripts.

Disclaimer: I’ve been asked twice now regarding paid scripts.
You can do whatever you want with scripts created with OFS.
No strings attached.
I upload a windows releases on github releases.

Feature requests :warning:
I would really appreciate if people would make feature requests on github (by creating an issue).
This would be an immense help for me and heres why.

  • It makes it easier for me to track and not forget.
  • Some feature request require alot of further discussion. Which doesn’t belong in this thread since alot of people who read this thread probably don’t care.
  • Naturally some feature request have to get turned down for various reasons and github is a good place to document why.


  • fully open-source
  • theoretically fully cross compatible for Windows, Linux & OSX ( someone just needs to compile it for those platforms :sweat_smile: )
  • an undo system
  • rebindable key bindings
  • displaying an audio waveform in the script timeline


  • v1.1.9 Github

    • fixed bug introduced in 1.1.8 where under certain circumstances only the actions array would get saved but nothing else
      • thankfully no work should’ve ever been lost due to this… :cold_sweat:
    • surge (L1) & sway (L2) axis are now correctly assigned
    • removed “associatedScripts” when saving while using multiple scripts
      • instead the new convention is that all scripts which start with the same name will get loaded automatically
    • extended keybinding system with “modifiers”
      • theres a new tab in the keybinding window for modifiers
      • this will contain more usefull modifiers in the future
    • Alternating mode now alternates every key press instead of looking at previous actions
  • v1.1.8 Github

    • 3D Simulator
      • added “Editing” tab to insert points #10
      • added global pitch & yaw to rotate the simulator
      • twist doesn’t spin continuously anymore
    • Recording mode can now record pitch & roll at the same time. “Two axes” checkbox (only with a controller)
    • “File”->“Share…” now handles saving of multiple scripts
    • fixed possible stack overflow in spline rendering :scream:
    • added the ability for Lua scripts to tag actions
    • added filesystem paths for scripts/video & video directory to the Lua API
    • added “select all left/right/top/middle/bottom” bindings
    • the audio waveform is now rendered in a fragment shader ( 99.99% less triangles on screen. wow)
    • added ability to change audio waveform color
    • improved save performance by doing more work asynchronous
Old releases
  • v1.1.7a Github

    • Added the ability to bind Lua scripts to keys/button
      • Go to “View”->“Special functions”->“Custom functions” select the script & click “Bind script”
      • After that you’ll find it under “Options”->“Keys”->“Dynamic”
      • You only have to do this once, there’s also a trashcan button to get rid of the binding again.
        This is great because it allows custom functionality to integrate efficiently into your personal workflow.
    • Added a lua/lib directory from where Lua scripts can require 3rd party libraries
    • Multi script
      • Changed visual highlighting of active script.
      • You can now use the mouse to select which script is active
    • Improved performance of spline rendering ( lost a little of smoothnes )
    • Fix T-Code error print (“Failed to write to serial port.” was printing no matter what…)
    • T-Code channel invert now gets saved
    • Fix paths longer than MAX_PATH on windows #8
    • Remove qutoes from the heatmap name #9
    • Added move “Move actions +5/-5 up/down” binding
  • v1.1.6 Github

    • Added remaining T-Code channels
    • When using T-Code the OSR will assume the position in the script even the player is paused.
      (only works when the T-Code window is open)
    • Switched out library for serial communication #7
    • Fix T-Code interpolation when not using spline mode
    • When pasting the area in which you paste gets cleared first
    • Fixed frame seeking issue which had potential to let the video player and OFS go out of sync in a bad way
    • 3D simulator position now gets saved
    • The Action editor UI doesn’t jump anymore when pausing/playing ( thanks to #6 )
    • Insert offset now gets applied to recordings.
      This can be used to correct for your personal reaction time.
  • v1.1.5 Github

    • T-Code support
      • Find it under “View”->“T-Code”
      • If you have a OSR2 you can play scripts directly in OFS
    • Catmull–Rom spline interpolation for strokes is the new default.
      • It can be turned of by right clicking script timeline “Rendering”->“Spline mode”
    • Moving points in tempo mode snaps to the grid
    • Binding to move closest point/selection +10 up or -10 down. Has to be bound to a key/button first.
    • Twist is back on the 3D simulator
    • By right clicking the video player you can lock the position/vr rotation & zoom
    • Simulator can also be locked with a checkbox in the window
    • Added “Bookmarks”->“Delete all bookmarks”
    • Added shortcuts for adding multi-axis scripts “Open…”->“Add…”
    • Added live video preview to the timeline.
    • I may have missed something… :thinking:
  • v1.1.4 Github

    • The previous two builds had no controller support. It’s re-enabled now…
    • Linux build was broken due to the addition of Lua. Is fixed now
    • Changed the user Lua script directory to the same place where configurations are stored.
    • Controller button repeat rate can now be controlled. In the main menu bar
      “Controller”->“Repeat rate” it’s in milliseconds
    • Added multi-script Lua script support :crazy_face:
      • In “data/lua/examples/” is new example script multi_script_example.lua
    • Added “random_noise.lua”
    • Added support for Lua scripts to have variables that can be configured in the GUI.
    • Bookmark intervals
      • By setting two bookmarks “a” & “a_end” you’ll get an interval.
    • The undo system handles multi-script modifications. This makes “Mirror mode” a lot safer to use.
    • Fixed a bug in the heatmap generation that I introduced in 1.1.3
    • Improved heatmap coloring :rainbow:
    • The default font can now be changed at runtime. The font size can also be changed at runtime. :exploding_head:
  • v1.1.3 Github

    • On accident I completly broke linux… I’ll have to fix that some other time
    • Added Lua scripting support “Special functions”->“Custom functions”
    • Rolling backup doesn’t roll anymore. it never rolled anyway :man_shrugging:
    • Selections in Spline mode are now also curved
    • Improved heatmap generation.
      • it now ignores all points which don’t change direction of the stroke
  • v1.1.2 Github

    • Removed recordings They won’t be loaded anymore.
    • “Mirror mode” can mirror recordings across loaded scripts.
    • Added “Simplify” algorithm to “Special functions” window
    • Added “Offset” in the “Mode” window the offset is applied when inserting actions while playing the video
    • Added “Vsync” switch and framerate limiter to “Preferences”
      • I recommend turning off vsync if you have a 60HZ ( or less :scream: ) monitor. If you have a 144hz monitor like me you can keep vsync on. :smirk:
    • Added visually really cool “Spline” mode in the “Mode” window. It turns lines into curves.
  • v1.1.1a Github

    • Optional extra height lines for simulator
    • When loading multiple scripts they get associated with the first loaded script.
    • Added “Overlays” in the “Mode” window you can select between “Tempo”, “Frame” and “None” overlays
    • QoL for metadata editor
    • Added bindings “Next/Previous action (multi)” gets you to the next action when multiple scripts are loaded
    • Deselecting of axis on the 3d simulator
    • Added “Mirror mode” when multiple scripts are loaded
    • Added “Move to current position” binding ( moves action to current position )
  • v1.1.0 Github

    • Support for top/bottom vr videos 180° & 360°
    • Save heatmap saves now as png
    • Added video progress indicator
    • Fixed screenshots on linux
    • Added “Repeat stroke” binding
    • Main menu bar starts flashing red if changes aren’t saved after 5 minutes
    • Fixed “Statistics” not being consistent
    • Added “Line” width to simulator
    • Increased resolution of audio waveform
    • Massive performance improvement for audio waveform rendering
    • Added a “Simulator 3D” for multi-axis scripts :thinking:
    • Removed “ghost scripts” in favor of stacking multiple scripts on top of another
      • Scripts can be selectively hidden via the right click menu
    • Fixed some issues with paths and character encoding
  • v1.0.9a Github

    • Fix windows file dialogs not returning a path for some files
  • v1.0.9 Github

    • There’s now an “.exe” installer for windows and a snap package for linux (not just ubuntu)
    • Added “File”->“Share…” this allows you to save a trimmed version of the script
      • OFS settings don’t get saved
      • Redundant actions get removed
    • Ability to load multiple scripts at the same time
      • Added “Open…”->“Add new” & “Add existing”
      • With PageUp PageDown you can cycle through loaded scripts or use the right click menu on the script timeline
      • When you use “Save as…” or “Share…” just the active script gets saved
      • When you use the regular save all currently loaded scripts get saved
      • You can unload scripts with “File”->“Unload”
    • Fixed simulator position label
    • Settings now get saved in “%appdata/OFS/OFS_data”
      • Added version number to settings this allows for people to retain their configurations through updates 99% of the time as the version won’t change often (maybe not at all)
    • You should now be able to load audio files even if they don’t have an image
    • Added addional thick vertical lines to the script timeline 100ms appart, if the fps divide by 30 without remainder (at 24 fps it’s more like 83.33ms)
    • Fixed bugs :bug: :wrench:
  • v1.0.8 Github

    • A rather large amount of work went into adding controller support
      • Every “key” binding can be bound to a controller button
    • There’s two modes “Scripting” mode & “Navigation” mode.
      • The active mode is visible in the top menu bar
      • In “Scripting” mode all the bound bindings are active and can be used.
      • In “Navigation” mode you can navigate the UI using the controller but the bindings won’t work. This not something I had to program it was already built into ImGui.
      • There’s a binding to toggle between the two modes. (default pressing left stick)
    • Here’s a useful image I found showing how “Navigation” mode works. Image link
    • Added more options for controller recordings. This
    • “Keys” can now be filtered name to easily find them
    • “Keys” has a “Controller only” checkbox which only shows bindings which are currently controller bound.
    • You can now clear a binding by clicking the change button and then hitting escape
    • Removed the undo state buffering to disk. ( because of the lag it was causing )
      • Increased undo limit to 1000
    • Improved rendering performance for large selections
    • Updated the metadata editor
    • Added a range extender which can be applied to selections.
      • It’s in a new window “Special functions” which will probably have more functionality in the future
  • v1.0.7 Github

    • This is my first “fully automated” (it’s one click for me) release. The previous releases where all handmade. :wink:
    • There’s no major things just a couple of fixes and things which annoyed me personally
    • Added Japanese glyphs no more “???????”
    • Added binding to deselect everything (default: CTRL + D)
    • I wanted an indicator to see when something is selected
      • The white border around the script positions becomes blue when something is selected
      • I’m open for better ideas :thinking:
    • Changed the behaviour for the invert function when nothing is selected
      • It now inverts the closest action. Previously it would try to pick 3 points which I thought was stupid.
      • Also added the default binding “i”
    • Fixed the go to bookmark which was broken
    • Added bounds checking when moving actions which aren’t selected. ( can’t be moved below 0 or above 100 )
    • Added new function “Isolate” (default binding: R)
      • It picks the closest action and deletes the action before and after it
    • Added a default layout. This was key to being able to fully automate the build.
      • If you somehow mess up the layout you can delete the “imgui.ini” and it will restore to a default layout.
  • v1.0.6b Github

    • You can now have multiple recordings
    • Recordings can be turned into actual actions
    • Saving & loading of recordings works
    • Slightly altered heatmap generation
    • You can now double click in the script timeline to seek
    • Removed “Draw raw actions” or whatever it was called and replaced it with 3 render modes
      • “None” renders no recordings in the timeline
      • “Active” only shows the active recording
      • “All” shows all recordings (default)
  • v1.0.6a Github

    • Fixed a crash because I forgot to initialize something
    • Fixed visual glitches. While trying to seek as the video is playing again
    • Made simulator even smoother ( uses floating point position now )
    • Save a bunch of video player settings with the script
      • VR rotation & zoom
      • Playback speed & volume
      • Screen position of the video & zoom
      • Video mode
    • Grouped key bindings ( the window kept getting longer )
    • Fixed an issue where the backup directory for the rolling backup would sometimes get created somewhere else…
  • v1.0.6

    • Oh boy this is a big one probably will forget to list some things
    • Added light antialiasing. I hope this works for everyone because it didn’t on linux :sweat:
    • I stopped fighting actions not being perfectly aligned with frame timings as it was a battle I couldn’t win
      • You can now jump to any action even if it is misaligned
      • There is a “sync time with player” key binding which will sync
      • This is what it looks like when OFS is out of sync with the player. The red line shows the currently rendered frame.
    • Added vertical frame lines to the script time line. See above
    • Fixed visual glitches. While trying to seek as the video is playing
    • Added recording mode with mouse and controller support as described here ( there isn’t a way to turn recordings into actual actions yet )
    • You can shift click actions into the script timeline
    • You can shift drag single actions with the mouse in the script timeline
    • You can shift click actions via the simulator
    • Noticeably faster frame seeking ( especially backwards )
    • Added “Fast step” & “Fast backstep” bindings which are configurable in the amount of frames they seek ( default: 6 )
    • Simulator
      • Added lines
      • Added “Show positions” checkbox
      • Added “Simulate raw actions” ( for recordings )
      • Added global opacity slider
    • Added rolling backup ( enabled by default )
      • Creates a directory “backup/video name/”
      • Will backup your script every minute automatically
      • Deletes the oldest backup after 5 backups
    • Fixed some crippling bugs like this one
    • Changed speed control to be more granular. ( 10% steps instead of 25% )
    • Added “Select->Frame align” which tries to align selected actions with frames ( use it only on misaligned actions or not at all )
    • That should be everything worth mentioning :thinking:
  • v1.0.5

    • Undo system will buffer states to disk after 500 states have accumulated
    • Added an about window
    • Fixed actions placed while playing with “Smooth” enabled not being aligned with frame times
    • Added an icon ( graphic design is my passion :art: ᶦᶠ ˢᵒᵐᵉᵇᵒᵈʸ ʷᵃⁿᵗˢ ᵗᵒ ᵖʳᵒᵛᶦᵈᵉ ᵃ ᵇᵉᵗᵗᵉʳ ᶦᶜᵒⁿ ᵇᵉ ᵐʸ ᵍᵘᵉˢᵗ )
    • Fixed VR mode zoom
    • Completely rewritten serialization ( C++ template black magic )
    • Last position in the video gets saved in and loaded from scripts.
    • OFS keeps track of the 5 most recent file pairs opened
    • Audio waveform gets cleared when loading a new video
    • Improved borderless fullscreen
    • Fixed window at start-up being larger than the available screen space
    • Cycling through subtitle tracks with key binding
    • Fixed file dialog not opening if the last opened directory doesn’t exist anymore
    • Removed system alerts ( maybe I’ll find a better alternative in the future )
  • v1.0.4a

    • Smooth scrolling script timeline very noticeable at low playback speeds or high refreshrates
    • A background for the new simulator
  • v1.0.4

    • Loading videos and scripts from different directories
    • ( hopefully ) fixed handling of unicode characters in file/directory names
    • Added Metadata editor
      • The format has been specified in a collaboration between multiple tool/player creators
      • Script creators are able to attach metadata to their scripts.
    • Added a brand new simulator
      • This one can be rotated and fully customized
    • Heatmap can be exported as an image
    • Made application font size customizable under Preferences->Font size
  • v1.0.3

    • Left/Right Shift/Ctrl can be used interchangebly
    • Added “Move actions with snapping”
    • Added equalize actions function
    • Added invert actions function
    • Added Select->Mid points only (It selects everything which isn’t selected by top or bottom)
    • Added ability to save screenshots of the video
    • Added ability to set a fixed range in “Alternating” mode
    • Added “Select all left / right”
    • Added ability to set start and end point for large selections
  • v1.0.2 Github

    • Added ability to create Bookmarks
    • Hardware decoding is not forced anymore
    • Added option to force hardware decoding ( try this when playback lags )
    • Added total duration next to time elapsed
    • Fixed an issue with the simulator
    • Fixed division by zero because the script contained duplicate actions
    • Fixed rendering issue with the lines in the position window
    • Ffmpeg is back in this release
  • v1.0.1

    • Important I have decided not to include ffmpeg.exe in the release which halves the size of the archive. Ffmpeg is only used to generate the audio waveform. You’ll have to get ffmpeg.exe separately and set the path under Options->Preferences.
      Let me now if this is annoying to you.
    • Keybinding system now actually works
    • Fixed any issue when pasting actions ( thanks to Husky538 )
    • Minor UI change to the speed controls
    • Generating the audio waveform is now asynchronous and doesn’t block the whole program anymore
    • I’ve decreased the minium zoom level for script actions from a 5 second window to 1 second. ( this means you can zoom in further ) ( as requested by Sentinel )
    • If no selection is made the “Move” bindings as well as the “Delete” binding will affect the closest point ( as requested by Sentinel )
    • Added a label in the top menu bar showing how many minutes have passed since the last save. ( as requested by Sentinel )

Open source projects are always welcome in online communities! :clap:t2:
I just regret that I’m worthless when it comes to C++ and can’t contribute. I’ve spent 15+ years with .NET and hardly no C/C++ during that time. When I’ve been digging into C/C++ it has mostly been reading legacy code.


The audio is very interesting. I love the HMVs and PMVs that are scripted to the music. If this is implemented in a way that shows the beats and is scalable it should make that much easier!
I will be downloading and testing this!

I do have one question though. Is it possible to have a most recent stable build for Windows already compiled and ready to download? I am not knowledgeable regarding this and more often than not I fail to make these packages work.



Yes under releases you’ll find which is precompiled and ready to use.

The whole audio thing is still pretty rough because I’m blocking the whole program to output an mp3 with ffmpeg also the audio waveform doesn’t get updated yet when changing videos. To access the feature just right click the script action timeline there’s also a scaling factor for the waveform.

Here’s another screenshot with the right click menu.


@sentinel Yeah you won’t find a C++ programmer who doesn’t hate C++ :wink:
I’m just a hobbyist C++ programmer so for me it’s a love hate relationship.


Is it just me or is anyone else just not able to load videos or anything? (Using the precompiled beta 1.0)

Have tried going the file → open video/script route and dragging and dropping both .mp4 and .m4v files.
The program has also been opened as Admin and regular, both the files are located on the same partition.

1 Like

@gagax123 I haven’t come around to try this out for real scripting yet, but I will try it soon. I only script VR.

  • One thing that I would like to have is a markerin the simulator where the next point is, i.e. if the next point will be at 70% then I want some kind of marker at 70, e.g. a thin red line, so that I know that when the moving simulator marker reach it it will change direction. I belive that would help me because I often find myself trying to look at the action, the simulator and the points graph at the same time. As I said, I don’t really know if it will help and to know I must be able to test it.
  • It would be good to have different presets for the simulator statistics depending on the device you use since the devices have different capabilities regarding speed, stroke length etc.
  • I use shift + arrow keys a lot to move the closest point in JFS. That is something that I really miss.
  • I like that points are being added in the center.
  • Undo seems to be a nice feature.
  • I use delete to delete the closest point a lot in JFS and I really miss that feature.
  • Can you add a timer somewhere telling me how long it has been since I saved the last time? It is very easy to forget the time when you script and you really don’t want to loose a lot of work due to forgetting to save regularly.
  • Can you make it possible to zoom in a even more in the points graph? Even when I zoom in at max the frames/points are too close. I’m having a hard time seeing if there are 3 or 4 frames between two points without actually counting the steps using the arrow keys. When I have max zoom in I still would like to have the distance about 4 times further apart.

I will probably find more features that I miss later. As I said earlier, I like open source project initiatives and this is a very good start.


@forc any errors? you might be missing codecs. I’m not quite sure but installing Download K-Lite Codec Pack Mega may help.

Thanks for all the suggestions.
I’ll be sure to put most of those things in the next release.
I’m probably going to rewrite the simulator so that’s something I’m going to do try in a later release.
Can you go a little more in depth what you mean with device specific presets for the statistics?
So far I have kept the statistics deliberately generic.

Also heads up to everybody @Husky5383 alerted me that the keybinding system is broken in the beta release.


I don’t have all the specs, but the Launch has a shorter max stroke length compared to The Handy. The Handy is limited to a max speed of 400mm/s if I remember correctly. I don’t know if the Launch has the same or another value. Some values are calculated so to be correct I assume that some of them requires the specs of the device to be accurate. The speed will be a function based on a percentage of stroke length (y-axis) and time (x-axis) for two points and this should be different values since the absolute distance for y-axis in mm depends on the device. When to warn for exceeding speed also depends on the max speed for the selected device. It is of course an option to use values for the device with the lowest specs (assume that is the Launch). However, at some point people might decide that it is not worth bothering about the Launch because most are broken and people have bought The Handy, a possible Launch 2 or the OSR. Then we want another device to be the lowest spec. A minimum distance between points on y-axis would also be good to have a warning about since the device usually start to behave erratic or a player might “solve it” for you, but you don’t know what happens as a scripter.

Sorry for the wall of text :slight_smile:

1 Like


I like this approach to an open source script creator tool.
I once asked in the JFS thread, if something like this is possible:

Is this something, that could be added? I don’t know, if this is something, that would be in great demand by others though.

Thank you very much for creating and sharing this tool.

1 Like

@sentinel That should be possible.
I’m going to have to think some more about this.
For now my goal is a bug free 1.0 release.

@Slibowitz Bookmarks are planned in fact I’ve seen your post before :wink:
I’ll have implement a way to save / load script specific settings (like bookmarks) first though.


I fully understand that it will take time to implement things and you are right in your priorities.

1 Like

Thank you very much for your response. I am looking forward to it :slight_smile:

Take your time. I wish I could help, but I don’t know how to program, so I am not very useful here. But I will test every version you’ll release, I promise :slight_smile:

1 Like

You can save them in the funscript itself like JoyFunScripter does:


I think, you could also add “bookmark1”, “bookmark2”, … and something like “bookmark1name”:“bj start” …

Or like this:
“bookmarkPresets”:[{“name”:“bj start”,“position”:8776109434},{“name”:“bj end”,“position”:8776200000}]

1 Like

I’ve uploaded a new version. :raised_hands:

@HeelsLover69 In order not to collide with JFS stuff I’ll probably create a new node in the json like
“OpenFunscripter”: { … } and save everything releated to OpenFunscripter there.


@gagax123 Nice and speedy update :slight_smile: I will test the new version and get back, but probably not before the weekend.

1 Like

I used the OFS today for about half an hour on a script I am working on. Some things I noticed:

One thing I noticed right away are the colors. I love the colors. They have an extra punch to them. I often struggle to see, if it’s orange or red, green or yellow due to colorblindness. But these colors are way easier to see for me, cause of the extra punch to them. I can see if it’s red or orange, or green or yellow. They have so much clarity.

I like that I can change size of the UI-elements. I can make everything how I want and optimize it to my needs.

It is so smooth, when holding arrow keys right and left. The video plays totally normal and doesn’t stutter. Really good to get an overview of a part and to see the movements clearly.

What I like to see:

How much time is left in the video. So I know how much I have to script. It could just be there, where the current timestamp of the video is.

Problem I found:

The simulator doesn’t always move in real time. When I want to check, if a part is good or not, I hold right arrow key, to one point to the next point. I want to check, if everything is precise enough and if the movement fits my script. The simulator stays at the number I started on and doesn’t move slowly forward to the next point.
It’s not always like that though. It seems to occur, when the part is “freshly scripted”. On the older parts, the simulator moves in real time.
Ugh, I hope you get what I mean here. I don’t really know, how to explain it any different. If not, I try to explain better.


All credit goes to ImGui it’s just their default dark theme. It’s an amazing library which enables all these things without me having to do anything :sweat_smile:
There’s also a Light mode. If anybody cares about that I could make my custom widgets (the script position bar and the heatmap timeline ) also be affected by the style and add it to the options.

Yes that’s missing. I assume you mean that it’s supposed to display the total duration next to the elapsed duration.

I think I found and fixed the issue.


This looks great and thank you for all your work!

I have one idea/suggestion that might be quite a bit of work if you chose to implement it, but I think multi-track support (such as with audio editing/mixing software) would be an incredible feature.

  1. Being able to script a sequence twice and then splice or merge the two tracks would let us try out multiple approaches and compare/improve them simply without destroying work or creating many redundant files.

  2. Having multiple “tracks” within one script file would simplify things when scripters release multiple versions such as with/without filler strokes or simplified scripts intended for the launch. (obviously this would also require a player that can select between tracks as well)

  3. I suspect multi-axis scripting is eventually on its way, so having multiple tracks that could account for x, y, z, rotation axes, etc. will likely be useful (eventually). Even if you only had a single-axis device you could switch things up for variety. (Again, we would need a player that cooperated with this. Could even have the player set up so you can assign any track to any axis and do live “mixing”)

There are probably other uses too, but those are the ones that come to mind for now. I don’t really think there is any urgent need to develop this since multi-axis devices are far from ubiquitous and even the simpler features would require adjustments to funscript players. Just some food for thought as a “maybe someday” project if you are ever interested.

Thanks again and good luck with your development!

1 Like

This is annoying to me.

Here’s why (so it’s not just complaining)
The archive is only 25MB, when I have 87GB of videos with funscripts to match.
I appreciate that you’re concerned about saving me an additional 25MB, but it’s at the cost of making me go find, download and install a secondary component, without a link included to go get it in, like, three clicks. (you know, like when you have to go fetch your own copy of LAME encoder for MP3, because the encoder isn’t licensed for redistribution - at least there, LAME is linked so you can easily get it yourself and meet the licensing limitations. :smiley:

Yep. Definitely Irritating. :smiley: