customizable universal dash
Key RequiredUniversal

customizable universal dash

Universal Scriptexploitsoneverythingexploitsoneverything 2.5K views 919 executesUpdated Nov 28, 2025
5.0/ 5(2 votes)
20100% Positive
Lua Script•338 lines (11121 chars)
local Players = game:GetService("Players")
local UserInputService = game:GetService("UserInputService")
local RunService = game:GetService("RunService")
local TweenService = game:GetService("TweenService")
local player = Players.LocalPlayer

local coreGui = game:GetService("CoreGui")

-- Detect mobile
local isMobile = UserInputService.TouchEnabled and not UserInputService.KeyboardEnabled

-- SETTINGS
local Settings = {
    DashKey = Enum.KeyCode.Q,
    DashForce = 150,
    DashCooldown = 0.8,
    DashDuration = 0.15,
    UseDoubleTapW = false,
    EnableSound = true,
    DashSoundId = "70557734865364",
    SoundVolume = 0.5,
}

-- ==================== GUI ====================
local ScreenGui = Instance.new("ScreenGui")
ScreenGui.Name = "UltimateDash"
ScreenGui.ResetOnSpawn = false
ScreenGui.Parent = coreGui  -- Changed to CoreGui

-- Responsive sizes
local menuWidth = isMobile and 300 or 340
local menuHeight = isMobile and 480 or 520
local fontSizeTitle = isMobile and 28 or 26
local fontSizeLabel = isMobile and 20 or 22
local fontSizeInput = isMobile and 18 or 20

local MainFrame = Instance.new("Frame")
MainFrame.Size = UDim2.new(0, menuWidth, 0, menuHeight)
MainFrame.Position = UDim2.new(0.5, -menuWidth/2, 0.5, -menuHeight/2)
MainFrame.BackgroundColor3 = Color3.fromRGB(30, 30, 40)
MainFrame.BorderSizePixel = 0
MainFrame.Active = true
MainFrame.Draggable = true
MainFrame.Parent = ScreenGui

Instance.new("UICorner", MainFrame).CornerRadius = UDim.new(0, 14)
Instance.new("UIStroke", MainFrame).Color = Color3.fromRGB(80, 140, 255)

local Title = Instance.new("TextLabel")
Title.Size = UDim2.new(1, 0, 0, 56)
Title.BackgroundTransparency = 1
Title.Text = "DASH MENU"
Title.TextColor3 = Color3.fromRGB(0, 200, 255)
Title.Font = Enum.Font.GothamBold
Title.TextSize = fontSizeTitle
Title.Parent = MainFrame

local MinimizeBtn = Instance.new("TextButton")
MinimizeBtn.Size = UDim2.new(0, 46, 0, 46)
MinimizeBtn.Position = UDim2.new(1, -54, 0, 4)
MinimizeBtn.BackgroundTransparency = 1
MinimizeBtn.Text = "−"
MinimizeBtn.TextColor3 = Color3.new(1,1,1)
MinimizeBtn.Font = Enum.Font.GothamBold
MinimizeBtn.TextSize = 40
MinimizeBtn.Parent = MainFrame

local Content = Instance.new("Frame")
Content.Size = UDim2.new(1, 0, 1, -56)
Content.Position = UDim2.new(0, 0, 0, 56)
Content.BackgroundTransparency = 1
Content.Parent = MainFrame

-- Dragging (works on touch too)
local dragging, dragInput, dragStart, startPos
MainFrame.InputBegan:Connect(function(input)
    if input.UserInputType == Enum.UserInputType.MouseButton1 or input.UserInputType == Enum.UserInputType.Touch then
        dragging = true
        dragStart = input.Position
        startPos = MainFrame.Position
    end
end)

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

RunService.Heartbeat:Connect(function()
    if dragging and dragInput then
        local delta = dragInput.Position - dragStart
        MainFrame.Position = UDim2.new(startPos.X.Scale, startPos.X.Offset + delta.X, startPos.Y.Scale, startPos.Y.Offset + delta.Y)
    end
end)

MainFrame.InputEnded:Connect(function(i)
    if i.UserInputType == Enum.UserInputType.MouseButton1 or i.UserInputType == Enum.UserInputType.Touch then
        dragging = false
    end
end)

-- Minimize system
local isMinimized = false
local normalSize = MainFrame.Size
local minimizedSize = UDim2.new(0, menuWidth, 0, 56)

local function setMinimized(min)
    isMinimized = min
    local target = min and minimizedSize or normalSize
    TweenService:Create(MainFrame, TweenInfo.new(0.3, Enum.EasingStyle.Quart), {Size = target}):Play()
    Content.Visible = not min
    MinimizeBtn.Text = min and "+" or "−"
end

MinimizeBtn.MouseButton1Click:Connect(function() setMinimized(not isMinimized) end)

UserInputService.InputBegan:Connect(function(i, gp)
    if gp then return end
    if i.KeyCode == Enum.KeyCode.G and UserInputService:IsKeyDown(Enum.KeyCode.LeftControl) then
        setMinimized(not isMinimized)
    end
end)

