Ok so, I have the script and everything works amazingly, but theres one big problem. When the stamina bar gets to 0 and you're still holding shift instead of it going back up and the FOV reverting back it stays down and you stay in the runnning fov but walking. I want the FOV to go back to normal and the players Stamina to go up even if they're holding shift. Here's the code
--//Varaiables\\-- local camera = game.Workspace.CurrentCamera local TweeningService = game:GetService("TweenService") local UIS = game:GetService("UserInputService") local Bar = script.Parent:WaitForChild('Border'):WaitForChild("Bar") local player = game.Players.LocalPlayer local walk = 14 local run = 18 local power = 10 local sprinting = false repeat wait() until game.Players.LocalPlayer.Character local character = player.Character local runService = game:GetService('RunService') --//Tweens\\-- local FOVChanges = { FieldOfView = 90 } local TweenInformation = TweenInfo.new( 1, Enum.EasingStyle.Quint, Enum.EasingDirection.Out, 0, false, 0 ) local tween = TweeningService:Create(camera, TweenInformation, FOVChanges) local FOVChanges2 = { FieldOfView = 70 } local TweenInformation2 = TweenInfo.new( 1, Enum.EasingStyle.Quint, Enum.EasingDirection.Out, 0, false, 0 ) local tween2 = TweeningService:Create(camera, TweenInformation2, FOVChanges2) --//Shift Pressed and Let Go\\-- UIS.InputBegan:Connect(function(key, gameProcessed) if key.KeyCode == Enum.KeyCode.LeftShift and gameProcessed == false and character.Humanoid:GetState() == Enum.HumanoidStateType.RunningNoPhysics and character.Humanoid.MoveDirection.Magnitude > 0 then character.Humanoid.WalkSpeed = run sprinting = true while power > 0 and sprinting do power = power - .03 Bar.Size = UDim2.new(power / 10, 0, 1, 0) tween:Play() wait() if power <= 0 then character.Humanoid.WalkSpeed = walk tween2:Play() end end end end) UIS.InputEnded:Connect(function(key, gameProcessed) if key.KeyCode == Enum.KeyCode.LeftShift and gameProcessed == false then character.Humanoid.WalkSpeed = walk sprinting = false while power < 10 and not sprinting do power = power + .03 Bar.Size = UDim2.new(power / 10, 0, 1, 0) tween2:Play() wait() if power <= 0 then character.Humanoid.WalkSpeed = walk end end end end)