local ScreenGui = Instance.new("ScreenGui")
local MainFrame = Instance.new("Frame")
local UICorner = Instance.new("UICorner")
local TopBar = Instance.new("Frame")
local TopBarCorner = Instance.new("UICorner")
local Title = Instance.new("TextLabel")
local CloseButton = Instance.new("TextButton")
local ExecuteButton = Instance.new("TextButton")
local UnflingButton = Instance.new("TextButton")
local UsernameBox = Instance.new("TextBox")
local ButtonCorner = Instance.new("UICorner")
-- Add these after your existing buttons



ScreenGui.Name = "FlingUI"
ScreenGui.Parent = game:GetService("CoreGui")
ScreenGui.ZIndexBehavior = Enum.ZIndexBehavior.Sibling

MainFrame.Name = "MainFrame"
MainFrame.Parent = ScreenGui
MainFrame.BackgroundColor3 = Color3.fromRGB(0, 0, 0)
MainFrame.Position = UDim2.new(0.5, -125, 0.5, -100)
MainFrame.Size = UDim2.new(0, 250, 0.1, 250)
MainFrame.Active = true
MainFrame.Draggable = true

UICorner.Parent = MainFrame
UICorner.CornerRadius = UDim.new(0, 6)

TopBar.Name = "TopBar"
TopBar.Parent = MainFrame
TopBar.BackgroundColor3 = Color3.fromRGB(0, 0, 0)
TopBar.Size = UDim2.new(1, 0, 0, 30)

TopBarCorner.Parent = TopBar
TopBarCorner.CornerRadius = UDim.new(0, 6)

Title.Name = "Title"
Title.Parent = TopBar
Title.BackgroundTransparency = 1
Title.Position = UDim2.new(0, 10, 0, 0)
Title.Size = UDim2.new(1, -40, 1, 0)
Title.Font = Enum.Font.GothamBold
Title.Text = "Fling UI by Porn Hub Production"
Title.TextColor3 = Color3.fromRGB(255, 90, 0)
Title.TextSize = 14
Title.TextXAlignment = Enum.TextXAlignment.Left

CloseButton.Name = "CloseButton"
CloseButton.Parent = TopBar
CloseButton.BackgroundTransparency = 1
CloseButton.Position = UDim2.new(1, -25, 0, 5)
CloseButton.Size = UDim2.new(0, 20, 0, 20)
CloseButton.Font = Enum.Font.GothamBold
CloseButton.Text = "X"
CloseButton.TextColor3 = Color3.fromRGB(255, 255, 255)
CloseButton.TextSize = 14

UsernameBox.Name = "UsernameBox"
UsernameBox.Parent = MainFrame
UsernameBox.BackgroundColor3 = Color3.fromRGB(255, 90, 0)
UsernameBox.Position = UDim2.new(0.5, -75, 0.3, 0)
UsernameBox.Size = UDim2.new(0, 150, 0, 30)
UsernameBox.Font = Enum.Font.GothamBold
UsernameBox.PlaceholderText = "Enter Username"
UsernameBox.Text = ""
UsernameBox.TextColor3 = Color3.fromRGB(255, 255, 255)
UsernameBox.TextSize = 14

ExecuteButton.Name = "ExecuteButton"
ExecuteButton.Parent = MainFrame
ExecuteButton.BackgroundColor3 = Color3.fromRGB(255, 90, 0)
ExecuteButton.Position = UDim2.new(0.5, -75, 0.5, 0)
ExecuteButton.Size = UDim2.new(0, 150, 0, 40)
ExecuteButton.Font = Enum.Font.GothamBold
ExecuteButton.Text = "Fling"
ExecuteButton.TextColor3 = Color3.fromRGB(255, 255, 255)
ExecuteButton.TextSize = 16

UnflingButton.Name = "UnflingButton"
UnflingButton.Parent = MainFrame
UnflingButton.BackgroundColor3 = Color3.fromRGB(255, 90, 0)
UnflingButton.Position = UDim2.new(0.5, -75, 0.7, 0)
UnflingButton.Size = UDim2.new(0, 150, 0, 40)
UnflingButton.Font = Enum.Font.GothamBold
UnflingButton.Text = "Unfling"
UnflingButton.TextColor3 = Color3.fromRGB(255, 255, 255)
UnflingButton.TextSize = 16

