local Players = game:GetService("Players") local LocalPlayer = Players.LocalPlayer local RunService = game:GetService("RunService") local UserInputService = game:GetService("UserInputService") -- Create GUI local ScreenGui = Instance.new("ScreenGui") ScreenGui.Name = "AntiFlingGUI" ScreenGui.ResetOnSpawn = false ScreenGui.Parent = LocalPlayer:WaitForChild("PlayerGui") -- Main Frame local MainFrame = Instance.new("Frame") MainFrame.Size = UDim2.new(0, 200, 0, 120) MainFrame.Position = UDim2.new(0, 10, 0, 10) MainFrame.BackgroundColor3 = Color3.fromRGB(20, 20, 30) MainFrame.BackgroundTransparency = 0.1 MainFrame.BorderSizePixel = 0 MainFrame.Active = true MainFrame.Draggable = true MainFrame.Parent = ScreenGui -- Title local Title = Instance.new("TextLabel") Title.Size = UDim2.new(1, 0, 0, 30) Title.BackgroundColor3 = Color3.fromRGB(40, 40, 60) Title.BorderSizePixel = 0 Title.Text = "ANTI FLING" Title.TextColor3 = Color3.fromRGB(255, 255, 255) Title.TextSize = 16 Title.Font = Enum.Font.GothamBold Title.Parent = MainFrame -- Status Label local StatusLabel = Instance.new("TextLabel") StatusLabel.Size = UDim2.new(1, 0, 0, 20) StatusLabel.Position = UDim2.new(0, 0, 0, 35) StatusLabel.BackgroundTransparency = 1 StatusLabel.Text = "Status: PROTECTED" StatusLabel.TextColor3 = Color3.fromRGB(0, 255, 0) StatusLabel.TextSize = 12 StatusLabel.Font = Enum.Font.Gotham StatusLabel.Parent = MainFrame -- Toggle Button local ToggleButton = Instance.new("TextButton") ToggleButton.Size = UDim2.new(0, 100, 0, 30) ToggleButton.Position = UDim2.new(0.5, -50, 0, 60) ToggleButton.BackgroundColor3 = Color3.fromRGB(0, 150, 50) ToggleButton.BorderSizePixel = 0 ToggleButton.Text = "DISABLE" ToggleButton.TextColor3 = Color3.fromRGB(255, 255, 255) ToggleButton.TextSize = 12 ToggleButton.Font = Enum.Font.GothamBold ToggleButton.Parent = MainFrame -- Settings local antiFlingEnabled = true local maxVelocity = 100 local maxAngularVelocity = 50 -- Anti Fling Core System local function setupAntiFling() -- Monitor character parts local character = LocalPlayer.Character if not character then return end local humanoid = character:FindFirstChildOfClass("Humanoid") local rootPart = character:FindFirstChild("HumanoidRootPart") if not humanoid or not rootPart then return end -- Store original properties local originalAnchored = rootPart.Anchored local originalVelocity = rootPart.Velocity local originalAngularVelocity = rootPart.RotVelocity -- Anti-fling protection loop RunService.Heartbeat:Connect(function() if not antiFlingEnabled then return end local character = LocalPlayer.Character if not character then return end local rootPart = character:FindFirstChild("HumanoidRootPart") local humanoid = character:FindFirstChildOfClass("Humanoid") if not rootPart or not humanoid then return end -- Check for excessive velocity local velocity = rootPart.Velocity local velocityMagnitude = velocity.Magnitude if velocityMagnitude > maxVelocity then -- Reset velocity to prevent fling rootPart.Velocity = Vector3.new(0, 0, 0) rootPart.AssemblyLinearVelocity = Vector3.new(0, 0, 0) end -- Check for excessive angular velocity local angularVelocity = rootPart.RotVelocity local angularMagnitude = angularVelocity.Magnitude if angularMagnitude > maxAngularVelocity then -- Reset angular velocity rootPart.RotVelocity = Vector3.new(0, 0, 0) rootPart.AssemblyAngularVelocity = Vector3.new(0, 0, 0) end -- Check for teleportation (position jump) local currentPos = rootPart.Position local lastPos = rootPart:GetAttribute("LastPosition") or currentPos local distance = (currentPos - lastPos).Magnitude if distance > 50 then -- Teleport detected, revert position rootPart.CFrame = CFrame.new(lastPos) end -- Store current position rootPart:SetAttribute("LastPosition", currentPos) -- Check for anchoring changes if rootPart.Anchored ~= originalAnchored then rootPart.Anchored = originalAnchored end -- Check for mass changes if rootPart:GetAttribute("OriginalMass") == nil then rootPart:SetAttribute("OriginalMass", rootPart.AssemblyMass) end -- Prevent mass manipulation if rootPart.AssemblyMass > 1000 then rootPart:SetAttribute("OriginalMass", rootPart.AssemblyMass) end end) -- Monitor all character parts for _, part in pairs(character:GetChildren()) do if part:IsA("BasePart") then -- Store original properties part:SetAttribute("OriginalAnchored", part.Anchored) part:SetAttribute("OriginalCanCollide", part.CanCollide) part:SetAttribute("OriginalMass", part.AssemblyMass) -- Monitor part changes part:GetPropertyChangedSignal("Anchored"):Connect(function() if antiFlingEnabled then part.Anchored = part:GetAttribute("OriginalAnchored") end end) part:GetPropertyChangedSignal("CanCollide"):Connect(function() if antiFlingEnabled then part.CanCollide = part:GetAttribute("OriginalCanCollide") end end) end end -- Monitor humanoid state changes humanoid:GetPropertyChangedSignal("StateType"):Connect(function() if antiFlingEnabled then -- Prevent being put in invalid states if humanoid.StateType == Enum.HumanoidStateType.Dead then -- Check if actually dead or being exploited if humanoid.Health > 0 then humanoid:ChangeState(Enum.HumanoidStateType.Running) end end end end) -- Monitor for fling tools/objects for _, player in pairs(Players:GetPlayers()) do if player ~= LocalPlayer then local character = player.Character if character then -- Check for fling tools for _, tool in pairs(character:GetChildren()) do if tool:IsA("Tool") then -- Monitor tool usage tool.Activated:Connect(function() if antiFlingEnabled then -- Check if tool is a fling tool if tool.Name:lower():find("fling") or tool.Name:lower():find("launch") then -- Block the fling local rootPart = LocalPlayer.Character:FindFirstChild("HumanoidRootPart") if rootPart then rootPart.Velocity = Vector3.new(0, 0, 0) rootPart.AssemblyLinearVelocity = Vector3.new(0, 0, 0) end end end end) end end end end end end -- Enhanced Anti-Fling Protection local function enhancedProtection() -- Monitor for velocity attacks RunService.RenderStepped:Connect(function() if not antiFlingEnabled then return end local character = LocalPlayer.Character if not character then return end local rootPart = character:FindFirstChild("HumanoidRootPart") if not rootPart then return end -- Check for extreme velocities local velocity = rootPart.AssemblyLinearVelocity if velocity.Magnitude > 200 then rootPart.AssemblyLinearVelocity = Vector3.new(0, 0, 0) end -- Check for extreme angular velocities local angularVelocity = rootPart.AssemblyAngularVelocity if angularVelocity.Magnitude > 100 then rootPart.AssemblyAngularVelocity = Vector3.new(0, 0, 0) end -- Check for position manipulation local currentPos = rootPart.Position local lastPos = rootPart:GetAttribute("LastPos") or currentPos if (currentPos - lastPos).Magnitude > 100 then rootPart.CFrame = CFrame.new(lastPos) end rootPart:SetAttribute("LastPos", currentPos) end) end -- Toggle button functionality ToggleButton.MouseButton1Click:Connect(function() antiFlingEnabled = not antiFlingEnabled if antiFlingEnabled then ToggleButton.Text = "DISABLE" ToggleButton.BackgroundColor3 = Color3.fromRGB(0, 150, 50) StatusLabel.Text = "Status: PROTECTED" StatusLabel.TextColor3 = Color3.fromRGB(0, 255, 0) else ToggleButton.Text = "ENABLE" ToggleButton.BackgroundColor3 = Color3.fromRGB(150, 0, 0) StatusLabel.Text = "Status: UNPROTECTED" StatusLabel.TextColor3 = Color3.fromRGB(255, 0, 0) end end) -- Initialize anti-fling LocalPlayer.CharacterAdded:Connect(function(character) wait(0.5) setupAntiFling() end) if LocalPlayer.Character then setupAntiFling() end enhancedProtection() print("Anti Fling script loaded successfully!") print("Protection against flinging enabled")