--[[ Anti-Fling & Anti-Sit Script (One-Time Check) --------------------------------------------- 1. Prevents being flung by moving unanchored parts. - Checks all unanchored parts not part of your character. - If moving faster than 3 studs/sec (linear) OR spinning faster than 3 rad/sec (rotational), disables collisions. 2. Disables sitting entirely for your character. - Uses Humanoid:SetStateEnabled(Enum.HumanoidStateType.Seated, false) - Prevents forced sitting from seats or scripts. 3. Uses getgenv().AntiFlingRunning to ensure the script only starts once. 4. Notifies when protection is enabled or already running. --]] local StarterGui = game:GetService("StarterGui") if getgenv().AntiFlingRunning then pcall(function() StarterGui:SetCore("SendNotification", { Title = "Anti-Fling", Text = "Script is already running", Duration = 3 }) end) return end getgenv().AntiFlingRunning = true local checkDelay = 0.01 -- more if you're laggy local Players = game:GetService("Players") local localPlayer = Players.LocalPlayer local character = localPlayer.Character or localPlayer.CharacterAdded:Wait() local humanoid = character:WaitForChild("Humanoid") -- Disable sitting humanoid:SetStateEnabled(Enum.HumanoidStateType.Seated, false) -- Notify pcall(function() StarterGui:SetCore("SendNotification", { Title = "Anti-Fling", Text = "Protection Enabled", Duration = 3 }) end) -- Loop for anti-fling task.spawn(function() while task.wait(checkDelay) do for _, part in ipairs(workspace:GetDescendants()) do if part:IsA("BasePart") and not part.Anchored and not part:IsDescendantOf(character) then if part.AssemblyLinearVelocity.Magnitude > 3 or part.AssemblyAngularVelocity.Magnitude > 3 then part.CanCollide = false end end end end end)