ButtonCorner.Parent = ExecuteButton
ButtonCorner.CornerRadius = UDim.new(0, 6)

local ButtonCorner2 = ButtonCorner:Clone()
ButtonCorner2.Parent = UnflingButton

local ButtonCorner3 = ButtonCorner:Clone()
ButtonCorner3.Parent = UsernameBox

-- Variables for fling control
local isFlingEnabled = false
local flingLoop = nil

-- Button functionality
CloseButton.MouseButton1Click:Connect(function()
    if flingLoop then
        flingLoop:Disconnect()
    end
    ScreenGui:Destroy()
end)

ExecuteButton.MouseButton1Click:Connect(function()
    if not isFlingEnabled then
        isFlingEnabled = true
        
        flingLoop = game:GetService("RunService").Heartbeat:Connect(function()
            local targetUsername = UsernameBox.Text
            if targetUsername ~= "" then
                local Players = game:GetService("Players")
                local Player = Players.LocalPlayer

                local GetPlayer = function(Name)
                    Name = Name:lower()
                    for _, x in next, Players:GetPlayers() do
                        if x ~= Player then
                            if x.Name:lower():match("^"..Name) then
                                return x
                            elseif x.DisplayName:lower():match("^"..Name) then
                                return x
                            end
                        end
                    end
                    return nil
                end

                local Message = function(_Title, _Text, Time)
                    game:GetService("StarterGui"):SetCore("SendNotification", {Title = _Title, Text = _Text, Duration = Time})
                end

                local SkidFling = function(TargetPlayer)
                    local Character = Player.Character
                    local Humanoid = Character and Character:FindFirstChildOfClass("Humanoid")
                    local RootPart = Humanoid and Humanoid.RootPart

                    local TCharacter = TargetPlayer.Character
                    local THumanoid
                    local TRootPart
                    local THead
                    local Accessory
                    local Handle

                    if TCharacter:FindFirstChildOfClass("Humanoid") then
                        THumanoid = TCharacter:FindFirstChildOfClass("Humanoid")
                    end
                    if THumanoid and THumanoid.RootPart then
                        TRootPart = THumanoid.RootPart
                    end
                    if TCharacter:FindFirstChild("Head") then
                        THead = TCharacter.Head
                    end
                    if TCharacter:FindFirstChildOfClass("Accessory") then
                        Accessory = TCharacter:FindFirstChildOfClass("Accessory")
                    end
                    if Accessory and Accessory:FindFirstChild("Handle") then
                        Handle = Accessory.Handle
                    end

                    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 not THead and Handle then
                            workspace.CurrentCamera.CameraSubject = Handle
                        elseif THumanoid and TRootPart then
                            workspace.CurrentCamera.CameraSubject = THumanoid
                        end
                        if not TCharacter:FindFirstChildWhichIsA("BasePart") then
                            return
                        end
                        
                        local FPos = function(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 SFBasePart = function(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

                        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
                    end
                end

                local targetPlayer = GetPlayer(targetUsername)
                if targetPlayer then
                    SkidFling(targetPlayer)
                end
            end
        end)
    end
end)

UnflingButton.MouseButton1Click:Connect(function()
    if isFlingEnabled then
        isFlingEnabled = false
        if flingLoop then
            flingLoop:Disconnect()
            flingLoop = nil
        end
        
        local Player = game:GetService("Players").LocalPlayer
        local Character = Player.Character
        if Character and getgenv().OldPos then
            local Humanoid = Character:FindFirstChildOfClass("Humanoid")
            local RootPart = Humanoid and Humanoid.RootPart
            
            if RootPart then
                RootPart.CFrame = getgenv().OldPos
                Character:SetPrimaryPartCFrame(getgenv().OldPos)
                Humanoid:ChangeState("GettingUp")
            end
        end
    end
end)

Embed on website

To embed this project on your website, copy the following code and paste it into your website's HTML: