What's the correct "syntax" in a funscript file?

So I have a few funscripts that when run through ScriptPlayer, don’t generate heatmaps. In the Generation panel I just get “failed” and no more info. I opened two of the files and they start/end differently. This is one:

{"version":"1.0","inverted":false,"range":90,"actions":[{"pos":99,"at":2172533}... etc

The second:
{"actions":[{"at":0,"pos":0},{"at":55495,"pos":100}... etc

The second one ends thus:

{"at":905579,"pos":0}],"inverted":false,"metadata":{"bookmarks":[],"chapters":[{"endTime":"00:12:19.504","name":"","startTime":"00:12:10.448"}],"creator":"Eimx","description":"","duration":905,"license":"","notes":"","performers":[],"script_url":"","tags":[],"title":"Annie- Face Fucking With Hard Gagging_LR_180","type":"basic","video_url":""},"range":100,"version":"1.0"}

But the first one just ends with a “pos” statement.

So my question is, is one of these wrong, are they both wrong, is there a “right” way to make ScriptPlayer generate the maps? For the majority of funscripts I have everything “just works” but I’ve got a few that don’t and I’d like to fix them.

I haven’t studied the exact format but funscript is based on json, which is a set of key:value pairs. In this case it doesn’t matter so much in what order they come as long as the necessary key:value are there.

The minimal set of key:value pairs can be seen here.

I can’t tell you why but it might be how the script was exported from OFS. I notice that if I use the ‘Quick Export’ option in OFS the heatmaps don’t show in XBVR but using the ‘Export All’ option shows the heatmaps like normal. Might not mean anything though.

Hmmm. Think there would be any use in trying to import them back into OFS then exporting them again?

If that is what the problem is that should fix it

1 Like

If you mean it ends with something like this:


Then that would likely be the problem. That’s still valid JSON, but it’s not a valid Funscript, as you have a position without a time. Whether ScriptPlayer should be quite so sensitive is another question.