Every single time I use anything with BodyForce or BodyVelocity (Filtering Enabled) there is ALWAYS the same type of bug. The Output and Console says there is no errors.
Right now I'm making flying
Local Script in Player Backpack
workspace.General.Cooldown.Create:FireServer() workspace.General.ClickDetector.Clicker:FireServer() UserInput = game:GetService("UserInputService") workspace:WaitForChild(game.Players.LocalPlayer.Name) UserInput.InputBegan:connect(function(Input) if Input.KeyCode == Enum.KeyCode.LeftAlt or Input.KeyCode == Enum.KeyCode.RightAlt then workspace.General.Fly.Up:FireServer() end end) UserInput.InputEnded:connect(function(Input) if Input.KeyCode == Enum.KeyCode.LeftAlt or Input.KeyCode == Enum.KeyCode.RightAlt then workspace.General.Fly.Stop:FireServer() end end) Mouse = game.Players.LocalPlayer:GetMouse() Mouse.Button1Down:connect(function() if game.Players.LocalPlayer.Character.UpperTorso:FindFirstChild("Fly") ~= nil then workspace.General.Fly.Move:FireServer() end end) Mouse.Button1Up:connect(function() if game.Players.LocalPlayer.Character.UpperTorso:FindFirstChild("Fly") ~= nil then workspace.General.Fly.Stop:FireServer() end end) UserInput.InputBegan:connect(function(Input) if Input.KeyCode == Enum.KeyCode.LeftShift or Input.KeyCode == Enum.KeyCode.RightShift then workspace.General.Fly.Fast:FireServer() end end) UserInput.InputEnded:connect(function(Input) if Input.KeyCode == Enum.KeyCode.LeftShift or Input.KeyCode == Enum.KeyCode.RightShift then workspace.General.Fly.Slow:FireServer() end end) UserInput.InputBegan:connect(function(Input) if game.Players.LocalPlayer.Character.UpperTorso:FindFirstChild("Fly") ~= nil then if Input.KeyCode == Enum.KeyCode.Space then workspace.General.Fly.Down:FireServer() end end end) UserInput.InputEnded:connect(function(Input) if Input.KeyCode == Enum.KeyCode.Space then if game.Players.LocalPlayer.Character.UpperTorso:FindFirstChild("Fly") ~= nil then workspace.General.Fly.Stop:FireServer() end end end) game.Players.LocalPlayer.Character.UpperTorso.ChildRemoved:connect(function(Part) if Part.Name == "Fly" then workspace.General.Fly.StopScript.Stop:FireServer() end end) function FloatU() workspace.General.Fly.Up:FireServer() end function Stop() if game.Players.LocalPlayer.Character.UpperTorso:FindFirstChild("Fly") ~= nil then workspace.General.Fly.Stop:FireServer() end end function FloatD() if game.Players.LocalPlayer.Character.UpperTorso:FindFirstChild("Fly") ~= nil then workspace.General.Fly.Down:FireServer() end end ContextAction = game:GetService("ContextActionService") local FloatUp = ContextAction:BindAction("FloatUp", FloatU, true) ContextAction:SetPosition("FloatUp", UDim2.new(1, -50, 0.1, -100)) ContextAction:SetImage("FloatUp", "rbxassetid://1533231301") local FloatStop = ContextAction:BindAction("FloatStop", Stop, true) ContextAction:SetPosition("FloatStop", UDim2.new(1, -50, 0.1, -50)) ContextAction:SetImage("FloatStop", "rbxgameasset://Images/Stop") local FloatDown = ContextAction:BindAction("FloatDown", FloatD, true) ContextAction:SetPosition("FloatDown", UDim2.new(1, -50, 0.1, 0)) ContextAction:SetImage("FloatDown", "rbxassetid://1535168213")
Script in Workspace > General named Fly:
--[==[ ({ Float Up } ) ]==]-- local Speed = 5 local Idle = false script.Up.OnServerEvent:connect(function(Client) local Char = Client.Character if Client.Backpack.Element.Value == "Fire" then if Char.UpperTorso:FindFirstChild("Fire") == nil then local Flame = workspace.Fire.FireBall["Fire Volley"].Fire:Clone() Flame.Parent = Char.UpperTorso end end for i, v in pairs(Char.Humanoid:GetPlayingAnimationTracks()) do v:Stop() end Char.Animate.Disabled = true local Anim = Char.Humanoid:LoadAnimation(script.UpAnim) Anim:Play() Idle = true if not Char.UpperTorso:FindFirstChild("Fly") then local Fly = Instance.new("BodyVelocity", Char.UpperTorso) Fly.Name = "Fly" Fly.MaxForce = Vector3.new(math.huge, math.huge, math.huge) Fly.Velocity = Vector3.new(0, Speed, 0) elseif Char.UpperTorso:FindFirstChild("Fly") then local Fly = Char.UpperTorso.Fly Fly.Velocity = Vector3.new(0, Speed, 0) end end) --[==[ ({ Down }) ]==]-- script.Down.OnServerEvent:connect(function(Client) local Char = Client.Character for i, v in pairs(Char.Humanoid:GetPlayingAnimationTracks()) do v:Stop() v:remove() end Char.Animate.Disabled = true local Anim = Char.Humanoid:LoadAnimation(script.DownAnim) Anim:Play() Idle = true if Char.UpperTorso:FindFirstChild("Fly") then local Fly = Char.UpperTorso.Fly Fly.Velocity = Vector3.new(0, Speed * -10, 0) for i, v in ipairs(Char:GetChildren()) do if v:IsA("MeshPart") then v.Touched:connect(function(hit) Fly:Remove() if Char.UpperTorso:FindFirstChild("Fire") ~= nil then Char.UpperTorso.Fire.Enabled = false game:GetService("Debris"):AddItem(Char.UpperTorso.Fire, 5) end Char.Animate.Disabled = false end) end end end end) --[==[ ({ Move }) ]==]-- script.Move.OnServerEvent:connect(function(Client) Idle = false local Char = Client.Character for i, v in pairs(Char.Humanoid:GetPlayingAnimationTracks()) do v:Stop() v:remove() end Char.Animate.Disabled = true local Anim = Char.Humanoid:LoadAnimation(script.MoveAnim) Anim:Play() local Mouse = Client:GetMouse() Char.HumanoidRootPart.CFrame = CFrame.new(Char.HumanoidRootPart.Position, Mouse.Hit.p) Char.UpperTorso.Fly.Velocity = Char.HumanoidRootPart.CFrame.lookVector * Speed * 10 Mouse.Move:connect(function() if Idle == false then Char.HumanoidRootPart.CFrame = CFrame.new(Char.HumanoidRootPart.Position, Mouse.Hit.p) Char.UpperTorso.Fly.Velocity = Char.HumanoidRootPart.CFrame.lookVector * Speed * 10 end end) end) --[==[ ({ Stop }) ]==]-- script.Stop.OnServerEvent:connect(function(Client) local Char = Client.Character for i, v in pairs(Char.Humanoid:GetPlayingAnimationTracks()) do v:Stop() end Char.Animate.Disabled = true local Anim = Char.Humanoid:LoadAnimation(script.Idle) Anim:Play() Char.UpperTorso.Fly.Velocity = Vector3.new(0, 0, 0) Idle = true end) script.Fast.OnServerEvent:connect(function() Speed = 25 end) script.Slow.OnServerEvent:connect(function() Speed = 5 end)