PlayerPrefs doesn't apply the saved value to a variable

Im using PlayerPrefs to save the player data. The strange thing is, that the “AllMoney” is in the script2 the changed value with PlayerPrefs, but in script3 it still has the default value (0). The float “Money” is just a variable to store the money that you collect while you play. Are there any solutions for this? Ask me if you need more description.

Script1:

//Player's Stat's
[HideInInspector] public float
    //Things I want so save
    playerHp = 100f,
    MaxPlayerHp = 100f,
    playerDmg = 1f,
    critDmgMultiplier = 0.5f,
    critChance = 20f,
    money = 0f,
    AllMoney = 0f,
    highscore = 0f,
    
    MinPlayerHp = 0f,
    HpDecreasePerSec = 15f,
    HpBackOnHit = 0f,
    HpBackOnKill = 20f,
    score = 0f;

private void Awake()
{
    PlayerPrefs.GetFloat("playerHp", 100f);
    PlayerPrefs.GetFloat("playerDmg", 1f);
    PlayerPrefs.GetFloat("critDmgMultiplier", 0.5f);
    PlayerPrefs.GetFloat("critChance", 20f);
    PlayerPrefs.GetFloat("AllMoney", 0f);
    PlayerPrefs.GetFloat("highscore", 0f);
}

}

Script2(Where PlayerPrefs work):

private PlayerStats _playerStats;

private void Start()
{
    _playerStats = FindObjectOfType<PlayerStats>().GetComponent<PlayerStats>();
    
    PlayerPrefs.GetFloat("playerHp", 100f);
    PlayerPrefs.GetFloat("playerDmg", 1f);
    PlayerPrefs.GetFloat("critDmgMultiplier", 0.5f);
    PlayerPrefs.GetFloat("critChance", 20f);
    PlayerPrefs.GetFloat("AllMoney", 0f);
    PlayerPrefs.GetFloat("highscore", 0f);

}

public void PlayGame()
{
    SceneManager.LoadScene("Game");
    PlayerPrefs.SetFloat("AllMoney", _playerStats.AllMoney);
}

public void BackToMainMenu()
{
    _playerStats.AllMoney += _playerStats.money;
    _playerStats.money = 0;
    PlayerPrefs.SetFloat("AllMoney", _playerStats.AllMoney);
    PlayerPrefs.GetFloat("AllMoney", 0f);
    SceneManager.LoadScene("MainMenu");
    Debug.Log(PlayerPrefs.GetFloat("AllMoney", 0f));
    Debug.Log(_playerStats.AllMoney);
}

public void QuitGame()
{
    Application.Quit();
}

}

Script3(Where PlayerPrefs doesn’t work):

private PlayerStats _playerStats;
public Text moneyText;
public Scene currentScene;

private void Start()
{
    currentScene = SceneManager.GetActiveScene();
    _playerStats = FindObjectOfType<PlayerStats>().GetComponent<PlayerStats>();
    if (currentScene.name == "MainMenu")
    {
  
        moneyText.text = _playerStats.AllMoney + "$";
        Debug.Log( _playerStats.AllMoney);
    }
}

}

this is for sure and issue with execution order, script 2 being executed after script 3 so it doesnt affect, simply go to

Edit > Project Settings > Script Execution order