Speed Running While In Build But Not in editor?

hey guys i have a wierd ass problem when i run my code in the editor my player walks normal speed but when i build it in unity 4 (pro) i run hyperspeed :confused:

here is the controller script:

/// <summary>
/// FPS input controller.
/// Pierce Thompson
/// 2012
/// Created For Radiation
/// Version 1.0
/// First Version Of Script
/// </summary>

using UnityEngine;
using System.Collections;

public class FPSInputController : MonoBehaviour
{
	#region Input Variables(float, Vector3, bool, Object)
	//Floats
	public float Speed = 3.5F;
	public float SprintSpeed = 6.0F;
	public float JumpSpeed = 100.0F;
	public float Gravity = 90.0F;
	public float SprintInitTime = 0.2F;
	public float SprintEndTime = 0.2F;
	//GameObjects
	public GameObject Gun;
	public GameObject ShootPoint;
	//Vector3's
	private Vector3 MoveDirection = Vector3.zero;
	//Bool's
	public bool Grounded = false;
	public bool IsSprinting = false;
	public bool InitiatedSprint = false;
	public bool Falling = false;
	#endregion
	void Start()
	{
		Gun = GameObject.FindGameObjectWithTag("Gun");
		ShootPoint = GameObject.FindGameObjectWithTag("ShootPoint");
	}
	
	#region Update Function
	void Update()
	{
		#region Grounded
		if(Grounded)
		{		
			if(!IsSprinting)
			{
				MoveDirection = new Vector3(Input.GetAxis("Horizontal"), 0, Input.GetAxis("Vertical"));
				MoveDirection = transform.TransformDirection(MoveDirection);
				MoveDirection *= Speed;
			}
			
		}
		
			if(IsSprinting  !ShootPoint.GetComponent<RayShoot>().IsAiming)
			{
				MoveDirection = new Vector3(Input.GetAxis("Horizontal"), 0, Input.GetAxis("Vertical"));
				MoveDirection = transform.TransformDirection(MoveDirection);
				MoveDirection *= SprintSpeed;	
			}			
			
			if(!ShootPoint.GetComponent<RayShoot>().IsReloading  !ShootPoint.GetComponent<RayShoot>().IsAiming)
			{
				if(Input.GetKeyDown(KeyCode.LeftShift) !InitiatedSprint)
				{
					Gun.animation.Play("StartSprint");
					StartCoroutine(SprintInit());
				}
				
				if(Input.GetKey (KeyCode.LeftShift)  InitiatedSprint)
				{
					Gun.animation.Play("Sprint");	
				}
				
				if(Input.GetKeyUp(KeyCode.LeftShift))
				{
					Gun.animation.Play("StopSprint");
					StartCoroutine(SprintEnd());
				}
			}
		#endregion
		
		#region Not Grounded		
		if(Grounded  !IsSprinting)
		{
			if(Input.GetKeyDown(KeyCode.Space))
			{
				StartCoroutine(SprintEnd());
				Gun.animation.Play("StopSprint");
				
				if(!ShootPoint.GetComponent<RayShoot>().IsAiming)
				{
					MoveDirection.y = JumpSpeed;
					Gun.animation.Play("Jump");
				}
				
				if(ShootPoint.GetComponent<RayShoot>().IsAiming)
				{
					MoveDirection.y = JumpSpeed;
					Gun.animation.Play("JumpWhileAimed");	
				}
			}
		}
		
		#endregion
		
		#region Gravity
		MoveDirection.y -= Gravity * Time.deltaTime;
		#endregion
		
		#region Character Controller
		var Controller = GetComponent<CharacterController>();
		var flags = Controller.Move(MoveDirection * Time.deltaTime);
		Grounded = (flags  CollisionFlags.CollidedBelow) !=0;
		#endregion
	}
	#endregion
	
	IEnumerator SprintInit()
	{
		yield return new WaitForSeconds(SprintInitTime);
		InitiatedSprint = true;
		IsSprinting = true;
	}
	
	IEnumerator SprintEnd()
	{
		yield return new WaitForSeconds(SprintEndTime);
		InitiatedSprint = false;
		IsSprinting = false;
	}
}

And The Shooting Script

/// <summary>
/// Ray shoot.
/// Pierce Thompson
/// 2012
/// Created For Radiation
/// Version 1.0
/// First Version Of Script
/// </summary

