FE Touch Fling with Animations R6 R15
Key RequiredUniversal

FE Touch Fling with Animations R6 R15

Universal ScriptOpenScriptsStudioOpenScriptsStudio 1.1K views 18.1K executesUpdated Jul 23, 2026
Unrated
00
Lua Script•389 lines (11441 chars)
print("sub to openscripts")
--notify: if code obfuscated — it's not original script

--script:
local plrs = game:GetService("Players")
local runS = game:GetService("RunService")
local tweenS = game:GetService("TweenService")

local plr = plrs.LocalPlayer
local gui = plr:WaitForChild("PlayerGui")

local function getRoot(char)
    if not char then return nil end
    local root = char:FindFirstChild("HumanoidRootPart")
    if root then return root end
    return char:FindFirstChild("Torso")
end

local function disableCol(char, state)
    if not char then return end
    for _, p in pairs(char:GetChildren()) do
        if p:IsA("BasePart") then
            p.CanCollide = state
        end
    end
end

local function getCharType(char)
    if not char then return "Unknown" end
    if char:FindFirstChild("HumanoidRootPart") and char:FindFirstChild("UpperTorso") then
        return "R15"
    elseif char:FindFirstChild("Torso") then
        return "R6"
    end
    return "Unknown"
end

local function setupUI()
    if gui:FindFirstChild("flingGui") then
        gui.flingGui:Destroy()
    end

    local sc = Instance.new("ScreenGui")
    sc.Name = "flingGui"
    sc.ResetOnSpawn = false
    sc.Parent = gui
    
    local frm = Instance.new("Frame")
    frm.Name = "MainFrame"
    frm.BackgroundColor3 = Color3.fromRGB(5, 10, 5)
    frm.BorderSizePixel = 0
    frm.Size = UDim2.new(0, 190, 0, 130)
    frm.Position = UDim2.new(0, 20, 0, 20)
    frm.Active = true
    frm.Draggable = true
    frm.Parent = sc
    
    local frmStrk = Instance.new("UIStroke")
    frmStrk.Color = Color3.fromRGB(0, 255, 70)
    frmStrk.Thickness = 1.5
    frmStrk.Parent = frm

    local btn = Instance.new("TextButton")
    btn.Name = "MainButton"
    btn.Size = UDim2.new(1, -10, 0, 30)
    btn.Position = UDim2.new(0, 5, 0, 5)
    btn.BorderSizePixel = 0
    btn.Font = Enum.Font.Code
    btn.TextSize = 13
    btn.TextColor3 = Color3.fromRGB(0, 255, 70)
    btn.AutoButtonColor = false 
    btn.Parent = frm

    local pwrBox = Instance.new("TextBox")
    pwrBox.Name = "FlingPower"
    pwrBox.Size = UDim2.new(1, -10, 0, 30)
    pwrBox.Position = UDim2.new(0, 5, 0, 45)
    pwrBox.BackgroundColor3 = Color3.fromRGB(10, 20, 10)
    pwrBox.BorderSizePixel = 0
    pwrBox.Font = Enum.Font.Code
    pwrBox.TextSize = 13
    pwrBox.TextColor3 = Color3.fromRGB(0, 255, 70)
    pwrBox.Text = "1000000"
    pwrBox.PlaceholderText = "Fling Power"
    pwrBox.ClearTextOnFocus = false
    pwrBox.Parent = frm

    local boxStrk = Instance.new("UIStroke")
    boxStrk.Color = Color3.fromRGB(0, 255, 70)
    boxStrk.Thickness = 1
    boxStrk.Parent = pwrBox

    local pnchBtn = Instance.new("TextButton")
    pnchBtn.Name = "PunchButton"
    pnchBtn.Size = UDim2.new(1, -10, 0, 25)
    pnchBtn.Position = UDim2.new(0, 5, 0, 85)
    pnchBtn.BorderSizePixel = 0
    pnchBtn.Font = Enum.Font.Code
    pnchBtn.TextSize = 12
    pnchBtn.TextColor3 = Color3.fromRGB(0, 255, 70)
    pnchBtn.AutoButtonColor = false
    pnchBtn.BackgroundColor3 = Color3.fromRGB(10, 20, 10)
    pnchBtn.Parent = frm

    local pnchStrk = Instance.new("UIStroke")
    pnchStrk.Color = Color3.fromRGB(0, 255, 70)
    pnchStrk.Thickness = 1
    pnchStrk.Parent = pnchBtn

    local isFlinging = false
    local flingConn = nil
    local hboxVis = nil
    local curTrack = nil
    local isPunch = false

    local anims = {
        R6 = "rbxassetid://204062532",
        R15 = 94235564114426
    }

    local bgOn = Color3.fromRGB(0, 40, 10)
    local bgOff = Color3.fromRGB(15, 5, 5)
    local txtOn = Color3.fromRGB(50, 255, 100)
    local txtOff = Color3.fromRGB(255, 50, 50)

    local function getPwr()
        local p = tonumber(pwrBox.Text)
        if not p or p < 1 then return 1 end
        return p
    end

    local function tween(inst, prop, val, dur)
        tweenS:Create(inst, TweenInfo.new(dur or 0.2, Enum.EasingStyle.Linear, Enum.EasingDirection.Out), {[prop] = val}):Play()
    end

    local function updateHbox(st)
        if st then
            local char = plr.Character
            local root = getRoot(char)
            if root and not char:FindFirstChild("MatrixHitboxVisual") then
                hboxVis = Instance.new("SelectionBox")
                hboxVis.Name = "MatrixHitboxVisual"
                hboxVis.Adornee = root
                hboxVis.Color3 = Color3.fromRGB(0, 255, 70)
                hboxVis.LineThickness = 0.05
                hboxVis.SurfaceColor3 = Color3.fromRGB(0, 255, 70)
                hboxVis.SurfaceTransparency = 0.85
                hboxVis.Parent = char
            end
        else
            if hboxVis then
                hboxVis:Destroy()
                hboxVis = nil
            end
            local char = plr.Character
            if char then
                local oldVis = char:FindFirstChild("MatrixHitboxVisual")
                if oldVis then oldVis:Destroy() end
            end
        end
    end

    local function updateBtnVis()
        if isFlinging then
            btn.Text = "[ SYSTEM: ACTIVE ]"
            tween(btn, "BackgroundColor3", bgOn)
            tween(btn, "TextColor3", txtOn)
            frmStrk.Color = Color3.fromRGB(0, 255, 70)
            updateHbox(true)
        else
            btn.Text = "[ SYSTEM: OFFLINE ]"
            tween(btn, "BackgroundColor3", bgOff)
            tween(btn, "TextColor3", txtOff)
            frmStrk.Color = Color3.fromRGB(120, 0, 0)
            updateHbox(false)
        end
    end

    local function updatePnchBtn()
        if isPunch then
            pnchBtn.Text = "[ PUNCH MODE: ON ]"
            pnchBtn.TextColor3 = Color3.fromRGB(50, 255, 100)
            pnchBtn.BackgroundColor3 = Color3.fromRGB(0, 40, 10)
            pnchStrk.Color = Color3.fromRGB(0, 255, 70)
        else
            pnchBtn.Text = "[ PUNCH MODE: OFF ]"
            pnchBtn.TextColor3 = Color3.fromRGB(255, 50, 50)
            pnchBtn.BackgroundColor3 = Color3.fromRGB(15, 5, 5)
            pnchStrk.Color = Color3.fromRGB(120, 0, 0)
        end
    end

    btn.MouseEnter:Connect(function()
        if isFlinging then
            tween(btn, "BackgroundColor3", Color3.fromRGB(0, 70, 15))
            tween(btn, "TextColor3", Color3.fromRGB(150, 255, 180))
        else
            tween(btn, "BackgroundColor3", Color3.fromRGB(30, 10, 10))
            tween(btn, "TextColor3", Color3.fromRGB(255, 120, 120))
        end
    end)

    btn.MouseLeave:Connect(updateBtnVis)

    pnchBtn.MouseEnter:Connect(function()
        if isPunch then
            pnchBtn.BackgroundColor3 = Color3.fromRGB(0, 70, 15)
            pnchBtn.TextColor3 = Color3.fromRGB(150, 255, 180)
        else
            pnchBtn.BackgroundColor3 = Color3.fromRGB(30, 10, 10)
            pnchBtn.TextColor3 = Color3.fromRGB(255, 120, 120)
        end
    end)

    pnchBtn.MouseLeave:Connect(updatePnchBtn)

    local function playAnim()
        local char = plr.Character
        if not char then return end
        
        local hum = char:FindFirstChildOfClass("Humanoid")
        if not hum then return end
        
        local cType = getCharType(char)
        local animId = anims[cType] or anims.R6
        
        local animator = hum:FindFirstChildOfClass("Animator") or Instance.new("Animator", hum)

        if curTrack then
            curTrack:Stop()
            curTrack:Destroy()
            curTrack = nil
        end

        if cType == "R15" then
            local ok, res = pcall(function()
                return game:GetObjects("rbxassetid://" .. tostring(animId))
            end)

            if ok and res and #res > 0 then
                local a = res[1]
                if a:IsA("Animation") then
                    curTrack = animator:LoadAnimation(a)
                else
                    local newA = Instance.new("Animation")
                    newA.AnimationId = "rbxassetid://" .. tostring(animId)
                    curTrack = animator:LoadAnimation(newA)
                end
            else
                local newA = Instance.new("Animation")
                newA.AnimationId = "rbxassetid://" .. tostring(animId)
                curTrack = animator:LoadAnimation(newA)
            end
        else
            local newA = Instance.new("Animation")
            newA.AnimationId = animId
            curTrack = animator:LoadAnimation(newA)
        end
        
        if curTrack then
            curTrack.Looped = true
            curTrack:Play()
        end
    end

    local function stopAnim()
        if curTrack then
            curTrack:Stop()
            curTrack:Destroy()
            curTrack = nil
        end
    end

    local function startFling()
        if flingConn then return end
        
        isFlinging = true
        
        if isPunch then
            playAnim()
        end
        
        local char = plr.Character
        if char then
            disableCol(char, false)
        end
        
        local movel = 0.1
        local pwr = getPwr()
        
        flingConn = runS.Heartbeat:Connect(function()
            local char = plr.Character
            local root = getRoot(char)
            
            if not (char and char.Parent and root and root.Parent) then 
                return 
            end
            
            if not char:FindFirstChild("MatrixHitboxVisual") and isFlinging then
                updateHbox(true)
            end
            
            if isFlinging then
                disableCol(char, false)
            end
            
            local lastVel = root.AssemblyLinearVelocity
            root.AssemblyLinearVelocity = Vector3.new(pwr, pwr/2, pwr)
            
            runS.RenderStepped:Wait()
            if char and char.Parent and root and root.Parent then
                root.AssemblyLinearVelocity = lastVel
            end
            
            runS.Stepped:Wait()
            if char and char.Parent and root and root.Parent then
                root.AssemblyLinearVelocity = lastVel + Vector3.new(0, movel, 0)
                movel = movel * -1
            end
        end)
        
        updateBtnVis()
    end

    local function stopFling()
        if flingConn then
            flingConn:Disconnect()
            flingConn = nil
        end
        isFlinging = false
        
        stopAnim()
        
        local char = plr.Character
        if char then
            disableCol(char, true)
        end
        
        updateBtnVis()
    end

    local function toggleFling()
        if isFlinging then
            stopFling()
        else
            startFling()
        end
    end

    local function togglePnch()
        isPunch = not isPunch
        updatePnchBtn()
        
        if isFlinging then
            stopFling()
            startFling()
        end
    end

    pwrBox.FocusLost:Connect(function()
        local v = tonumber(pwrBox.Text)
        if not v or v < 1 then
            pwrBox.Text = "1"
        end
        if isFlinging then
            stopFling()
            startFling()
        end
    end)

    plr.CharacterAdded:Connect(function(char)
        if isFlinging then
            task.wait(0.1)
            disableCol(char, false)
            if isPunch then
                stopAnim()
                playAnim()
            end
        end
    end)

    updateBtnVis()
    updatePnchBtn()
    
    btn.MouseButton1Click:Connect(toggleFling)
    pnchBtn.MouseButton1Click:Connect(togglePnch)
end

setupUI()

Features & Information

Script Name: OpenSHUB Features: Touch Fling PowerBar Fling Enable FE animations

Community Comments (0)

No comments yet for this script.

More Scripts for Universal Scripts