Problem with player prefs

I am trying to display the HighScore in a separate scene after the game is over. But no matter what it always shows “HighScore 0” .
Here is the code: If anything else is needed please tell me.

using UnityEngine;
using System.Collections;

public class HighScore : MonoBehaviour {
	static public int score = 1000;
	// Use this for initialization
	
	void Awake(){
		//If the HighScore exist ,read it
		if (PlayerPrefs.HasKey ("HighScore")) {
			score = PlayerPrefs.GetInt("HighScore");

		}
		//Assign the high scor eto HighScore
		PlayerPrefs.SetInt ("HighScore", score);
		PlayerPrefs.Save();
	}

	
	// Update is called once per frame
	void Update () {
		GUIText gt = this.GetComponent<GUIText> ();
		gt.text = "High Score:" + score;
		//Update highscore in PlayerPrefs if neccessary
		if (score > PlayerPrefs.GetInt ("HighScore")) {
			PlayerPrefs.SetInt("HighScore",score);		
			PlayerPrefs.Save();
		}
	}
}

hello @lionelscotty , i think you have following problem

 using UnityEngine;
 using System.Collections;
 
 public class HighScore : MonoBehaviour {
     static public int score = 1000; // Here you set score //score = 1000;
     // Use this for initialization
 
 void Awake(){
     //If the HighScore exist ,read it
     if (PlayerPrefs.HasKey ("HighScore")) {  //If "HighScore" is present than set score = HighScore. it is true so 
         score = PlayerPrefs.GetInt("HighScore");// score = 0; (because default is 0)

     }
     //Assign the high scor eto HighScore
     PlayerPrefs.SetInt ("HighScore", score);// score = 0; (highscore is set to 0)
     PlayerPrefs.Save();
 }
...
 }

if you want to use the variable in next scene you can make that variable static and access it in next scene by HighScore.score
your code seems to be right , try and remove PlayerPrefs.save(); as I dont think its required and try debugging it .