using UnityEngine;
using System.Collections;

public class RayShoot : MonoBehaviour
{
	public float Range = 1000;
	public float Force = 500;
	public float ReloadTime = 3.3F;
	public float ShootTimer = 0.0F;
	public float ShootCooler = 0.8F;
	
	public int Clips = 60;
	public int BulletsPC = 40;
	public int BulletsL = 0;
	
	public GameObject Gun;
	public GameObject Player;
	
	public bool IsAiming = false;
	public bool IsReloading = false;
	public bool IsShooting = false;
	
	public AudioClip ShootAudio;
	public AudioClip ReloadAudio;
	
	// Use this for initialization
	void Start()
	{
		Gun = GameObject.FindGameObjectWithTag("Gun");
		Player = GameObject.FindGameObjectWithTag("Player");
		BulletsL = BulletsPC;
	}
	
	// Update is called once per frame
	void Update()
	{
		if(ShootTimer > 0)
		{
			ShootTimer -= Time.deltaTime;
		}
		
		if(ShootTimer < 0)
		{
			ShootTimer = 0;
		}
		
		if(Input.GetButton("Fire1")  !IsReloading  !Player.GetComponent<FPSInputController>().IsSprinting)
		{
			if(ShootTimer == 0)
			{
				Shoot();
				ShootTimer = ShootCooler;
			}
		}
			
		if(Input.GetKeyDown(KeyCode.R)  !IsAiming  !IsReloading  !Player.GetComponent<FPSInputController>().IsSprinting)
		{
			Reload();
		}
		
		if(Input.GetButtonDown("Fire2")  !IsReloading  !IsAiming  !Player.GetComponent<FPSInputController>().IsSprinting)
		{
			IsAiming = true;
			Gun.animation.Play("AimIn");
			Camera.main.fieldOfView = 40;
		}
		
		if(Input.GetButtonUp("Fire2")   !IsReloading  IsAiming  !Player.GetComponent<FPSInputController>().IsSprinting)
		{
			Gun.animation.Play("AimOut");
			IsAiming = false;
			Camera.main.fieldOfView = 60;
		}
	}
	
	void Shoot()
	{
		RaycastHit Hit;
		
		IsShooting = true;
				
		Vector3 DirectionRay = transform.TransformDirection(Vector3.forward);
		
		Debug.DrawRay(transform.position, DirectionRay * Range, Color.magenta);
		
		if(!IsAiming)
		{
			Gun.animation["Fire"].speed = 1.5F;
			Gun.animation.Play("Fire");
		}
		
		if(IsAiming)
		{
			Gun.animation["FireInAim"].speed = 2.0F;
			Gun.animation.Play("FireInAim");
		}
		
		PlayShootAudio();
		
		if(Physics.Raycast(transform.position, DirectionRay, out Hit, Range))
		{
			if(Hit.rigidbody)
			{
				Hit.rigidbody.AddForceAtPosition(DirectionRay * Force, Hit.point);
			}
		}
		
		BulletsL--;
		
		if(BulletsL < 0)
		{
			BulletsL = 0;
		}
		
		if(BulletsL == 0  !IsAiming)
		{
			Reload();
		}
		
		IsShooting = false;	
	}
	
	void Reload()
	{
		if(Clips > 0)
		{
			IsReloading = true;
		 	Gun.animation["Reload"].speed = 0.6F;
			Gun.animation.Play("Reload");
			PlayReloadAudio();
			StartCoroutine(ReloadTimer());
		}	
	}
	
	IEnumerator ReloadTimer()
	{
		yield return new WaitForSeconds(ReloadTime);
		BulletsL = BulletsPC;
		Clips--;
		IsReloading = false;	
	}
	
	void PlayShootAudio()
	{
		audio.PlayOneShot(ShootAudio);	
	}
	
	void PlayReloadAudio()
	{
		audio.PlayOneShot(ReloadAudio);
	}
}

I just donโ€™t know why any help??? its wierd

Bumpy

Iโ€™m not a huge programmer but I think you might need to add a Time.deltaTime to your movement.

Something like MoveDirection *= Speed * Time.deltaTime;

That would take into consideration your fps if it is limited to 60 in the editor but not in the build.