I tried recording just the input but i found if the frame rate changed things messed up, so i just record the position and if the character is touching the ground write to a file stream . then just play it back that file . it slight more complicated because you have to track how many things are reading the file before you close the file stream and each charter has to store file poiner so it know where its at in the file. but the source is available and feel free to rood around , you will find what you need in the MovmentController file.