Fe dash spin (READ DESC)
Key Required

Fe dash spin (READ DESC)

[UP] Just a baseplate.PastilPastil 782 views 906 executesUpdated Oct 7, 2026
Unrated
00
Lua Script•234 lines (7425 chars)
-- for beginners i made public
local Players = game:GetService("Players")
local UserInputService = game:GetService("UserInputService")
local LocalPlayer = Players.LocalPlayer

-- Safe ScreenGui Parent
local function getSafeParent()
    local success, result = pcall(function()
        return gethui and gethui() or game:GetService("CoreGui")
    end)
    if success and result then
        return result
    end
    return LocalPlayer:WaitForChild("PlayerGui")
end

local ParentContainer = getSafeParent()

-- Cleanup Old Instances
if ParentContainer:FindFirstChild("SpinDashSelectionGui") then
    ParentContainer.SpinDashSelectionGui:Destroy()
end
if ParentContainer:FindFirstChild("SpinDashMainGui") then
    ParentContainer.SpinDashMainGui:Destroy()
end

-- ========================================================
-- 1. DEVICE SELECTION GUI
-- ========================================================
local SelectionGui = Instance.new("ScreenGui")
SelectionGui.Name = "SpinDashSelectionGui"
SelectionGui.ResetOnSpawn = false
SelectionGui.DisplayOrder = 999999
SelectionGui.Parent = ParentContainer

local Overlay = Instance.new("Frame")
Overlay.Size = UDim2.new(1, 0, 1, 0)
Overlay.BackgroundColor3 = Color3.fromRGB(0, 0, 0)
Overlay.BackgroundTransparency = 0.5
Overlay.Parent = SelectionGui

local Modal = Instance.new("Frame")
Modal.Size = UDim2.new(0, 260, 0, 130)
Modal.Position = UDim2.new(0.5, -130, 0.5, -65)
Modal.BackgroundColor3 = Color3.fromRGB(25, 25, 25)
Modal.Parent = Overlay

local ModalCorner = Instance.new("UICorner")
ModalCorner.CornerRadius = UDim.new(0, 10)
ModalCorner.Parent = Modal

local Title = Instance.new("TextLabel")
Title.Size = UDim2.new(1, 0, 0, 40)
Title.BackgroundTransparency = 1
Title.Text = "Select Device Mode"
Title.TextColor3 = Color3.fromRGB(255, 255, 255)
Title.TextSize = 16
Title.Font = Enum.Font.SourceSansBold
Title.Parent = Modal

local PhoneBtn = Instance.new("TextButton")
PhoneBtn.Size = UDim2.new(0, 100, 0, 38)
PhoneBtn.Position = UDim2.new(0, 18, 0, 65)
PhoneBtn.BackgroundColor3 = Color3.fromRGB(40, 40, 40)
PhoneBtn.Text = "Phone Mode"
PhoneBtn.TextColor3 = Color3.fromRGB(255, 255, 255)
PhoneBtn.Font = Enum.Font.SourceSansBold
PhoneBtn.TextSize = 13
PhoneBtn.Parent = Modal

local TabletBtn = Instance.new("TextButton")
TabletBtn.Size = UDim2.new(0, 100, 0, 38)
TabletBtn.Position = UDim2.new(1, -118, 0, 65)
TabletBtn.BackgroundColor3 = Color3.fromRGB(40, 40, 40)
TabletBtn.Text = "Tablet Mode"
TabletBtn.TextColor3 = Color3.fromRGB(255, 255, 255)
TabletBtn.Font = Enum.Font.SourceSansBold
TabletBtn.TextSize = 13
TabletBtn.Parent = Modal

for _, btn in ipairs({PhoneBtn, TabletBtn}) do
    local corner = Instance.new("UICorner")
    corner.CornerRadius = UDim.new(0, 8)
    corner.Parent = btn
    
    local stroke = Instance.new("UIStroke")
    stroke.Thickness = 1.5
    stroke.Color = Color3.fromRGB(0, 170, 255)
    stroke.Parent = btn
end

-- ========================================================
-- 2. MAIN DASH BUTTON GUI
-- ========================================================
local MainGui = Instance.new("ScreenGui")
MainGui.Name = "SpinDashMainGui"
MainGui.ResetOnSpawn = false
MainGui.Enabled = false
MainGui.DisplayOrder = 999999
MainGui.Parent = ParentContainer

