Hi guys. I need some help with recoil . I've managed to script shooting but the problem is my when shooting rifle gun doesn't get back to original position , and i can't recoil when shooting automatically.I don't know how to describe problem best.So i have variable recoil and when i shoot it should increase but when not decrease but it doesn't. Can anybody help. And go easy on me i'm still new to scripting. Code (csharp): //Shooting var BulletPrefab:Transform; var force : float = 2000; //Rifle var ammo : int = 100; var FireRate = 0.1; var Rifle = true; var CanFire = true; //Recoil var recoilMod : Transform; var weapon : GameObject; var maxRecoil_x : float = -20; var recoilSpeed : float = 10; var recoil : float = 0.0; function Update() { if (Rifle == false ) { if(Input.GetButtonDown("Fire1")) { if (ammo >0) { recoil+= 0.1; Fire(); } } } else { if(Input.GetButton("Fire1")) { if (ammo >0) { recoil += 0.1; Fire(); } } } } function Fire () { if(recoil > 0) { var maxRecoil = Quaternion.Euler (maxRecoil_x, 0, 0); recoilMod.rotation = Quaternion.Slerp(recoilMod.rotation, maxRecoil, Time.deltaTime * recoilSpeed); weapon.transform.localEulerAngles.x = recoilMod.localEulerAngles.x; recoil -= Time.deltaTime * 5; } else { recoil = 0; var minRecoil = Quaternion.Euler (0, 0, 0); recoilMod.rotation = Quaternion.Slerp(recoilMod.rotation, minRecoil,Time.deltaTime * recoilSpeed / 2); weapon.transform.localEulerAngles.x = recoilMod.localEulerAngles.x; } if(CanFire == true) { var bullet = Instantiate(BulletPrefab, GameObject.Find("spawnPoint").transform.position, GameObject.Find("Obj").transform.rotation); bullet.rigidbody.AddForce(bullet.transform.forward * force); CanFire = false; yield WaitForSeconds (FireRate); CanFire = true; ammo -= 1; } } Thanx -3DK