Fun Expander 2.2

Functions

  1. I’ve some funscripts where the stroke length is too short for my personal preferences. So i made a small software tool to expand the points in a script to make it more intensive.
  • Max. Toppoint expansion: All top points will be raised for this value, if possible
  • Max. Bottompoint expansion: All bottom points will be lowered for this value, if possible
  • Toppoint Limit: Limits the expansion of the top points to this value
  • Bottompoint Limit: Limits the expansion of the bottom points to this value
  • Speed Limit: The expansion is not going over the defined speed limit
  1. There is also a function to adjust the delay between two points and set it to a defined minimum and a function where you can define the maximum speed in the script. The Launch has its limits, the delay between two points has at least to be 167ms or more and the speed can’t go over 500mm/s.
  • Min. Interval Length: Spreads the points to this value, if the delay between them is shorter
  • Speed Limit: Limits the speed of a stroke to this value, if it’s faster than that
  1. Convert a Cock Hero - Funscript from easy to hard mode (one complete stroke for every beat). Every point in the script will be set as bottompoint and new toppoints will be created.
  • Min. Speed: defines the time position of the toppoints (0mm/s = as slow as it gets).
  • Toppoints: defines the new position of all Toppoints
  • Bottompoints: defines the new position of all Bottompoints
  1. Fill the gaps in a funscript. You don’t need this function, if you use ScriptPlayer, but for SLR or Handyfeeling this could be helpful.
  • Fill gaps before first action: don’t forget to activate this checkbox if you want that

INSTRUCTIONS

Unzip the attached ZIP file with the executeable in it and make sure you have Microsoft .NET Framework 4.6.1 or higher installed on your PC.

ATTENTION: this tool is removing the “rawActions” witch contains the raw data if the scripter used ‘on the fly’ in JoyFunScripter. But the converted data will always be written in a new file, so you can store the original Funscript.

Download from Mega

It’s the same Version i’ve already posted on RTS

28 Likes

oh this is fantastic will definitely give this a try!

2 Likes

Excellent app @HeelsLover69! especially for SLR Interactive and mobile only users that wont more options in their script during playback

2 Likes

Looks great!
Would it be possible to add an Option to shorten Strokes that are longer than X-milliseconds?
I ask because there are really great Scripts out there, where the Kiiroo Onyx2 stops responding
because of some too long strokes (longer than about 800m I think).

1 Like

Can you explain that more detail? If there is a stroke for example 100 to 0 in 1500 ms, would it work if a new point is inserted at 50, 750 ms?

1 Like

That should do it!
Would be dope!

1 Like

Ok, i will give it a try

1 Like

Cool Thanks! :grinning: :+1:

1 Like

Just wanted to say I’ve been using this utility for several months now and it’s super useful. Thank you for creating this.

2 Likes

I get an Invalid start point error when trying to expand. Is there a fix for this?

Please try to save the funscript with ScriptPlayer (Script/Save as …) or with JoyFunScripter. If that is not working, please PM me the script, then i can debugg the software with that script.

1 Like

@ HeelsLover69

Quick question, does the top point and bottom point expansion get applied for the entire script or can you use it on specific timeframes?

1 Like

It’s for the entire script

1 Like

“I get an Invalid start point error when trying to expand. Is there a fix for this?”

I’ve observed this too. I think it happens with funscripts not made with JoyFunScripter (i.e. with blender). It appears JFS adds some “meta” info about the script like the start point that are used by this utility. Not sure if there’s an easy way to go back and add that to blender created scripts.

1 Like

Please try to save the funscript with ScriptPlayer (Script/Save as …) or with JoyFunScripter. If that is not working, please PM me the script, then i can debugg the software with that script.

1 Like

I’ve tried Script/Save As… with Scriptplayer and it did not seem to have any effect on the script. I don’t have a copy of JFS (and they’re getting harder to find), so I can’t speak to that.

I’ve attached an example. A Jasmine Grey - FIT18 script, which I believe scibbles made. (If memory serves scibbles uses blender).

Here is the beginning of the script after saving it with Scriptplayer followed by FIT18 - Jasmine Grey.funscript (183.7 KB) another script (presumably made with JFS). Notice the extra header information including the lastPosition element.

{"version":"1.0","inverted":false,"range":100,"actions":[{"pos":0,"at":0},{"pos":99,"at":500}


 {"version":"1.0","inverted":false,"range":90,"bookmark":0,"lastPosition":15042042027,"graphDuration":50000000,"speedRatio":0.24,"injectionSpeed":350,"injectionBias":0.0,"scriptingMode":1,"simulatorPresets":[{"name":"Simulator 1","fullRange":false,"direction":1,"rotation":-2.4658715521299825,"length":127.50251036942765,"width":127.91590296495927,"offset":"545.336927223719,535.633423180592,0,0","color":"Lime"}],"activeSimulator":0,"reductionTolerance":7.5,"reductionStretch":187500.0,"clips":[],"actions":[{"pos":100,"at":34938},{"pos":100,"at":258548}
2 Likes

It’s working with this funscript on my end without any problems. Also the second script looks good to me, this should work too. Please try to start Fun Expander with admin rights and check, if you have write access at the folder, where the funscripts are located.
Fun Expander is serarching for the string “actions”:[", after this string the positions and timemarks starts.

2 Likes

Will do, I started a folder with scripts that have the issue. Thanks!

Yes that was a resolution. Thank you.

1 Like

Hey HeelsLover69 !
First of all, thank you very much for this great tool that i’ve been enjoying for some time.
I have a question: I understand what speed limit means but i have no idea what min&max interval length stand for. I have a “Handy”. How do you think i should adjust those three parameters according to the limits of my toy?