For what I am doing it requires stopping at certain times in an animation, for instance if you hit z (I am perfectly fine with the keybind portion, I already know how to do keybinds) then the animation would skip to a certain frame in the animation, hitting z again would send you back. Would I need to make multiple animations that are looped and stop and start them continuously in order to do this? Or can I have the person's animation stop at a certain point, then travel to another point in time in the animation and have it basically freeze in time again?
Well you would need to set a "Table" when someone presses z and store the TimePosition of the AnimationTrack
http://wiki.roblox.com/index.php?title=API:Class/AnimationTrack/TimePosition
then when pressed z again you'd need to get that table and set it to the saved position