Marvelous @Dunhou, thanks yet again!!

Here's the final script in case someone else has use for it:

from typing import Optional import c4d doc: c4d.documents.BaseDocument # The active document op: Optional[c4d.BaseObject] # The active object, None if unselected def main(): # Retrieves BaseTime of frame 5, 20 start = 0 end = 1 if c4d.CheckIsRunning(c4d.CHECKISRUNNING_ANIMATIONRUNNING) == True: c4d.CallCommand(12412) # Play Forwards # Loops through the frames for frame in range(start, end + 1): # Changes the time of the document doc.SetTime(c4d.BaseTime(frame, doc.GetFps())) # Updates timeline c4d.GeSyncMessage(c4d.EVMSG_TIMECHANGED) # Redraws the viewport and regenerate the cache object c4d.DrawViews(c4d.DRAWFLAGS_ONLY_ACTIVE_VIEW | c4d.DRAWFLAGS_NO_THREAD | c4d.DRAWFLAGS_STATICBREAK) # Pushes an update event to Cinema 4D c4d.EventAdd(c4d.EVENT_ANIMATE) if __name__ == '__main__': main()