An object reference is required to access a non static member

    public static void NewCurrentWeapon (string newWeapon) {
        currentWeaponObject = PlayerScript.GetObjectFromArray (PlayerScript.weapons, newWeapon);
        currentWeaponScript = currentWeaponObject.GetComponent <Weapon> ();
    }

You can’t access non-static variables from a static method. Are currentWeaponObject and currentWeaponScript non-static?

Both are static.

    [HideInInspector]
    public static GameObject currentWeaponObject;

    [HideInInspector]
    public static Weapon currentWeaponScript;

And PlayerScript and GetObjectFromArray?

GetObjectFromArray wasn’t. Thanks man.