How would I be able to do this in a viewport?

Hello, recently I’ve been working on a small project that will allow the player to record themselves in game, and then play it back in a viewport, sort of like a video. But for some reason, the video’s instances (such as parts and camera) would become out of sync with each other. The way the video is handled is by cloning the parts that were in the beginning of the recording, then every 0.075 seconds, the scripts would create a cframe of the part’s cframe, however if the cframe doesn’t change, it will instead create a WaitTime value of 0.075 so that it won’t cost so much memory than it already does, but for some reason, newly added parts to the recording (which is handeled similarly by the waittime system. a recording is started, the a “timeuntilshown” value is made inside the script and goes up by 0.075 every 0.075 seconds, so that if a new part is added while recording, the video will know when to show the part.) are delayed or too early, i’ve tried using time() for this but still i get the same results, the camera is also delayed or very early for the video along with the character’s body parts not being synced with each other. I then saw this game called “Rec It” and it had basically a 1 to 1 replica of a recording to video, and i was wondering, how would i achieve this? i’m also using a local script to create the frames, but i’m also using a server script for parts (so i don’t have to send a remote event just to copy every instance.).