So I was wondering if anybody could help me setup a script to save the level that the player is currently on and load it later, I’m not asking for somebody to write a script for me, but I am asking for a general direction on how I would write a script like this.
Thanks in advance to anyone that can help 
Take a look at PlayerPrefs in the manual. I know the question your are going to ask after that, and yes, you do have to do that for every variable you intend to keep. It actually isn’t that bad.
Ive done that kind of stuff this way:
In my game, levels are composed of lots of static objects: grounds, trees, mountains, rocks… and some dynamic objects: coins, diamonds, enemies…
As the static objects will never change, i gave an ID number only to dynamic objects. (using a component with a public int variable)
When the player saves the level, i go trough every object and store each found IDs to a list (save those to a file if you want to restore the level after the game closes).
When i need to restore the level state, i go trough every object on the scene and check if that object should still exists (if its present on the previously savel ID list), if not present, i just delete them…
that was all i needed to my game… if in your game the player will change position of other objects or more dynamic type of interactions, you will also need to store that data (transforms, etc… ), but the idea is the same… select what data you need to save and organize it in some structure…