Creation of OpenFunScripter alternative

Hello,

I tried a few times to create some scripts and I went on eroscript and found some complaints about OFS not being maintained.

While I am a total newbie in scripting, I have quite an experience in programming and I would like to create an alternative with a whole new code base that other developers won’t be afraid to contribute to.

I made this post because I was wondering if there was anyone willing to participate in this journey with me.

Let me know if you are interested and do not hesitate to list the major features of OFS this tool should support first.

Thanks in advance

4 Likes

If you can do C++ you could probably contribute to OFS without making a separate application from ground up… Current OFS feels very comfortable for me it just need some bug fixes and QoL improvements.

Also Yoooi is currently making a custom OFS build to include tangents.

2 Likes

Hi, thanks for participating in the discussion.
From what I understood, OFS was very old and not attracting devs anymore. If it is still the case I can collaborate on it

OFS is fine. The biggest hurdle is that it’s written in C++, a language that not that many find attractive to work with anymore. Languages like C# and Java or script languages like Python is what devs prefer today.

I tried looking into a couple of bugs, but my rudimentary skills in C++ wasn’t enough when I realized that I needed to refactor the code and not just add an if-statement with alternative code to handle a missing case. Another bug behaved like a threading issue causing a crash so I backed away from that as well. Now I’ve learnt to live with the bugs like when OFS crash after generating a heat map that includes chapters or that OFS doesn’t store meta data template so you have to enter info there every time.

2 Likes

The single biggest thing scripters need is the ability to script with an active connection to the device. We should be able to see the movement in the device while scripting. Of course while toggled on or off. I could help, I know some cpp but most of the work i do is in AI/ML with python. But If I have a task I can figure it out usually*.

I think besides a few things OFS works pretty well. Iterating on top of that isn’t a horrible idea. Sure cpp is difficult to understand and use but its also fast, given the nature of what it does, that speed may be a requirement.

But if you start working on a fork or something. Let me know

1 Like

This is already possible via websocket and MultiFunPlayer.

8492acwvJ

With that being said, there can be an inconsistent delay when you press play on the video. So you can’t rely on it to check if actions are in sync (the simulator is more useful for that).

1 Like

Right i tried that. the issue is with the handy and intiface. Something about their bluetooth connection is weird and it doesnt correctly translate

I’m somewhat decent in C++ and Python. I wanted to make a script player game but i’d love to work on making an OFS alternative that gets maintained. The only problem is i’m completely lost on the video player part of the programming.

Try this if you haven’t yet.

Its maybe been about a year since i tried playing with the two. IIRC i did play around with various things. The closest it got was this stuttering mess. Kind of like it was only getting half of the distance and speed it was supposed to be at. Could be a clue as to the problem. I’ll go give your suggestion a try though.

I use stashapp and it has .funscript integration with wifi not bluetooth, as well as a csv functionality that bypasses using thehandy servers. I think referencing how they handled this would could provide the insight needed to solve the problem. I think we want to avoid using bluetooth if possible

How do i even get there. the output goes to buttplug then buttplug goes to OFS?

In Intiface:

  • Scan device and make sure Handy is connected.

In OFS:

  • “View” → Websocket API → Check.

In MFP:

  • Set input (at the top) to OFS. Connect.
  • Set output (at the bottom) to Buttplug.io. Connect. In “Device Map” select Handy. Change to “Polled Update”.
1 Like

Thats not true, it only changes from where the handy downloads the script, but each command still goes thru handy servers. There is no other way to locally send commands other than bluetooth. Sending thru handy servers would not work with OFS because you would see big delays on play/pause/seek.

1 Like

Add me to the list of people interested in either developing an alternative or figuring out how to fix and add features to OFS. I’m also just making my way through learncpp.com and haven’t really touched C++ seriously in like 20 years so the codebase is a bit intimidating. That said, most of the work has been done for us already, and it’s probably easier to learn C++ and develop an understanding of the currently used libraries than to port the whole thing to an other language or do a rewrite.

All this said, I’m wondering what the best language would be if one was starting a new scripter from scratch. I’ve chatted with several here who really, really want the device to work natively on mac/linux so that seems to eliminate quite a few options. I’ve also been very impressed with the work that @soritesparadox has done in javascript (I thought everyone used typescript these days). Personally, I’ve fooled around with python and some basic scripting, but the UI in python can be a bit dicey and distributing compiled code is always a bit of a pain.

In the event that a few of us decide to have a go at creating a new scripting program, I’m down to contribute what I can.

1 Like

would it be also released for linux ?

1 Like

pretty sad considering that C#/C++ is much more performance efficient than python, java, or scripting languages.
these days most devs use python and this contributes to the overall decline of software optimization / efficiency

1 Like

you can change it to csv mode

see:

It doesnt work with the change of the toggle. requires something else. I havent looked into it though. Maybe their description is incorrect. I was just going off what it says. I tried looking through their repo to see how to make it work and I was having trouble finding much conversation about anyone discussing its implementation

An OFS alternative written in JavaScript that is truly platform independent is something that has been sitting on my backlog for a while.

I just tend to have a lot on my plate so haven’t started it yet.

Curious what others might come up with too.

I’d say I probably won’t have time to start a project like that until middle / late summer.

1 Like

Lots of frontend tooling these days gets rewritten in Rust for performance.

If I understand this correctly it’s only about sending the script file to the Handy. Playback commands are, like Yoooi said, still sent through the Handy’s server.

1 Like