Here's a function block you can use to make sure your animations have consistent timing despite scratch limitations. The function block animates the sprite it is in from a start frame to an end frame (not that the function can only be used once; it can be used multiple times in one sprite, however it should only be used once at a time in said sprite) with precise and consistent timing. It can be used in other sprites to run multiple animations at a time. (Note: "fps" as mentioned inside the project is when the next frame starts, not when it's processed.)