-- Settings UI (inside Content)
local y = 10

local function addRow(name, default, isNum, callback)
    local row = Instance.new("Frame")
    row.Size = UDim2.new(1, -20, 0, 50)
    row.Position = UDim2.new(0, 10, 0, y)
    row.BackgroundTransparency = 1
    row.Parent = Content

    local label = Instance.new("TextLabel")
    label.Size = UDim2.new(0.52, 0, 1, 0)
    label.Text = name
    label.TextColor3 = Color3.fromRGB(230, 230, 230)
    label.Font = Enum.Font.Gotham
    label.TextSize = fontSizeLabel
    label.TextXAlignment = Enum.TextXAlignment.Left
    label.BackgroundTransparency = 1
    label.Parent = row

    local box = Instance.new("TextBox")
    box.Size = UDim2.new(0.45, 0, 0, 36)
    box.Position = UDim2.new(0.55, 0, 0.15, 0)
    box.BackgroundColor3 = Color3.fromRGB(50, 50, 70)
    box.TextColor3 = Color3.new(1,1,1)
    box.Text = tostring(default)
    box.Font = Enum.Font.Gotham
    box.TextSize = fontSizeInput
    box.ClearTextOnFocus = false
    box.Parent = row

    Instance.new("UICorner", box).CornerRadius = UDim.new(0, 8)

    box.FocusLost:Connect(function(enter)
        if enter then
            local val = isNum and tonumber(box.Text) or box.Text
            if isNum then val = val or default end
            box.Text = tostring(val)
            callback(val)
        end
    end)

    y = y + 58
    return box
end

local function addToggle(name, default, callback)
    local row = Instance.new("Frame")
    row.Size = UDim2.new(1, -20, 0, 46)
    row.Position = UDim2.new(0, 10, 0, y)
    row.BackgroundTransparency = 1
    row.Parent = Content

    local label = Instance.new("TextLabel")
    label.Size = UDim2.new(0.7, 0, 1, 0)
    label.Text = name
    label.TextColor3 = Color3.fromRGB(230, 230, 230)
    label.Font = Enum.Font.Gotham
    label.TextSize = fontSizeLabel
    label.TextXAlignment = Enum.TextXAlignment.Left
    label.BackgroundTransparency = 1
    label.Parent = row

    local btn = Instance.new("TextButton")
    btn.Size = UDim2.new(0, 76, 0, 36)
    btn.Position = UDim2.new(1, -84, 0, 4)
    btn.BackgroundColor3 = default and Color3.fromRGB(0, 180, 255) or Color3.fromRGB(80, 80, 80)
    btn.Text = default and "ON" or "OFF"
    btn.TextColor3 = Color3.new(1,1,1)
    btn.Font = Enum.Font.GothamBold
    btn.TextSize = 20
    btn.Parent = row

    Instance.new("UICorner", btn).CornerRadius = UDim.new(0, 10)

    btn.MouseButton1Click:Connect(function()
        default = not default
        btn.BackgroundColor3 = default and Color3.fromRGB(0, 180, 255) or Color3.fromRGB(80, 80, 80)
        btn.Text = default and "ON" or "OFF"
        callback(default)
    end)

    y = y + 54
end

-- Build settings
addRow("Force", Settings.DashForce, true, function(v) Settings.DashForce = math.clamp(v, 50, 600) end)
addRow("Cooldown", Settings.DashCooldown, true, function(v) Settings.DashCooldown = math.clamp(v, 0.1, 5) end)
addRow("Duration", Settings.DashDuration, true, function(v) Settings.DashDuration = math.clamp(v, 0.05, 0.6) end)
addRow("Volume", Settings.SoundVolume, true, function(v) Settings.SoundVolume = math.clamp(v, 0, 10) end)

local soundBox = addRow("Sound ID", Settings.DashSoundId, false, function(v)
    Settings.DashSoundId = tostring(v):match("%d+") or "70557734865364"
    soundBox.Text = Settings.DashSoundId
end)

addToggle("Sound", Settings.EnableSound, function(v) Settings.EnableSound = v end)
addToggle("Double-Tap W", Settings.UseDoubleTapW, function(v) Settings.UseDoubleTapW = v end)

-- Keybind button
local keyRow = Instance.new("Frame")
keyRow.Size = UDim2.new(1, -20, 0, 56)
keyRow.Position = UDim2.new(0, 10, 0, y)
keyRow.BackgroundTransparency = 1
keyRow.Parent = Content

local keyBtn = Instance.new("TextButton")
keyBtn.Size = UDim2.new(1, 0, 0, 44)
keyBtn.BackgroundColor3 = Color3.fromRGB(50, 50, 70)
keyBtn.Text = "Dash Key: " .. Settings.DashKey.Name
keyBtn.TextColor3 = Color3.fromRGB(0, 255, 100)
keyBtn.Font = Enum.Font.GothamBold
keyBtn.TextSize = fontSizeInput + 2
keyBtn.Parent = keyRow

