I created this rewind mechanic that can be implemented in a small game. I choose to create a platformer game to show this mechanic. In the game, environment puzzles require you to use the rewind mechanic to go through.
The code can be transferred to other projects very easily since the system uses tags to determine which object to rewind. It can store the necessary information to rewind; such as transform, scale, and rotation. Also if necessary the velocity information is stored as well. This tool is optimized to store a limited amount of frames while getting a smooth visual representation of the rewind.