Rewinding using time scale

Hello, I am curious if there is a way to rewind using timescale. If there isn’t then how would I rewind a game? I thought it was a pretty cool function in torki tori and in skate 3. Along with the fact it would be cool in my stunt car game to re-watch some cool stunts you just did. So here is the script and I was hoping if someone could help me…

function OnGUI () {
    GUI.Box (Rect (10,10,210,90), "Loader Menu");

    if (GUI.Button (Rect (20,40,80,20), "Random")) {
        Application.LoadLevel (1);
    }

    if (GUI.Button (Rect (20,80,80,20), "Race")) {
        Application.LoadLevel (2);
    }
    
        // Make the second button.
    if (GUI.Button (Rect (20,110,80,20), "Rewind")) {
        Time.timeScale -= 2.0;
    }
    
        // Make the second button.
    if (GUI.Button (Rect (20,140,80,20), "Play")) {
        Time.timeScale = 1.0;
    }
        
        // Make the second button.
    if (GUI.Button (Rect (20,170,80,20), "Pause")) {
        Time.timeScale = 0.0;
    }
}

It says timescale can only be in between 0-100…
please help

Timescale exists to let you speed up and slow down, but time always moves forward during gameplay. Unity doesn’t automatically keep track of every activity that’s been occurring, so if you want to reverse time, you’ll have to do it yourself.

That said, this topic has come up several times before, so I would recommend looking here for ideas first.

There, the ideas is recording and playing back movements (mainly). In your case, you would record the data and then start playing them in reverse order in order to simulate time flowing backwards and actions being undone.