FPS movement with momentum

I’m trying to build a fps character with roller skates so I’m trying to apply momentum to his movement. So far, whenever I test the following code, He is able to look around but has no movement. this is the current code:

public float moveRate = 0.0f;
    public float minSpeed = 10.0f;
    public float maxSpeed = 20.0f;
    public float currentSpeed = 0.0f;

    public float mouseSens = 5.0f;
    float verRotate = 0;
    public float upDownRange = 60.0f;

    public CharacterController cc;
    

    // Use this for initialization
    void Start () {
        Screen.lockCursor = true;
        cc = GetComponent<CharacterController>();
    }
	
	// Update is called once per frame
	void FixedUpdate () {


        // Rotation
        float rotLeftRight = Input.GetAxis("Mouse X") * mouseSens;
        transform.Rotate(0, rotLeftRight, 0);

        verRotate -= Input.GetAxis("Mouse Y") * mouseSens;
        verRotate = Mathf.Clamp(verRotate, -upDownRange, upDownRange);
        Camera.main.transform.localRotation = Quaternion.Euler(verRotate, 0 , 0);

        // Movement

        if (Input.GetButtonDown("Vertical"))
        {
            currentSpeed = Mathf.Clamp01(currentSpeed + moveRate * Time.fixedDeltaTime);
            Debug.Log("Moving!");
        }
        else
        {
            currentSpeed = Mathf.Clamp01(currentSpeed - moveRate * Time.fixedDeltaTime);
        }

        Vector3 verVelocity = new Vector3(cc.velocity.x, -Mathf.Lerp(minSpeed, maxSpeed, currentSpeed), cc.velocity.z);
        cc.Move(verVelocity);


    }

Thank you for your help

Just modified the script to look like the example in the Script Reference for CharacterController.Move

FPSMovement.cs

using UnityEngine;

public class FPSMovement : MonoBehaviour
{
    public float speed = 6.0F;
    public float jumpSpeed = 8.0F;
    public float gravity = 20.0F;
    private Vector3 moveDirection = Vector3.zero;

    public float mouseSens = 5.0f;
    public float upDownRange = 60.0f;
    private float verRotate = 0;

    private CharacterController controller;

    void Awake()
    {
        Cursor.lockState = CursorLockMode.Locked;
        controller = GetComponent<CharacterController>();
    }

    void Update()
    {
        // Rotation

        float rotLeftRight = Input.GetAxis("Mouse X") * mouseSens;
        transform.Rotate(0, rotLeftRight, 0);

        verRotate -= Input.GetAxis("Mouse Y") * mouseSens;
        verRotate = Mathf.Clamp(verRotate, -upDownRange, upDownRange);
        Camera.main.transform.localRotation = Quaternion.Euler(verRotate, 0, 0);
    }

    void FixedUpdate()
    {
        if (controller.isGrounded)
        {
            moveDirection = new Vector3(Input.GetAxis("Horizontal"), 0, Input.GetAxis("Vertical"));
            moveDirection = transform.TransformDirection(moveDirection);
            moveDirection *= speed;
            if (Input.GetButton("Jump"))
                moveDirection.y = jumpSpeed;

        }
        moveDirection.y -= gravity * Time.fixedDeltaTime;
        controller.Move(moveDirection * Time.fixedDeltaTime);
    }
}