How to reverse an animation?
This is a simple addon that using the scaling principle allowed by the NLA editor. 

Its features:


Auto-baking
Works on rigid bodies
Auto-alligns so it starts and ends exactly where the previous animation did


Installation:


Go to https://github.com/FreddieRa/BlenderAddons/blob/master/AutoReverse.py
Click on "Raw" on the top left
Then right click anywhere and click "Save page as"
Save it as "AutoReverse.py"
Go into Blender and go to "Addons" in user preferences and click "Install from file"
Navigate to where you saved the .py, and then tick the box when it appears in Blender


How to use it:

Simply press "space" and type "Auto Reverse"

There are two different things this can be used on, normal animations, and rigid-body simulations.

For animations:
You don't need to do anything except have at least two keyframes

For Rigid-body simulations: All you have to do is place a keyframe (of any type) at the start and end of the section you would like reversed. This is just so you can select part of the simulation, or all of it like in the picture. Keep in mind it will be baked and so the rigid-body nature will be removed, however this can be put back in afterwards.



Tips and Tricks;


Use "Cell Fracture" to split a cube, a forcefield modifier to blow it apart and then "Auto Reverse" to change it into an animation of all the pieces flying back together
It will reverse everything selected so you can use it on multiple objects at once


How it works:

This works on the principle of scaling a block of keyframes, but in this case by -1, in order to invert them. It is done around a central point so it's not shifted at all, and baked in order to produce a better result.

It automatically gets the first and last keyframe of any animation and then simply reverses it. It also works on objects that are already baked, meaning that you can repeat it on the same object, and just flip the animation backwards and forwards if you wish to.

So there you go, use it, mess around with it, it's all commented so you should be able to see what's going on. I welcome comments and suggested improvements.

This is my first addon and so I will have made mistakes but I just hope this saves people time and can be used for interesting projects!

-Freddie