MakeVibrationsExt for OFS

This can convert any part of a script from regular motion into a full vibrating section. With its settings it can handle diffirent intensities allowing you to finetune and add variety.


  • Can create several vibration patterns:
    • Regular vibrations
    • A transition from a vibration pattern to another
    • Convert an existing vibration section to a fade in/out
  • Can show the results directly using live viewing (optional)

:information_source: Note
This is an extended version of the MakeVibrations Lua Script for OFS plugin. While in essence the baseline is used to generate vibrations, the additional features allow a lot more control (and as requested, i made it a seperate thread).

For legacy reasons, it can be prefered to use the old behaviour. This is included in this script (you set both features to off). But you can also resolve to the other plugin

:memo: To use:

Select a frequency and amplitude, and the interface will show the vibration speed, this speed is for reference as actual results can vary slightly (like 1% on a flat line).

Now select any portion of the script, and then click on ‘Add vibrations’.


:file_folder: Plugin

Install this in the folder <user>\AppData\Roaming\OFS\OFS2_data\extensions
(the zip contains the plugin folder so you dont have to make that yourself).

Older versions
(outdated) v3: 4.9 KB file on MEGA
(outdated) v2: 2 KB file on MEGA
(v1 being the original version)

:framed_picture: Example outputs:

Initial state

APS: 25, Amplitude 10, Limit 600

APS: 60, Amplitude 10, Limit 600

:memo: Known issues
This script is only tested for OFS2

  • The speed limiter relies on a point on each spot at the APS speed. It does not calculate the speed on a per point basis.
  • It will disrupt already existing vibrating sections (it can amplify, negate or break them entirely). There is no detection for this.

The script slows down the more points there are in the script. There is no optimizing done here. Adding the points is fast though, but repeated usage for shorter sections can be a notable slowdown.

Great thanks to @jamanon for making the initial version



Thanks! I was using Add Actions and Toggle Positions from the “My Tool” extension. This will make things much easier. Much appreciated!

Once again, nice work on the extension! I’ll give it a go myself sometime soon hopefully

Im working on another feature that should also make it possible for vibrations to transition towards another patterns. This can be both in amplitude as in APS. While amplitude isnt as difficult as the other one, i decided to first check if i can at least get its points set. And so far this seems to work:

In this example the transitions are from 1-60 (and backward)

So soon there already should be another update :smiley:

(and yes, i do see that some nodes are too close together (midpoints arent handled properly yet)

Thanks for your hard work on this!!! :slight_smile:

Awsome ! Love it. Thanks to You and @jamanon.

Now i also managed to add the vibrations and fix some misplaced nodes. Im still checking for potential bugs that cause the script to crash, or other things that might have been broken (i might have disrupted the old script).

But anyway, here another example of what this new feature can do


here we go from 30amp,10aps to 5amp,50aps

This one however does not have a speed limiter in it (at least, not yet). Since i cant use the old code for this as point distances vary.

And the new version is now released with the ability to generate a transition between vibration sections.

As an additional feature in the transition patterns, you can now select which transition style it uses. (linear APS which tries to make the pattern linear in its APS, or linear ms which uses the delay between actions. the second one generaly giving a larger section of slower movement)

And as example script what i generated after running it a few times:

some_linear_waves.funscript (36.7 KB)

A few features that i think are missing to make this work a bit more optimal would be the ability to select the starting position (up or down). And a speed limiter. But for now as its at least usable i decided to release it

1 Like

And working on a new feature: Applying a fade in or fade out on existing vibrations.

This will try to negate any amplitude added by vibration, to make it smoothly end (or start) a vibrating section. It will try to also preserve the movement in this process.

Some examples:

Notice that the steep slope normaly is already limited by speed. In this case the script does recognise it, and not accidentaly cause it to exceed the speed it has now. The lower amp value in these sections will be used instead and then be compensated.

Im still testing it, since especialy near the end of the script it will break.

And another new version is released:


  • now allows 0 as amplitude values.
    • works for both the normal adding and transitions
  • now has a live viewing method
    • old handling is still available to get around errors, and performance issues
    • available for adding vibrations and transitions
  • now has fade in and out feature on existing vibrations
    • has no liveview (makes no sense here)
  • other fixes:
    • floating point handling (sometimes this caused plugin crashes, or incorrect points)
    • prevented some invalid number input options (like negative APS, or excessively high APS, which both could cause crashes)
    • APS now has more accurate handling (values used to get clipped causing some diffirent values to behave the same)

Live viewing works similar to how the Range Extender works. You select a number of points, and then either turn on the viewer, or you select some points after enabling and then move a slider or edit a value.
As this behaviour can sometimes be clumsy as there is no 0 point like the range extender, the old behaviour is still there when live viewing is turned off.
CTRL+Z does work properly on these! So the script wont generate a lot of changes. But the internal debug log will be spammed for now if developer mode is on.

1 Like

actually my problem is i don’t really like vibrations. Is there ani extension to get rid of them?

In OFS you should be able to get rid of them using the simplifier (which is quite effective, but sadly also rough). This obviously isnt optimal, but it at least works in a quite reliable way.

I can look into the fade in/out code to also make it capable to just remove the vibrations entirely, but even then, its actualy not going to become entirely smooth (on fast slopes, the midsections will still cause a minimal vibration effect (midpoints wont be removed by my script, it just guesses the midpoint based on the surrounding vibrations). But maybe the simplifier in OFS could at least handle such script better.

1 Like