local Players = game:GetService("Players") local Player = Players.LocalPlayer local ScreenGui = Instance.new("ScreenGui") local Frame = Instance.new("Frame") local TextButton = Instance.new("TextButton") local ToggleButton = Instance.new("TextButton") local UICorner = Instance.new("UICorner") ScreenGui.Parent = Player:WaitForChild("PlayerGui") ScreenGui.ResetOnSpawn = false Frame.Parent = ScreenGui Frame.BackgroundColor3 = Color3.fromRGB(33, 33, 33) Frame.Position = UDim2.new(0.5, -100, 0.5, -50) Frame.Size = UDim2.new(0, 200, 0, 100) Frame.Active = true Frame.Draggable = true UICorner.Parent = Frame UICorner.CornerRadius = UDim.new(0, 8) TextButton.Parent = Frame TextButton.BackgroundColor3 = Color3.fromRGB(255, 0, 0) TextButton.Position = UDim2.new(0.1, 0, 0.3, 0) TextButton.Size = UDim2.new(0.8, 0, 0.4, 0) TextButton.Font = Enum.Font.SourceSans TextButton.Text = "FLING NEAREST!" TextButton.TextColor3 = Color3.fromRGB(255, 255, 255) TextButton.TextSize = 20 ToggleButton.Parent = ScreenGui ToggleButton.BackgroundColor3 = Color3.fromRGB(33, 33, 33) ToggleButton.Position = UDim2.new(0, 0, 0, 0) ToggleButton.Size = UDim2.new(0, 80, 0, 30) ToggleButton.Font = Enum.Font.SourceSans ToggleButton.Text = "Hide" ToggleButton.TextColor3 = Color3.fromRGB(255, 255, 255) ToggleButton.TextSize = 20 ToggleButton.Active = true ToggleButton.Draggable = true UICorner:Clone().Parent = ToggleButton ToggleButton.MouseButton1Click:Connect(function() if Frame.Visible then Frame.Visible = false ToggleButton.Text = "Show" else Frame.Visible = true ToggleButton.Text = "Hide" end end) local function FindNearestPlayer() local nearestPlayer = nil local minDistance = math.huge local character = Player.Character or Player.CharacterAdded:Wait() local rootPart = character:WaitForChild("HumanoidRootPart") for _, otherPlayer in pairs(Players:GetPlayers()) do if otherPlayer ~= Player and otherPlayer.Character and otherPlayer.Character:FindFirstChild("HumanoidRootPart") then local distance = (otherPlayer.Character.HumanoidRootPart.Position - rootPart.Position).Magnitude if distance < minDistance then minDistance = distance nearestPlayer = otherPlayer end end end return nearestPlayer end local function Message(_Title, _Text, Time) game:GetService("StarterGui"):SetCore("SendNotification", {Title = _Title, Text = _Text, Duration = Time}) end local function SkidFling(TargetPlayer) local Character = Player.Character local Humanoid = Character and Character:FindFirstChildOfClass("Humanoid") local RootPart = Humanoid and Humanoid.RootPart local TCharacter = TargetPlayer.Character local THumanoid = TCharacter and TCharacter:FindFirstChildOfClass("Humanoid") local TRootPart = THumanoid and THumanoid.RootPart local THead = TCharacter and TCharacter:FindFirstChild("Head") local Accessory = TCharacter and TCharacter:FindFirstChildOfClass("Accessory") local Handle = Accessory and Accessory:FindFirstChild("Handle") if Character and Humanoid and RootPart then if RootPart.Velocity.Magnitude < 50 then getgenv().OldPos = RootPart.CFrame end if THumanoid and THumanoid.Sit then return Message("Error Occurred", "Target is sitting", 5) end if THead then workspace.CurrentCamera.CameraSubject = THead elseif Handle then workspace.CurrentCamera.CameraSubject = Handle else workspace.CurrentCamera.CameraSubject = THumanoid end if not TCharacter:FindFirstChildWhichIsA("BasePart") then return end local function FPos(BasePart, Pos, Ang) RootPart.CFrame = CFrame.new(BasePart.Position) * Pos * Ang Character:SetPrimaryPartCFrame(CFrame.new(BasePart.Position) * Pos * Ang) RootPart.Velocity = Vector3.new(9e7, 9e7 * 10, 9e7) RootPart.RotVelocity = Vector3.new(9e8, 9e8, 9e8) end local function SFBasePart(BasePart) local TimeToWait = 2 local Time = tick() local Angle = 0 repeat if RootPart and THumanoid then if BasePart.Velocity.Magnitude < 50 then Angle = Angle + 100 FPos(BasePart, CFrame.new(0, 1.5, 0) + THumanoid.MoveDirection * BasePart.Velocity.Magnitude / 1.25, CFrame.Angles(math.rad(Angle), 0, 0)) task.wait() FPos(BasePart, CFrame.new(0, -1.5, 0) + THumanoid.MoveDirection * BasePart.Velocity.Magnitude / 1.25, CFrame.Angles(math.rad(Angle), 0, 0)) task.wait() FPos(BasePart, CFrame.new(2.25, 1.5, -2.25) + THumanoid.MoveDirection * BasePart.Velocity.Magnitude / 1.25, CFrame.Angles(math.rad(Angle), 0, 0)) task.wait() FPos(BasePart, CFrame.new(-2.25, -1.5, 2.25) + THumanoid.MoveDirection * BasePart.Velocity.Magnitude / 1.25, CFrame.Angles(math.rad(Angle), 0, 0)) task.wait() FPos(BasePart, CFrame.new(0, 1.5, 0) + THumanoid.MoveDirection, CFrame.Angles(math.rad(Angle), 0, 0)) task.wait() FPos(BasePart, CFrame.new(0, -1.5, 0) + THumanoid.MoveDirection, CFrame.Angles(math.rad(Angle), 0, 0)) task.wait() else FPos(BasePart, CFrame.new(0, 1.5, THumanoid.WalkSpeed), CFrame.Angles(math.rad(90), 0, 0)) task.wait() FPos(BasePart, CFrame.new(0, -1.5, -THumanoid.WalkSpeed), CFrame.Angles(0, 0, 0)) task.wait() FPos(BasePart, CFrame.new(0, 1.5, THumanoid.WalkSpeed), CFrame.Angles(math.rad(90), 0, 0)) task.wait() FPos(BasePart, CFrame.new(0, 1.5, TRootPart.Velocity.Magnitude / 1.25), CFrame.Angles(math.rad(90), 0, 0)) task.wait() FPos(BasePart, CFrame.new(0, -1.5, -TRootPart.Velocity.Magnitude / 1.25), CFrame.Angles(0, 0, 0)) task.wait() FPos(BasePart, CFrame.new(0, 1.5, TRootPart.Velocity.Magnitude / 1.25), CFrame.Angles(math.rad(90), 0, 0)) task.wait() FPos(BasePart, CFrame.new(0, -1.5, 0), CFrame.Angles(math.rad(90), 0, 0)) task.wait() FPos(BasePart, CFrame.new(0, -1.5, 0), CFrame.Angles(0, 0, 0)) task.wait() FPos(BasePart, CFrame.new(0, -1.5, 0), CFrame.Angles(math.rad(-90), 0, 0)) task.wait() FPos(BasePart, CFrame.new(0, -1.5, 0), CFrame.Angles(0, 0, 0)) task.wait() end else break end until BasePart.Velocity.Magnitude > 500 or BasePart.Parent ~= TargetPlayer.Character or TargetPlayer.Parent ~= Players or not TargetPlayer.Character == TCharacter or THumanoid.Sit or Humanoid.Health <= 0 or tick() > Time + TimeToWait end workspace.FallenPartsDestroyHeight = 0/0 local BV = Instance.new("BodyVelocity") BV.Name = "EpixVel" BV.Parent = RootPart BV.Velocity = Vector3.new(9e8, 9e8, 9e8) BV.MaxForce = Vector3.new(1/0, 1/0, 1/0) Humanoid:SetStateEnabled(Enum.HumanoidStateType.Seated, false) if TRootPart and THead then if (TRootPart.CFrame.p - THead.CFrame.p).Magnitude > 5 then SFBasePart(THead) else SFBasePart(TRootPart) end elseif TRootPart and not THead then SFBasePart(TRootPart) elseif not TRootPart and THead then SFBasePart(THead) elseif not TRootPart and not THead and Accessory and Handle then SFBasePart(Handle) else return Message("Error Occurred", "Target is missing everything", 5) end BV:Destroy() Humanoid:SetStateEnabled(Enum.HumanoidStateType.Seated, true) workspace.CurrentCamera.CameraSubject = Humanoid repeat RootPart.CFrame = getgenv().OldPos * CFrame.new(0, .5, 0) Character:SetPrimaryPartCFrame(getgenv().OldPos * CFrame.new(0, .5, 0)) Humanoid:ChangeState("GettingUp") table.foreach(Character:GetChildren(), function(_, x) if x:IsA("BasePart") then x.Velocity, x.RotVelocity = Vector3.new(), Vector3.new() end end) task.wait() until (RootPart.Position - getgenv().OldPos.p).Magnitude < 25 workspace.FallenPartsDestroyHeight = getgenv().FPDH else return Message("Error Occurred", "Random error", 5) end end TextButton.MouseButton1Click:Connect(function() local targetPlayer = FindNearestPlayer() if targetPlayer then SkidFling(targetPlayer) else Message("Error Occurred", "No nearby players found", 5) end end)