Funscript.io - a website for playing, modifying and generating funscripts!

Is it me or it doesn’t work for handy? I connect using the code but it doesn’t play back.

Same thing, this is on mobile so I’m not sure if it would be different on a desktop.

Can upload to list scripts, but can’t add them to any of the options to modify or play.

[edit] Can confirm it is functional for desktop from what I can tell.

@defucilis the work that goes into this :pray:t2:

Are there plans to add a bar or an on-screen script positions like in the original non beta version? I like to test and see how the script looks before connecting my Handy to see if I want to use it.
I sometimes use the orignal non beta version for that, but there is no audio control for some reason and some videos are loud AF.

Anyone know if i can add like two actions before the the first action in a script, (at a time before and relative to first action).
The purpose would be to set my own starting position and a slow first movement, to always have a known safe way to enter and begin scripts.

I guess i could do it manually with notepad and a calculator, but would be nice to do it more elegantly with a program.

Yeah that’s been on my list for ages. I actually do have some concrete plans to revisit this project, fix some bugs and add some missing features (for secret reasons that I can’t talk about yet :wink: )

@Seraphine yep, you could create a new custom modifier and use this code (replace the array of extraActions with whatever you like)

actions => {
    const extraActions = [
        { pos: 0, at: 0 },
        { pos: 100, at: 1000 },
    ];
    const offsetTime = extraActions.slice(-1)[0].at;

    const newActions = [];
    for(let i = 0; i < actions.length + extraActions.length; i++) {
        if(i < extraActions.length) {
            newActions.push(extraActions[i]);
            continue;
        }
        const offsetAction = { ...actions[i - extraActions.length] };
        offsetAction.at += offsetTime;
        newActions.push(offsetAction);
    }
    return newActions;
}

wow thank you for making that! unfortunately it don’t fully do what i ment.

i now managed to change the code you made into something that creates what i wanted

actions => {

const extraActions = [
    { pos: 100, at: 2000},
    { pos: 100, at: -4000 },
    { pos: 50, at: -1000},
];

const newActions = [];
for(let i = 0; i < actions.length + extraActions.length; i++) {
    if(i < extraActions.length) {

        if(extraActions[i].at >= 0){
            newActions.push(extraActions[i]);
        }
        else{
            extraActions[i].at = actions[0].at + extraActions[i].at;
            newActions.push(extraActions[i]);
        }

        continue;
    }

    newActions.push(actions[i - extraActions.length]);
}
return newActions;

}

Ah yeah that makes sense, glad you were able to use it as a starting point :smiley:

One wish I have for the List Scripts page is to display the minimum length field right away. Currently it only appears after at least 1 heatmap was generated.

Sometimes I want to compare different scripts for a PMV shorter than 5mins, but after dragging and dropping them, nothing is displayed (and the minimum length input field stays absent, too). To be able to change the minimum length from the defaut 5mins to e.g. 1min, I need to drag&drop a longer script first, which then makes the minimum length field display.

Can javascript be used to remove actions which are too close together (interval is too fast)? I want an automatic way to remove actions too fast for Handy. I’d like the result to contain actions which are all at least 0.06 seconds apart.

Start with this:
Capture

Result: