Q:

localStorage not working to "save" game

Good day! 
Complete JS noob here. I was following this tutorial: http://dhmstark.co.uk/incrementals-part-2.html regarding saving and loading the game. However, it is not working at all. I was hoping you fine folks might be able to easily tell me the issue with the code. There are no errors coming up on the browser console at all. But, when I re-load the page, it is not loading the "saved" data. I have tried putting the load() function within the js file itself, as well as including in the HTML header. I have also tried calling the load() function with a window.onload within the script itself. 
Please help. 
HTML
<!DOCTYPE HTML>
<head>
  <title> Game </title>
  <link rel="stylesheet" type="text/css" href="interface.css" />
  <script type="text/javascript">
        function load() {
            var savegame = JSON.parse(localStorage.getItem("save"));
            if (typeof savegame.clicks !== "undefined") clicks = savegame.clicks;
        }
        </script>
</head>
<body onload="load()">
<button onClick="increment(1)"> Click </button>
<span id="clicks"></span><br /><br />

<button onClick="buyThing()"> Buy Thing </button><br />
Things: <span id="things">0</span><br />
Next Thing Cost: <span id="thingCost">10</span>

 <script type="text/javascript" src="main.js"></script>
 </body>

JS
//click tracker
var clicks = 0;

function increment(number){
    clicks = clicks + number;
    document.getElementById("clicks").innerHTML = clicks;
};

//cursor
var things = 0;

function buyThing(){
    var thingCost = Math.floor(10 * Math.pow(1.1, things));     //works out cost of this cursor
    if(clicks >= thingCost){                                    //check that player has enough clicks to afford cursor
        things = things + 1;                                    //increase number of cursors
        clicks = clicks - thingCost;                            //remove clicks spent
        document.getElementById('things').innerHTML = things; //update the number of cursors for the user
        document.getElementById('clicks').innerHTML = clicks;   //update the number of clicks for the user
    };
    var nextCost = Math.floor(10 * Math.pow(1.1,things));       //works out the cost of the next cursor
    document.getElementById('thingCost').innerHTML = nextCost; //updates the cursor cost for user
};

var save = {
    clicks: clicks,
    things: things,
}

//loop
window.setInterval(function(){
    increment(things);
    localStorage.setItem("save",JSON.stringify(save));
}, 1000);

A:

Your save object will be declared and defined only once and never be changed, so you will be saving over and over again the first initial value of the progress, you should save a newly object on each interval:
window.setInterval(function(){
    increment(things);
    localStorage.setItem("save",JSON.stringify({clicks: clicks, things: things}));
}, 1000);

