Im using the original fps controller script, first question, should i use that?

Second question, how would i implement a “Charge Jump” Into that script?
here is a script thanks to static_cast.

 private float jumpStrength = 0f;
 
 void OnGUI()
     {
     if(GUI.Button(YOURBUTTONSTUFFHERE))
         {
         jumpStrength += Time.deltaTime;
         if(jumpStrength >= 200)
              Jump();
         }
      else
         {
         if(jumpStrength > 0)
             Jump();
         }
     }
 void Jump()
     {
     jumpStrength = 0f;
     //JUMP CODE HERE
     }

Just to clarify, i dont want a button on screen, i just want to be able to charge my space bar.

Hi,
I am slightly guessing what you mean by “charge my space bar” but please see below example.
This code will increment jumpStrength whilst the space bar is held down and will call the Jump() method when the space bar is released.

    [SerializeField]
    private float jumpStrength = 0f;
    private float multiplier = 20f;

    // Update is called once per frame
    void Update()
    {
        if (Input.GetKey(KeyCode.Space))
        {
            jumpStrength += (Time.deltaTime * multiplier);
        }
        else if (Input.GetKeyUp(KeyCode.Space))
        {
            Jump();
        }
    }
    
    void Jump()
    {
        Debug.Log(jumpStrength);
        jumpStrength = 0f;
    }