
KeylessUniversal

-- Auto-create Horizontal Dash Tool (no infinite cloning)
local Players = game:GetService("Players")
local RunService = game:GetService("RunService")
local player = Players.LocalPlayer
local camera = workspace.CurrentCamera
local DASH_TIME = 3
local COOLDOWN = 4
local ANIM_ID = "rbxassetid://235542946"
local canUse = true
local cooldownRemaining = 0
-- Create Tool once
local tool = Instance.new("Tool")
tool.Name = "Horizontal Dash"
tool.RequiresHandle = false
tool.CanBeDropped = false
tool.Parent = player:WaitForChild("Backpack")
-- Cooldown UI (center screen)
local gui = Instance.new("ScreenGui")
gui.Name = "DashCooldownGUI"
gui.ResetOnSpawn = false
gui.Parent = player:WaitForChild("PlayerGui")
local cooldownLabel = Instance.new("TextLabel")
cooldownLabel.Size = UDim2.new(0, 200, 0, 30)
cooldownLabel.Position = UDim2.new(0.5, -100, 0.5, -15)
cooldownLabel.BackgroundTransparency = 1
cooldownLabel.TextColor3 = Color3.fromRGB(255, 255, 255)
cooldownLabel.TextScaled = true
cooldownLabel.Visible = false
cooldownLabel.Parent = gui
local textConstraint = Instance.new("UITextSizeConstraint")
textConstraint.MaxTextSize = 18
textConstraint.MinTextSize = 12
textConstraint.Parent = cooldownLabel
-- Cooldown display
local function startCooldownDisplay(duration)
cooldownRemaining = duration
cooldownLabel.Visible = true
while cooldownRemaining > 0 do
cooldownLabel.Text = string.format("%.1f", cooldownRemaining)
task.wait(0.1)
cooldownRemaining -= 0.1
end
cooldownLabel.Visible = false
end
-- Main ability
local function activate()
if not canUse then return end
canUse = false
local char = player.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
-- Play animation
local animator = humanoid:FindFirstChildOfClass("Animator")
if not animator then
animator = Instance.new("Animator")
animator.Parent = humanoid
end
local anim = Instance.new("Animation")
anim.AnimationId = ANIM_ID
local track = animator:LoadAnimation(anim)
track:Play()
-- Lock physics
humanoid.PlatformStand = true
-- Direction: camera look, horizontal only
local look = camera.CFrame.LookVector
local direction = Vector3.new(look.X, 0, look.Z)
if direction.Magnitude > 0 then
direction = direction.Unit
end
-- Speed = WalkSpeed + 3
local speed = humanoid.WalkSpeed + 3
local bv = Instance.new("BodyVelocity")
bv.MaxForce = Vector3.new(1e9, 1e9, 1e9)
bv.Velocity = direction * speed
bv.Parent = root
-- Keep velocity stable
local connection
connection = RunService.Heartbeat:Connect(function()
if root and bv then
bv.Velocity = direction * speed
end
end)
-- Stop dash
task.delay(DASH_TIME, function()
if connection then connection:Disconnect() end
if bv then bv:Destroy() end
if track then track:Stop() end
humanoid.PlatformStand = false
-- Start cooldown AFTER dash
task.spawn(function()
startCooldownDisplay(COOLDOWN)
canUse = true
end)
end)
end
tool.Activated:Connect(activate)No comments yet for this script.



