OpenFunscripter - another scripting tool - 2.0.0 release

OFS uses a 3rd party video player component, MPV, which has caused problems for some users with e.g. Intel integrated graphics. nVidia video cards seems to works best and AMD usually work too. However, the OFS dev has very few options to help if it is MPV that is the culprit. There is a thread about this that you could look into and try the suggestion there. Maybe it help you even if it didn’t help the one that had the problem originally.

only version 13.0 was launched

I’ve tried everything that I can think of. Cleared registry and folder search of all OFS related entries. Rebooted and reinstalled latest version with no luck. I use an Nvidia graphics card so I don’t think MPV is the issue as mentioned above. Is there any enviro variables that need to be set? Will Cuda and cudnn being installed mess with it? Had to install it to mess with another video editing program that uses python and tensorflow. I’m at my wits end with this and can’t get used to JFS which opens no problem.

hey guys :slight_smile:
first of all I want to thank you for all this hard work and time you put in this - well done and it is quite interesting

I got some issues which I think might be more general but I hoped maybe there are some people who would have some tips:
I just started my first steps in scripting and i am using the recording mode or the motion tracker
for making a clip interactuable i am using the funexpander (I think its called) - I put in a 4.94GB clip and received a 28 GB clip, is this size change accurate?
also it doesnt run really fluent and I got no idea if this has to do with a wrong rendered clip or if its because I got to fast movements scripted or anything else
do you know what might be the problem?

thanks already in advance!

The files can increase in size, make sure that you are converting them to 30fps and set height to 1080 to lower the resolution a bit:

image

Hope it helps. If it will still lag afterwards you might have not powerful enough PC/laptop and you might want to lower the height setting even lower.

1 Like

Just tried to update to the latest version and now I’m having the same issue as 47dahc and smoyk.

Blue ‘thinking’ circle spins for a moment then vanishes and nothing else happens. Older version I was using 10 minutes ago worked fine, all prerequisites installed, creating mpv.conf made no difference.

In case it’s a useful clue, no %appdata%/OFS/ seems to be being created during the installation. The old one from the previous version existed but once I removed it, it wasn’t recreated by installing or running the new version.

Edit: Did some more testing and the 1.3.0 Beta release is the most recent version that will open. Looking at the changes between that and v1.3.1 gives me a hunch it’s the introduction of AVX that is causing the issue - my CPU doesn’t support AVX but there is no error message displayed. Is there a way we can get a non-AVX build to test?

Thanks for the testing and info LondonGent. This makes sense since I’m trying to run on an 11yr old AMD Phenom II X6 1090T CPU. I guess the life span of my future proofed build from 2010 has finally ran out.

OFS won’t open, I have a windows 10 machine and have done all the steps.

Reinstalled several times correct C++ etc etc…

I get a white screen for 3 seconds and then the program closes again

Can someone assist me?

1 Like

What CPU does your computer have? Does version 1.3.0 work for you?

Intel Core I5-2520M I tried all the versions but unfortunately not working getting the same issue

Seems like you’re not having the same issue as 47dahc, smoyk and I am. Not sure what to suggest other than waiting for someone more knowledgeable to chip in.

1 Like

I added a new release 1.4.3

There’s now two version one with and one without AVX support.
When profiling with AVX I saw roughly ~10% speed gains (which really only results in slightly less overall CPU usage).
But if you’re running an older CPU (10+ years) it most likely doesn’t have AVX… :sweat:

The AppImage doesn’t use AVX.

3 Likes

quick question:
is there a way to set all the bottom points from like 0 to 2 at once instead of having to adjust each single one of them? from already existing scripts i mean
because 0 is way to loud on my toy so there would be no way to really enjoy this :sweat_smile:
its a lovense max 2, so no settings available (of which i would know of) like handy or launch.

Yes, or at least you can get close enough. With your script open in OFS:

Select all points with Ctrl + A

Select bottom points only with Ctrl + Shift + Down Arrow

Press Shift + Up Arrow twice to move all bottom points up 2

This will move ALL bottom points upwards, but if it’s only by a couple of points it won’t be noticable while making sure you never bottom out at 0.

1 Like

thanks so much, gonna try this one out!

I’m happy to confirm the non-AVX version has solved the problem. Thanks for such a quick response!

Use Funscript.io - Create, Modify, Enjoy Funscripts instead:
image

If you use the method of @Ior1yagami you might lose some low bottom strokes in the process. You might achieve the same result with OFS as with funscript.io but I’m pretty sure you would need to learn how to use lua scripts because it’s not featured natively.

1 Like

I can confirm as well and ditto what LondonGent said. Thank you very much for a quick turnaround. Hopefully I can get time now to finalize a Sybil A script I’ve been working on and share with the community.

I managed to get a rudimentary extension going that allows directly sending the script to the handy. It is really rough though, has bad sync and needs things like a web server on your machine and an external binary for talking to the API.

Ideally this could be solved by allowing to load dynamic libraries or integrating some extra libraries into OFS permanently. I’d need something like LuaSocket for a cross-platform web client (and server?) and something that can parse JSON. I think the same libs could be used to work with Buttplug.IO’s Intiface as well.

The main problem is that while I can send commands using CreateProcess and an external tool (HTTPie in this case) but can’t see how I’d retrieve answers from it, which is mainly needed for properly syncing.

Actually converting the script to the Handy’s format and getting the UI buttons to work has been quite simple though and the API is fun to work with, even for someone who hasn’t really done anything with LUA, ever. I think a full, properly usable version would come in at around 200 lines of code, if even.

What I’m doing right now is this:

  • Add some buttons for start, stop, sync and upload
  • Upload button gets table of all points and stores them in a temporary CSV file. The format is simple enough to be written without an extra library.
  • Then a call to the API is made via HTTPie that tells the Handy to fetch the script from the previously set up web server.
  • That server only ever has to shortly serve one file (or from memory) and only has to be on the same network as the Handy, not open to the Internet. I think serving that file could be handled by LUA as well instead.
  • Sync button gets an estimate round trip time from the API. This value would have to be used in some calculations/passed back to the server, I don’t see how to get it back from HTTPie though. Except maybe through some temp files, but that sounds awful. Right now it’s just a fixed value I set.
  • Start button gets the current playback cursor position and sends it to the API, together with a start command. I guess ideally extensions would be able to hook the pre-existing playback control buttons, then I’d just use a toggle instead of extra start/stop buttons.
  • Stop does what it says on the tin, nothing special.
1 Like

@xipeho
Well, LuaSocket used to be available in 1.4.2.
I just removed it again because I felt it was to low-level to be usefull in Lua scripts.
Like operating with sockets in Lua isn’t fun and the http functionality that it supposedly has I could never get to work.

In theory adding http support myself in Lua is easy.
The annoying part is getting HTTP(+SSL) support in OFS first (in a cross platform manner).
I can’t promise anything right now…

If you want to do read/write json you can just throw this json.lua into the the same directory as your main.lua.
And then you just write json = require "json" to use the library.
Using raw Lua libraries is pretty easy.