
Key RequiredUniversal

local player = game.Players.LocalPlayer
local char = player.Character or player.CharacterAdded:Wait()
local humanoid = char:WaitForChild("Humanoid")
local hrp = char:WaitForChild("HumanoidRootPart")
local DASH_DISTANCE = 10
local DASH_TIME = 0.15 -- smooth dash duration
local COOLDOWN = 1
local DASH_ANIMATION_ID = "rbxassetid://18153798204" -- change if you want
local canDash = true
-- GUI
local gui = Instance.new("ScreenGui")
gui.ResetOnSpawn = false
gui.Parent = player:WaitForChild("PlayerGui")
local button = Instance.new("TextButton")
button.Size = UDim2.new(0, 150, 0, 45)
button.Position = UDim2.new(0.5, -75, 0.8, 0)
button.BackgroundColor3 = Color3.fromRGB(40, 40, 40)
button.TextColor3 = Color3.new(1, 1, 1)
button.TextScaled = true
button.Text = "Dash"
button.Parent = gui
-- load dash animation
local dashAnim = Instance.new("Animation")
dashAnim.AnimationId = DASH_ANIMATION_ID
local dashTrack = humanoid:LoadAnimation(dashAnim)
-- Smooth dash function
local function dash()
if not canDash then return end
canDash = false
-- play animation
if dashTrack then
dashTrack:Play()
end
local direction = hrp.CFrame.LookVector
local targetPos = hrp.Position + (direction * DASH_DISTANCE)
-- smooth movement (tween)
local tweenService = game:GetService("TweenService")
local tween = tweenService:Create(
hrp,
TweenInfo.new(DASH_TIME, Enum.EasingStyle.Quad, Enum.EasingDirection.Out),
{CFrame = CFrame.new(targetPos, targetPos + hrp.CFrame.LookVector)}
)
tween:Play()
-- cooldown
task.wait(COOLDOWN)
canDash = true
end
button.MouseButton1Click:Connect(dash)
-- Update character after respawn
player.CharacterAdded:Connect(function(newChar)
char = newChar
humanoid = char:WaitForChild("Humanoid")
hrp = char:WaitForChild("HumanoidRootPart")
dashTrack = humanoid:LoadAnimation(dashAnim)
end)No comments yet for this script.



