[Guide] Transforming a Stroking script into a Vibration script with simple tools

There are Vibrators that work with funscripts but they interpret scripts differently and there aren’t many scripts optimized for vibrators.
This guide will show an easy way to convert an existing script for stroking toys into one better suited for vibrators.

Time you will need:
20 minutes if you read the guide and follow along. 5-10 minutes once you got some practice.

Programs you will need:
Browser of your choice
a Text editor (can be standard Editor of your OS)
some Spreadsheet program like Excel or freeware alternative like Libre Calc

Step 1 - Parsing the Script
(if you want to follow along. I used the following script: https://discuss.eroscripts.com/t/complete-ch-dreamscape-3-ultimate-seduction/26378 )
1.1 Open the script you want to transform in your text editor
1.2 Select the text (Ctrl + A) and Copy (Ctrl + C)
1.3 Open up https://regexr.com in your browser
1.3 Paste the data in the middle box (Ctrl + V)
1.4 Paste The following line in the expression box

"(?:at|pos)":([0-9]+),"(?:at|pos)":([0-9]+)

1.5 In the Tools Box click on “List” (top right corner of Tools)
1.6 Depending on your Script (sometimes the “at” comes first and sometimes the “pos”):
write $1\n or $2\n to get the at or pos data (you need both)



1.7 open up a new Calc Table (Libre) or Excel Spreadsheet
1.8 Copy + Paste the results of Step 1.6 into the Spreadsheet

From this point on i will assume that you pasted the “at” data in the first coloumn and the “pos” data in the second coloumn

Step 2 - Transforming the Data
In your Spreadsheet

2.1 In 1st Cell C Coloumn type (or copy/paste)

	=ABS((B2-B1)/(A2-A1))

2.2 Hit Enter
2.3(Libre Calc only) hit Ctrl+Shit+End to select the whole row. Then hit Ctrl+D to apply the formula to all cells

2.4 In 1st Cell D Coloumn type (or copy/paste)

=(100*C1)/MAX(C:C)

2.5 Hit Enter
2.6(Libre Calc only) hit Ctrl+Shit+End to select the whole row. Then hit Ctrl+D to apply the formula to all cells

2.7 In 1st Cell E Coloumn type (or copy/paste)

 ="{""at"":"&A1&",""pos"":"&ROUND(D1;0)&"},"

2.8 Hit Enter
2.9(Libre Calc only) hit Ctrl+Shit+End to select the whole row. Then hit Ctrl+D to apply the formula to all cells

Step 3 - Export

3.1 Select the whole E Coloumn by clicking the E at the top
3.2 Copy (Ctrl+C)
3.3 Create a new funscript file (e.g. by creating a new txt file and renaming the .txt ending into .funscript)
3.4 Open the new file and type
{“actions”:[
3.5 Paste your data (Ctrl+V)
3.6 Delete the last Comma at the end of the file
3.7 At the end of the file append
]}
3.8 Done now use the script with your vibrator

Optional Ideas (no detailed steps here… just some ideas):

-Decrease the overall intensity by multiplying pos values with a number between 0 and 1
-Consider the start and end position of a stroke and make strokes at the head more intense. Multiply with the Sum of the original pos values for this and divide by 200 to avoid getting pos over 200
-Apply functions. Lots of possibilities. Some Example results: Low Intensity Values increased; High Intensity Values Decreased; both of the before

Example
The pictures in the guide use the data of the following script:
https://discuss.eroscripts.com/t/complete-ch-dreamscape-3-ultimate-seduction/26378
I would upload the spreadsheet but i cant upload it here and not sure if allowed to upload somewhere else and link here. Anyway heres the resulting funscript.
Final Result.funscript (364.4 KB)

P.S. If you are an app developer for funscripts (or someone else who would like to reuse the information of this guide) you are free to use the information in this guide without checking in with me.

template for faster workflow: [Guide] Transforming a Stroking script into a Vibration script with simple tools - #7 by stapapap

6 Likes

Thanks for putting this together! I just ordered the Lovense Hush vibrator which I’m looking forward to using with scripts so this guide will be really useful.

1 Like

It cool for this guide a try to make on but your fonction

=“{”“at”“:”&A1&“,”“pos”“:”&ROUND(D1;0)&“},” of step 2.7 dont work i have always error:501 or 509 on calc or other spreadsheet i don’t know why your works !

should we move this into #howto ?

1 Like

The forum editor changes the “”“” and i think that is causing the issue
copy the one down below and it should work
="{""at"":"&A10&",""pos"":"&ROUND(D10;0)&"},"

also fixed it in the guide. sorry for the mishap

@hugecat if you can move it please do. I couldn’t post it there because my rank isnt trusted.

1 Like

Small update:
I’ve created a template for the lazy :slight_smile:

To use: Execture Step 1 of the normal guide but paste the results in the template file instead.
Then Click the Cell C1 and use hotkey Ctrl+Alt+End to mark all the the unfilled Cells.
Hotkey Ctrl+D to fill. Then Export to funscript document like in Step 3
Should look like this(if using the CH3 funscript)
template

Info on the 3 Outputs:
E Coloumn: Normalized Output (Same as guide)
G Coloumn: Applied the Function 8*SQRT(E) to increase low values
I Coloumn: Increased E by 30% and making sure it doesn’t exceed 100

Choose the one you like or apply your own function :slight_smile:

1 Like

I can’t make the List work on RegEx for the script I am trying to convert.

https://discuss.eroscripts.com/t/handy-dildo-hero-how-to-become-infected-w-hardcore-anal-porn/40097

No results. I double checked the expression,

it seems like a problem with copy paste because the forum post adds some weird whitespace characters.
i put the expression in verbatim now and it seems to work.
if that doesn’t work you can try typing it manually

This should be real easy to automate completely with a simple python script. I’ll have to check out some scripts to see how consistent they are but in my head this is super simple. Once the parsing is sorted your optional extras are pretty trivial too.

I’m a bit rusty but some university gave me a piece of paper that said I’m a computer programmer a long time ago in a galaxy far far away day so I’m sure it’ll come back to me. Plus I’m a lazy bastard and future lazy me will thank myself for the effort. :laughing:

Will keep you posted.

1 Like

Thanks, with this one is working now.

On LibreOffice the
=(100*C1)/MAX(C:C)

Is not working… anyone now how to fix?

Which software are you guys using for playing the funscript on the vibrator? I’ve tried buttplug.io + Scriptplayer / MultiFunPlayer, but it’s vibrating all the time, and I barely notice the strokes.

1 Like

Im using https://xtoys.app/
You can use it with Chrome or as App on IOS/Android.
You can use funscripts by importing them as patterns or in Teases

2 Likes

I keep getting an out of memory error from the regexr when I input both the expression and the text from the sample. Am I doing something wrong?

Could anyone explain the logic to me?
First step is to get the slope but I didn’t understand what the second step does.

I’m asking since I want to create a JavaScript version on it (hopefully to include it in one of the web based players).

I’ve created PowerShell version.
Check it on link GitHub - nd4y/S2V-Converter

Second step logic:
Divide the difference in pos by the difference in at.

In other words, the more pos has changed during the time at , the stronger the vibration should be in this interval

hey loved your guide and it did allow me to convert a couple of funscripts to try with my edge 2. it’s somewhat accurate? given that is simply a conversion and not a straight up scripting for a vibration toy.

do you have any idea how would one script a vibration toy script from scratch?

Just out of curiosity, does XSqueezeMe do the same thing, or does it produce a different translation…?

XSqueezeMe

3 Likes

Works very nice whit Edge 2 using the Intensity option.