local DashButton = Instance.new("TextButton")
DashButton.Name = "DashButton"
DashButton.BackgroundColor3 = Color3.fromRGB(25, 25, 25)
DashButton.TextColor3 = Color3.fromRGB(255, 255, 255)
DashButton.Text = "SPIN DASH"
DashButton.Font = Enum.Font.SourceSansBold
DashButton.Parent = MainGui

local DashCorner = Instance.new("UICorner")
DashCorner.CornerRadius = UDim.new(0, 10)
DashCorner.Parent = DashButton

local DashStroke = Instance.new("UIStroke")
DashStroke.Thickness = 2
DashStroke.Color = Color3.fromRGB(0, 170, 255)
DashStroke.Parent = DashButton

-- Mode Handler
local function applyMode(isPhone)
    if isPhone then
        DashButton.Size = UDim2.new(0, 80, 0, 35)
        DashButton.TextSize = 12
        DashButton.Position = UDim2.new(0.5, -40, 0.75, -17)
    else
        DashButton.Size = UDim2.new(0, 130, 0, 48)
        DashButton.TextSize = 16
        DashButton.Position = UDim2.new(0.5, -65, 0.75, -24)
    end
    SelectionGui:Destroy()
    MainGui.Enabled = true
end

PhoneBtn.Activated:Connect(function() applyMode(true) end)
TabletBtn.Activated:Connect(function() applyMode(false) end)

-- Mobile & PC Draggable Logic
local dragging, dragInput, dragStart, startPos

DashButton.InputBegan:Connect(function(input)
    if input.UserInputType == Enum.UserInputType.MouseButton1 or input.UserInputType == Enum.UserInputType.Touch then
        dragging = true
        dragStart = input.Position
        startPos = DashButton.Position
        
        input.Changed:Connect(function()
            if input.UserInputState == Enum.UserInputState.End then
                dragging = false
            end
        end)
    end
end)

DashButton.InputChanged:Connect(function(input)
    if input.UserInputType == Enum.UserInputType.MouseMovement or input.UserInputType == Enum.UserInputType.Touch then
        dragInput = input
    end
end)

UserInputService.InputChanged:Connect(function(input)
    if input == dragInput and dragging then
        local delta = input.Position - dragStart
        DashButton.Position = UDim2.new(startPos.X.Scale, startPos.X.Offset + delta.X, startPos.Y.Scale, startPos.Y.Offset + delta.Y)
    end
end)

-- ========================================================
-- 3. SPIN DASH MECHANIC
-- ========================================================
local isDashing = false

local animR6 = Instance.new("Animation")
animR6.AnimationId = "rbxassetid://278828913"

local animR15 = Instance.new("Animation")
animR15.AnimationId = "rbxassetid://582855105"

local function performSpinDash()
    if isDashing then return end
    
    local char = LocalPlayer.Character
    if not char then return end
    
    local humanoid = char:FindFirstChildOfClass("Humanoid")
    local root = char:FindFirstChild("HumanoidRootPart")
    
    if not humanoid or not root then return end
    
    isDashing = true
    
    -- Load Animation safely
    local animTrack
    pcall(function()
        local animToPlay = (humanoid.RigType == Enum.HumanoidRigType.R6) and animR6 or animR15
        local animator = humanoid:FindFirstChildOfClass("Animator") or Instance.new("Animator", humanoid)
        animTrack = animator:LoadAnimation(animToPlay)
        animTrack:Play()
    end)
    
    -- Physics Setup
    local attachment = Instance.new("Attachment")
    attachment.Parent = root
    
    local linearVel = Instance.new("LinearVelocity")
    linearVel.Attachment0 = attachment
    linearVel.MaxForce = 999999
    linearVel.VectorVelocity = root.CFrame.LookVector * 60
    linearVel.RelativeTo = Enum.ActuatorRelativeTo.World
    linearVel.Parent = root
    
    local angularVel = Instance.new("AngularVelocity")
    angularVel.Attachment0 = attachment
    angularVel.MaxTorque = 999999
    angularVel.AngularVelocity = Vector3.new(0, 40, 0)
    angularVel.RelativeTo = Enum.ActuatorRelativeTo.World
    angularVel.Parent = root
    
    task.wait(0.5)
    
    linearVel:Destroy()
    angularVel:Destroy()
    attachment:Destroy()
    
    if animTrack then
        pcall(function()
            animTrack:Stop()
            animTrack:Destroy()
        end)
    end
    
    isDashing = false
end

DashButton.Activated:Connect(performSpinDash)

Features & Information

You need a universal fling gui

Community Comments (0)

No comments yet for this script.

More Scripts for [UP] Just a baseplate.