local player = game.Players.LocalPlayer local character = player.Character or player.CharacterAdded:Wait() local humanoidRootPart = character:WaitForChild("HumanoidRootPart") -- Create Speedometer GUI local screenGui = Instance.new("ScreenGui") screenGui.Parent = player:WaitForChild("PlayerGui") local frame = Instance.new("Frame") frame.Size = UDim2.new(0.2, 0, 0.1, 0) frame.Position = UDim2.new(0.4, 0, 0.85, 0) frame.BackgroundColor3 = Color3.fromRGB(30, 30, 30) frame.BackgroundTransparency = 0.3 frame.Active = true frame.Draggable = true -- Make it moveable frame.Parent = screenGui local speedText = Instance.new("TextLabel") speedText.Size = UDim2.new(1, 0, 0.7, 0) speedText.Position = UDim2.new(0, 0, 0, 0) speedText.BackgroundColor3 = Color3.fromRGB(0, 0, 0) speedText.TextColor3 = Color3.fromRGB(255, 255, 255) speedText.TextScaled = true speedText.Text = "Speed: 0" speedText.Parent = frame -- Create Toggle Button local toggleButton = Instance.new("TextButton") toggleButton.Size = UDim2.new(1, 0, 0.3, 0) toggleButton.Position = UDim2.new(0, 0, 0.7, 0) toggleButton.BackgroundColor3 = Color3.fromRGB(255, 50, 50) toggleButton.TextColor3 = Color3.fromRGB(255, 255, 255) toggleButton.TextScaled = true toggleButton.Text = "Turn OFF" toggleButton.Parent = frame local isSpeedometerOn = true -- Toggle Speedometer Visibility (Only Hide Speed Text, Keep Button) toggleButton.MouseButton1Click:Connect(function() isSpeedometerOn = not isSpeedometerOn speedText.Visible = isSpeedometerOn toggleButton.Text = isSpeedometerOn and "Turn OFF" or "Turn ON" end) -- Update Speed Every Frame local runService = game:GetService("RunService") runService.Heartbeat:Connect(function() if isSpeedometerOn and humanoidRootPart then local speed = humanoidRootPart.Velocity.Magnitude speedText.Text = "Speed: " .. math.floor(speed) end end)