local Players = game:GetService("Players") local UserInputService = game:GetService("UserInputService") local TweenService = game:GetService("TweenService") local player = Players.LocalPlayer local playerGui = player:WaitForChild("PlayerGui") local screenGui = Instance.new("ScreenGui") screenGui.Name = "DashGui" screenGui.Parent = playerGui local dashButton = Instance.new("TextButton") dashButton.Name = "DashButton" dashButton.Size = UDim2.new(0, 100, 0, 50) dashButton.Position = UDim2.new(0, 50, 0, 100) dashButton.Text = "DASH" dashButton.TextColor3 = Color3.new(1, 1, 1) dashButton.BackgroundColor3 = Color3.new(0.2, 0.5, 1) dashButton.BorderSizePixel = 2 dashButton.BorderColor3 = Color3.new(0, 0, 0) dashButton.Font = Enum.Font.SourceSansBold dashButton.TextSize = 18 dashButton.Parent = screenGui local corner = Instance.new("UICorner") corner.CornerRadius = UDim.new(0, 8) corner.Parent = dashButton local dragging = false local dragStart = nil local startPos = nil local function dashForward() local character = player.Character if not character then return end local humanoidRootPart = character:FindFirstChild("HumanoidRootPart") if not humanoidRootPart then return end local lookDirection = humanoidRootPart.CFrame.LookVector local dashDistance = 20 local currentPosition = humanoidRootPart.CFrame.Position local newPosition = currentPosition + (lookDirection * dashDistance) local bodyParts = {} for _, part in pairs(character:GetChildren()) do if part:IsA("BasePart") and part.Name ~= "HumanoidRootPart" then bodyParts[part] = part.CanCollide part.CanCollide = false end end humanoidRootPart.CFrame = CFrame.new(newPosition, newPosition + lookDirection) wait(0.1) for part, originalCanCollide in pairs(bodyParts) do if part and part.Parent then part.CanCollide = originalCanCollide end end local originalSize = dashButton.Size local scaleInfo = TweenInfo.new(0.1, Enum.EasingStyle.Quad, Enum.EasingDirection.Out) local scaleTween = TweenService:Create(dashButton, scaleInfo, {Size = UDim2.new(0, 90, 0, 45)}) scaleTween:Play() scaleTween.Completed:Connect(function() local returnTween = TweenService:Create(dashButton, scaleInfo, {Size = originalSize}) returnTween:Play() end) end dashButton.MouseButton1Click:Connect(dashForward) 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 end end) dashButton.InputChanged:Connect(function(input) if dragging and (input.UserInputType == Enum.UserInputType.MouseMovement or input.UserInputType == Enum.UserInputType.Touch) 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) dashButton.InputEnded:Connect(function(input) if input.UserInputType == Enum.UserInputType.MouseButton1 or input.UserInputType == Enum.UserInputType.Touch then dragging = false end end) UserInputService.InputBegan:Connect(function(input, gameProcessed) if gameProcessed then return end if input.KeyCode == Enum.KeyCode.F then dashForward() end end) dashButton.MouseEnter:Connect(function() local hoverTween = TweenService:Create(dashButton, TweenInfo.new(0.2), {BackgroundColor3 = Color3.new(0.3, 0.6, 1)}) hoverTween:Play() end) dashButton.MouseLeave:Connect(function() local leaveTween = TweenService:Create(dashButton, TweenInfo.new(0.2), {BackgroundColor3 = Color3.new(0.2, 0.5, 1)}) leaveTween:Play() end)