Help with making a ball rotate!

Hey I just need help with adjusting my script, I have it so it has a Transform.Addforce but that doesn't work, here my script is:

var speed = 3.0;
var rotateSpeed = 3.0;
var bullitPrefab:Transform;

function Update () {
    var controller : CharacterController = GetComponent(CharacterController);

    transform.Rotate(0, Input.GetAxis ("Horizontal") * rotateSpeed, 0);

    var forward = rigidbody.AddForce(Vector3.left *20);
    var curSpeed = speed * Input.GetAxis("Vertical");
    controller.SimpleMove(forward * curSpeed);

    if(Input.GetButtonDown("Jump")) {
        var bullit = Instantiate(bullitPrefab, 
        GameObject.Find("spawnPoint").transform.position, 
            Quaternion.identity);

    bullit.rigidbody.AddForce(transform.forward * 200);
    }
}
@script RequireComponent(CharacterController)

I have 2 errors that both revolve around the AddForce and Transform

why do you write code like this. just add a rigidbody and don't add a character controller. add a sphere collider to the ball and then use rigidbody.AddForce and AddTorque to add forces to your ball. AddForce is good for most situations. take a look at this ball movement and jump script

using UnityEngine;

  public class ball : MonoBehaviour

{
    RaycastHit h;
    public float jumpPower=10;
    public float maxspeed = 20; //max allowed speed
    public float speed=300; //acceleration
    public float ratio = 2; //ratio of x axis speed compared to z axis
    public static int coins;
    Vector3 v;

void Awake()
{
    Camera.mainCamera.transform.position = new Vector3(transform.position.x, transform.position.y+10 , transform.position.z - 3.5f);
    Camera.mainCamera.transform.LookAt(transform);
}

void LateUpdate()
{

    Camera.mainCamera.transform.position = new Vector3(transform.position.x,transform.position.y+6,transform.position.z-15);
    Camera.mainCamera.transform.LookAt(transform);
}

void FixedUpdate()
{
    v.x = transform.position.x;
    v.y = transform.position.y-0.56f;
    v.z = transform.position.z;
    if (Input.GetKeyDown (KeyCode.Space))
    {
        if (Physics.Linecast(transform.position, v, out h) == true)
        {
            rigidbody.AddForce(0, 150 + (rigidbody.velocity.magnitude*jumpPower), 0);
        }
    }
    if (rigidbody.velocity.magnitude < maxspeed) rigidbody.AddForce (Input.GetAxis ("Mouse X")*speed/ratio, 0, Input.GetAxis("Mouse Y")*speed);
}
void OnGUI()
{
    GUI.Label (new Rect (30,50,300,100),coins.ToString());

}

}