First Person controller won't walk straight

i just made a new project, and put in a first person controller, but it will not walk straight. it just kind of strafes to the right while walking. Is there a fix for this, or am i stuck with this for my game?

Can you drop the code for your movement?
It sounds like you might be using a wrong vector.

My first guess without further info would be that you are doing something like:

Rigidbody rb = GameObject.GetComponent<RigidBody>();
rb.AddForce(new Vector3( 0, 0, 1 ) * speed);

where you would want something like:

Rigidbody rb = GameObject.GetComponent<RigidBody>();
rb.AddForce(transform.forward * speed);

Another option (a rather long shot one) is that something is wrong with Unity input configurations.
I’d recommend taking a look at the Input Manager (Edit->Project Settings->Input), and making sure everything is configured right (An example is available here:

This happened to me. I found that I had a Y rotation on the First Person Character. Probably because, during debugging I wanted to change the rotation of the FPS Controller, and changed the wrong thing.

The First Person Controller script is on the FPS Controller, not the First Person Character.