fps script not working

I’m trying to Bild a simple caricature controller with sprinting, walking, crouching, and jumping,

but the sprinting and crouching don’t work, Please tell me wot I’m doing Ronge
.
.
.

using System.Collections;
using System.Collections.Generic;
using System.Collections.Specialized;
using System.Runtime.InteropServices;
using System.Security.Cryptography.X509Certificates;
using UnityEngine;

public class PlayerMovement : MonoBehaviour
{
    //Public Float: Speed
    public float WalkSpeed = 10f;
    public float RunSpeed = 16f;
    public float JumpSpeed = 8f;
    public float CrouchSpeed = 8f;

    //Public Float: Other
    public float JumpHeight = 3f;
    public float Gravity = -9.81f;
    public float GroundDistance = 0.4f;
    public float VScaleUp = 2f;
    public float VScaleDown = 1f;

    //Objects
    public Transform GroundCheck;
    public LayerMask GroundMask;
    public CharacterController Controller;

    Vector3 Velocity;
    bool IsGrounded;

    // Update Is Called Once Per Frame
    void Update()
    {
        //Speed
        float Speed = WalkSpeed;

        //VScale
        float VScale = VScaleUp;
        Controller.height = VScale;

        //Input
        float x = Input.GetAxis("Horizontal");
        float z = Input.GetAxis("Vertical");

        //Movement Based on Wear The Players Facing
        Vector3 move = transform.right * x + transform.forward * z;

        Controller.Move(move * Speed * Time.deltaTime);

        Controller.Move(Velocity * Time.deltaTime);

        //GroundCheck
        IsGrounded = Physics.CheckSphere(GroundCheck.position, 
        GroundDistance, GroundMask);

        Velocity.y += Gravity * Time.deltaTime;

        //IsGrounded
        if (IsGrounded && Velocity.y < 0)
        {
            Velocity.y =-2f;
        }

        //Sprint Function
        if (Input.GetButtonDown("Sprint") && IsGrounded)
        {
            print("Sprint!!!");
            Speed = RunSpeed;
        }

        //Jump Function
        if (Input.GetButtonDown("Jump") && IsGrounded)
        {
            Velocity.y = Mathf.Sqrt(JumpHeight * -2f * Gravity);
            print("jump!!!");
        }

        //Crouch Function
        if (Input.GetButtonDown("Crouch") && IsGrounded)
        {
            print("Crouch!!!");
            VScale = VScaleDown;
        }

        //Fire 1 if (Input.GetButtonDown("Fire 1")) {print("Pew!!!");}
        //Fire 2 if (Input.GetButtonDown("Fire 2")) {print("puew!!!");}
    }
}

you should test every line of your code which is about to running or whatever. do you have discord? I can help you in there. my username is Arisharr#2213