Instance.new("UICorner", keyBtn).CornerRadius = UDim.new(0, 10)

local waiting = false
keyBtn.MouseButton1Click:Connect(function()
    if waiting then return end
    waiting = true
    keyBtn.Text = "Press any key..."
    keyBtn.TextColor3 = Color3.fromRGB(255, 255, 0)
end)

UserInputService.InputBegan:Connect(function(i, gp)
    if waiting and not gp and i.KeyCode ~= Enum.KeyCode.Unknown then
        Settings.DashKey = i.KeyCode
        keyBtn.Text = "Dash Key: " .. i.KeyCode.Name
        keyBtn.TextColor3 = Color3.fromRGB(0, 255, 100)
        waiting = false
    end
end)

-- ==================== MOBILE DASH BUTTON ====================
if isMobile then
    local dashBtn = Instance.new("TextButton")
    dashBtn.Size = UDim2.new(0, 110, 0, 110)
    dashBtn.Position = UDim2.new(1, -135, 1, -260) -- Above jump button
    dashBtn.BackgroundColor3 = Color3.fromRGB(0, 170, 255)
    dashBtn.BackgroundTransparency = 0.3
    dashBtn.Text = "DASH"
    dashBtn.TextColor3 = Color3.new(1,1,1)
    dashBtn.Font = Enum.Font.GothamBold
    dashBtn.TextSize = 32
    dashBtn.Parent = ScreenGui

    Instance.new("UICorner", dashBtn).CornerRadius = UDim.new(0, 60)

    -- Hold-to-dash feedback
    dashBtn.MouseButton1Down:Connect(function()
        dashBtn.BackgroundTransparency = 0
        doDash()
    end)

    dashBtn.MouseButton1Up:Connect(function()
        dashBtn.BackgroundTransparency = 0.3
    end)

    dashBtn.TouchTap:Connect(doDash) -- Also tap works
end

-- ==================== DASH FUNCTION ====================
local lastDashTime = 0
local lastWTap = 0

local function playSound(root)
    if not Settings.EnableSound or not root then return end
    local s = Instance.new("Sound")
    s.SoundId = "rbxassetid://" .. Settings.DashSoundId
    s.Volume = Settings.SoundVolume
    s.Parent = root
    s:Play()
    s.Ended:Connect(function() s:Destroy() end)
end

function doDash()
    local now = tick()
    if now - lastDashTime < Settings.DashCooldown then return end
    local char = player.Character or player.CharacterAdded:Wait()
    local root = char:FindFirstChild("HumanoidRootPart")
    if not root then return end

    lastDashTime = now
    playSound(root)

    local bv = Instance.new("BodyVelocity")
    bv.MaxForce = Vector3.new(1e5, 0, 1e5)
    bv.Velocity = root.CFrame.LookVector * Settings.DashForce
    bv.Parent = root

    task.delay(Settings.DashDuration, function()
        if bv and bv.Parent then bv:Destroy() end
    end)
end

-- Input handling
UserInputService.InputBegan:Connect(function(input, gp)
    if gp then return end
    if Settings.UseDoubleTapW and input.KeyCode == Enum.KeyCode.W then
        local now = tick()
        if now - lastWTap < 0.35 then doDash() end
        lastWTap = now
    elseif input.KeyCode == Settings.DashKey then
        doDash()
    end
end)

player.CharacterAdded:Connect(function()
    lastDashTime = 0
    lastWTap = 0
end)

print("Ultimate Dash loaded! (CoreGui version) Mobile = DASH button | PC = Key or double-tap W")

Features & Information

remember: press enter (or return on mobile keyboard) to change the dash settings mobile not recommended in certain games features: works in most games a GUI allowing you to customize it midgame customizable keybinds, cooldowns, dash force, and sound optional double-press W to activate smooth and reliable dash uses coregui to bypass certain anti-cheats DISCLAIMER: this is 100% ai ok dont bully me ples notes: dash may work differently for each game
#dash#universal#customizable#mobile

Community Comments (11)

santaisantaiNov 28, 2025

Delta mobile ver? Yes the script is able to be used

santaisantaiNov 28, 2025

Make a gui for the script

Replying to @santai

@santai im fine with that

Replying to @exploitsoneverything

bad news: could be tomorrow

Replying to @exploitsoneverything
santaisantaiNov 29, 2025

@exploitsoneverything a m*ive W, cuz it's the weekend

Replying to @santai

@santai complete!!!!

santaisantaiNov 29, 2025

M*ive

santaisantaiNov 29, 2025

HUH?? Bigger us censored???

santaisantaiDec 2, 2025

W

@LateAlways chill dude im gonna add it

StupidestNoobOATStupidestNoobOATSep 4, 2026

jump + dash = basically a pounce simulator lmao (also kool one tho)

More Scripts for Universal Scripts