I am getting this error, why?

The error reads - FirstPersonController.cs(5,14): error CS0101: The namespace global::' already contains a definition for FirstPersonController’

I only got this error after adding the crouching section at the bottom.

Here is my code -

using UnityEngine;
using System.Collections;

[RequireComponent (typeof(CharacterController))]
public class FirstPersonController {
	
	public float movementSpeed = 5.0f;
	public float mouseSensitivity = 5.0f;
	public float jumpSpeed = 20.0f;
	
	float verticalRotation = 0;
	public float upDownRange = 60.0f;
	
	float verticalVelocity = 0;
	
	CharacterController characterController;
	
	// Use this for initialization
	void Start () {
		Screen.lockCursor = true;
		characterController = GetComponent<CharacterController>();
	}
	
	// Update is called once per frame
	void Update () {
		// Rotation
		
		float rotLeftRight = Input.GetAxis("Mouse X") * mouseSensitivity;
		transform.Rotate(0, rotLeftRight, 0);

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

		// Movement
		
		float forwardSpeed = Input.GetAxis("Vertical") * movementSpeed;
		float sideSpeed = Input.GetAxis("Horizontal") * movementSpeed;
		
		verticalVelocity += Physics.gravity.y * Time.deltaTime;
		
		if( characterController.isGrounded && Input.GetButton("Jump") ) {
			verticalVelocity = jumpSpeed;
		}
		
		Vector3 speed = new Vector3( sideSpeed, verticalVelocity, forwardSpeed );
		
		speed = transform.rotation * speed;
		
		
		characterController.Move( speed * Time.deltaTime );


		// Crouching

		if( characterController.isGrounded && Input.GetButton("Left Shift") || Input.GetKey("right shift")){

			transform.Translate(Vector3.down * movementSpeed * Time.deltaTime);
	}

}

Did you, perchance, create a copy of the FirstPersonController.cs script before trying to add that crouching section? You can’t have two scripts in the same project that try to define a class with the same name. In other words, you need to check that you haven’t got two scripts anywhere that both begin with public class FirstPersonController {

your getting that error because your class names clashes with the other FirstPersonController script in the CharacterController package which you probably imported. in other words there is two FirstPersonController scripts in your game and the compiler doesn’t know which one is which.

you can either rename your script or delete the original FirstPersonController script from Standard Assets