self fling
Key RequiredUniversal

self fling

Universal Scriptbanana_peelbanana_peel 9.1K views 800 executesUpdated Oct 10, 2025
2.5/ 5(2 votes)
1150% Positive
Lua Script•74 lines (3058 chars)
-- LocalScript in StarterPlayerScripts
local UserInputService = game:GetService("UserInputService")
local Players = game:GetService("Players")

-- Create ScreenGui
local gui = Instance.new("ScreenGui")
gui.Name = "FlingGui"
gui.ResetOnSpawn = false -- Prevent GUI from resetting on player respawn
gui.Parent = Players.LocalPlayer.PlayerGui

-- Create draggable button
local flingButton = Instance.new("TextButton")
flingButton.Size = UDim2.new(0, 100, 0, 50)
flingButton.Position = UDim2.new(0.5, -50, 0.5, -25)
flingButton.Text = "Fling Me!"
flingButton.BackgroundColor3 = Color3.fromRGB(100, 100, 255)
flingButton.TextColor3 = Color3.fromRGB(255, 255, 255)
flingButton.Parent = gui

-- Add rounded corners
local corner = Instance.new("UICorner")
corner.CornerRadius = UDim.new(0, 10)
corner.Parent = flingButton

-- Dragging variables
local isDragging = false
local lastMousePos = nil
local clickStartTime = 0
local dragThreshold = 0.2 -- Time (seconds) to differentiate click vs drag

-- Fling function (client-side, less secure)
local function triggerFling()
    local character = Players.LocalPlayer.Character
    if character and character:FindFirstChild("HumanoidRootPart") then
        local humanoidRootPart = character.HumanoidRootPart
        local flingDistance = 50
        local flingForce = 300 -- Reduced for controlled speed
        local direction = humanoidRootPart.CFrame.LookVector * flingDistance
        local bodyVelocity = Instance.new("BodyVelocity")
        bodyVelocity.MaxForce = Vector3.new(math.huge, math.huge, math.huge)
        bodyVelocity.Velocity = direction.Unit * flingForce -- Normalized for consistent speed
        bodyVelocity.Parent = humanoidRootPart
        game:GetService("Debris"):AddItem(bodyVelocity, 0.2)
    end
end

-- Handle input
flingButton.InputBegan:Connect(function(input)
    if input.UserInputType == Enum.UserInputType.MouseButton1 or input.UserInputType == Enum.UserInputType.Touch then
        clickStartTime = tick()
        isDragging = true
        lastMousePos = input.UserInputType == Enum.UserInputType.Touch and input.Position or UserInputService:GetMouseLocation()
    end
end)

flingButton.InputEnded:Connect(function(input)
    if input.UserInputType == Enum.UserInputType.MouseButton1 or input.UserInputType == Enum.UserInputType.Touch then
        if tick() - clickStartTime < dragThreshold then
            triggerFling() -- Short click triggers fling
        end
        isDragging = false
        clickStartTime = 0
    end
end)

-- Handle dragging movement
UserInputService.InputChanged:Connect(function(input)
    if isDragging and (input.UserInputType == Enum.UserInputType.MouseMovement or input.UserInputType == Enum.UserInputType.Touch) then
        local currentMousePos = input.UserInputType == Enum.UserInputType.Touch and input.Position or UserInputService:GetMouseLocation()
        local delta = currentMousePos - lastMousePos
        flingButton.Position = flingButton.Position + UDim2.new(0, delta.X, 0, delta.Y)
        lastMousePos = currentMousePos
    end
end)

Features & Information

- draggable button - fling at high speeds - no "disabled/enabled" feature - totally low quality - doesnt disappear when u die - parries the air molecules - guarantees a powerful fling if you do it against a wall ik it doesnt look like flinging but if its too fast it can get you flinged over the map, it can sometimes just... get you stuck inside walls.

Community Comments (0)

No comments yet for this script.

More Scripts for Universal Scripts