Saving variables and changes to the map?

So I have a JS Script that has all the values for my game (I’m making a minecraft clone just to learn how to code) And I want to know if I can use C# to create a a saving and loading system that can work with javascript and if I can how to get started

My game is organized with Empty’s that have different block types within them
alt text

Like so and I want to be able to save if a gravel block or dirt or anything within one of those empties is destroyed

Here’s the variable script

   static var dirtblock : int = 0;
    static var grassblock : int = 0;
    static var dirtgrassblock : int = 0;
    static var WoodBlock : int = 0;
    static var Gravel : int = 0;
    static var Stone : int = 0;
    static var GoldBlocks : int = 0;
    static var CastleBlocks : int = 0;

    function OnGUI() {
    	GUI.Label (Rect (10, 10, 150, 20), ("Dirt Blocks: " + dirtblock));
    	GUI.Label (Rect (10, 25, 150, 20), ("Grass Blocks: " + grassblock));
    	GUI.Label (Rect (10, 40, 150, 20), ("Dirt Grass Blocks : " + dirtgrassblock));
    	GUI.Label (Rect (10, 55, 150, 20), ("Wood Blocks : " + WoodBlock));	
    	GUI.Label (Rect (10, 70, 150, 20), ("Gravel : " + Gravel));	
    	GUI.Label (Rect (10, 85, 150, 20), ("Stone : " + Stone));
    	GUI.Label (Rect (10, 100, 150, 20), ("Castle Blocks : " + CastleBlocks));
    	GUI.Label (Rect (10, 115, 150, 20), ("Gold Ore : " + GoldBlocks));
    			
    }

And the script used to mine

#pragma strict

function OnMouseDown()
{
  Destroy(gameObject);
  Mine.GoldBlocks += 1;
	//insert your count function here

}

How would I create a C# script (if possible) to save the var’s, player location, and updates to the map such as block destruction?

You can use SerializeHelper to save any kind of data.