How do i fix a script that i made in 30 fps?

I scripted an entire 1 hour VR scene and i’m pretty sure i did it in 30 FPS using the JoyFunScripter from the scripting tutorial post. Now when i live test it in VR the entire scene feels out of sync.

Is there an easy fix for this or do i need to go over the entire video again in 60 FPS to fix it?

1 Like

30fps is actually 29.97 and 60fps is actually 59.94. Some software is better at converting from one to the other, but it almost always causes some issues with external things that rely on specific frames (like scripts).

Before you do anything, save your current script as a backup before modifying it.

Try this:

  • Select all the points (ctrl + a)
  • Move them all three times to the left (shift + arrow key left). If this still looks off, try 2 frames, 4 frames, etc until it lines up.
  • Double check your script. The beginning may be in sync and then fall off later. If that’s the case, select all points to the right of where if falls out of sync and then repeat step 2.
  • Repeat until the whole script is lined up.

This process is a pain, but it shouldn’t take more than an hour to fix, potentially as little as 5-10 minutes.

1 Like

Awesome, thank you! i’ll try that.

1 Like

If your script is synchronized to the 30fps version of the video (in JFS) but not synchronized to the 59.94fps video, if you are willing, you could also try using FunscriptToolbox.

  1. Download FunscriptToolbox here
  2. Unzip the archive somewhere (for example, C:\Tools\FunscriptToolbox).
  3. Double-click on --FSTB-Installation.bat.
  4. Go into the folder “FSTB-VerifyDownloadedScripts” and double-click on --FSTB-GenericCmd.1.1.bat. This will open a command line where you can use the tool.
  5. Type this:
FunscriptToolbox as.cfs -i PathToYour30fpsVideoFile.funscript -o PathToYour59fpsVideoFile.mp4

Note: the tool assumes that a file PathToYour30fpsVideoFile.mp4 also exists.

  1. This will compare the audio and create a synchronized script for the destination file.

If it’s really a problem of 30fps vs 59.94fps with some frame lost or added, it should output a ‘stair’ of offset: -0.05… -0.06 a bit later… -0.07 a bit later, etc.
I’ll admit that I’m really curious to see if it would work. It should but I never found an example to try it on.


Thank you for taking the time to post that. i might need to try that in the future.

I just finished using the method Mr. Poop recommended and that seems to have massively improved the timing of the script. Still not perfect, but much improved.

1 Like

The ScaleTimeStamps lua script by Lucifie can scale the entire script accurately:

You need version 1.4 or earlier of OFS to use this as they changed to an extension system later. Make sure you have a point at 0 time so it scales from the beginning.


This topic was automatically closed 3 days after the last reply. New replies are no longer allowed.