I created a rewind mechanic to implement 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 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 the 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.