This script is supposed to let you fly when you use w,a,s,d and the analog stick on xbox. It works on PC but on xbox it doesn't let you move at all when the flying is enabled. Any help?
game.Players.LocalPlayer.Character:findFirstChild("Torso") game.Players.LocalPlayer.Character:findFirstChild("Humanoid") local mouse = game.Players.LocalPlayer:GetMouse() repeat wait() until mouse local plr = game.Players.LocalPlayer local torso = plr.Character.Torso local root = plr.Character:WaitForChild("HumanoidRootPart") local flying = false local ctrl = {f = 0, b = 0, l = 0, r = 0} local lastctrl = {f = 0, b = 0, l = 0, r = 0} local speed = 60 local userInput = game:GetService("UserInputService") local XboxPos = Vector3.new(0,0,0) local bg = Instance.new("BodyGyro") bg.P = 9e4 bg.maxTorque = Vector3.new(9e9, 9e9, 9e9) bg.cframe = torso.CFrame game.Players.LocalPlayer.Character.HumanoidRootPart.DescendantAdded:connect(function(dec) if dec.ClassName == "BodyGyro" and flying then wait() dec.Parent = game.Players.LocalPlayer repeat wait() until not flying if dec.Parent ~= nil then dec.Parent = game.Players.LocalPlayer.Character.HumanoidRootPart end end end) function Fly() local dec = game.Players.LocalPlayer.Character.HumanoidRootPart:FindFirstChild("BG") if dec then dec.Parent = game.Players.LocalPlayer coroutine.resume(coroutine.create(function() repeat wait() until not flying if dec.Parent ~= nil then dec.Parent = game.Players.LocalPlayer.Character.HumanoidRootPart end end)) end bg.Parent = torso local bv = Instance.new("BodyVelocity", torso) bv.velocity = Vector3.new(0,0,0) bv.maxForce = Vector3.new(9e9, 9e9, 9e9) repeat wait() plr.Character.Humanoid.PlatformStand = true if (ctrl.l + ctrl.r) ~= 0 or (ctrl.f + ctrl.b) ~= 0 then bv.velocity = ((game.Workspace.CurrentCamera.CoordinateFrame.lookVector * (ctrl.f+ctrl.b)) + ((game.Workspace.CurrentCamera.CoordinateFrame * CFrame.new(ctrl.l+ctrl.r,(ctrl.f+ctrl.b)*0,0).p) - game.Workspace.CurrentCamera.CoordinateFrame.p))*60 lastctrl = {f = ctrl.f, b = ctrl.b, l = ctrl.l, r = ctrl.r} elseif (ctrl.l + ctrl.r) == 0 and (ctrl.f + ctrl.b) == 0 and speed ~= 0 then bv.velocity = ((game.Workspace.CurrentCamera.CoordinateFrame.lookVector * (lastctrl.f+lastctrl.b)) + ((game.Workspace.CurrentCamera.CoordinateFrame * CFrame.new(lastctrl.l+lastctrl.r,(lastctrl.f+lastctrl.b)*0,0).p) - game.Workspace.CurrentCamera.CoordinateFrame.p))*0 else bv.velocity = Vector3.new(0,0,0) end bg.cframe = game.Workspace.CurrentCamera.CoordinateFrame until not flying ctrl = {f = 0, b = 0, l = 0, r = 0} lastctrl = {f = 0, b = 0, l = 0, r = 0} speed = 0 bg.Parent = nil bv:Destroy() plr.Character.Humanoid.PlatformStand = false end mouse.KeyDown:connect(function(key) if key:lower() == "w" then ctrl.f = 1 elseif key:lower() == "s" then ctrl.b = -1 elseif key:lower() == "a" then ctrl.l = -1 elseif key:lower() == "d" then ctrl.r = 1 end end) mouse.KeyUp:connect(function(key) if key:lower() == "w" then ctrl.f = 0 elseif key:lower() == "s" then ctrl.b = 0 elseif key:lower() == "a" then ctrl.l = 0 elseif key:lower() == "d" then ctrl.r = 0 end end) Fly() userInput.InputChanged:connect(function(input, processed) if input.UserInputType == Enum.UserInputType.Gamepad1 then -- Check left thumbstick and move character on change if input.KeyCode == Enum.KeyCode.Thumbstick1 then local inputPosX local inputPosY if input.Position.X > -.2 and input.Position.X < .2 then inputPosX = 0 else inputPosX = input.Position.X end if -input.Position.Y > -.2 and -input.Position.Y < .2 then inputPosY = 0 else inputPosY = -input.Position.Y end XboxPos = Vector3.new(inputPosX,0,inputPosY) end end end) game:GetService("UserInputService").InputBegan:connect(function(input,event) if event then return end if input.KeyCode == Enum.KeyCode.ButtonB or input.KeyCode == Enum.KeyCode.V then if (flying == false) then flying = true Fly() elseif (flying == true) then flying = false end end end) local noClipEvent = game.ReplicatedStorage:WaitForChild("NoClipEvent") local isNoClipActive = false game:GetService("UserInputService").InputBegan:connect(function(input, event) if not event then if input.KeyCode == Enum.KeyCode.ButtonB or input.KeyCode == Enum.KeyCode.V then if plr.Character and plr.Character.Parent then isNoClipActive = not isNoClipActive noClipEvent:FireServer(isNoClipActive) end end end end)