
KeylessUniversal

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")



Delta mobile ver? Yes the script is able to be used
Make a gui for the script
@santai im fine with that
bad news: could be tomorrow
@exploitsoneverything a m*ive W, cuz it's the weekend
@santai complete!!!!
M*ive
HUH?? Bigger us censored???
W
@LateAlways chill dude im gonna add it
jump + dash = basically a pounce simulator lmao (also kool one tho)