local Players = game:GetService("Players") local RunService = game:GetService("RunService") local player = Players.LocalPlayer local playerGui = player:WaitForChild("PlayerGui") -- Create ScreenGui local screenGui = Instance.new("ScreenGui") screenGui.Name = "VehicleRunToggleGui" screenGui.ResetOnSpawn = false -- keep after respawn screenGui.Parent = playerGui -- Create toggle button local button = Instance.new("TextButton") button.Name = "RunToggleButton" button.Size = UDim2.new(0, 140, 0, 50) button.Position = UDim2.new(0.5, -70, 0.8, 0) button.BackgroundColor3 = Color3.fromRGB(50, 150, 255) button.TextColor3 = Color3.new(1, 1, 1) button.Font = Enum.Font.SourceSansBold button.TextSize = 24 button.Text = "Drive: OFF" button.Parent = screenGui -- Make button draggable for mobile local dragging = false local dragInput, dragStart, startPos button.InputBegan:Connect(function(input) if input.UserInputType == Enum.UserInputType.Touch or input.UserInputType == Enum.UserInputType.MouseButton1 then dragging = true dragStart = input.Position startPos = button.Position input.Changed:Connect(function() if input.UserInputState == Enum.UserInputState.End then dragging = false end end) end end) button.InputChanged:Connect(function(input) if input.UserInputType == Enum.UserInputType.Touch or input.UserInputType == Enum.UserInputType.MouseMovement then dragInput = input end end) RunService.RenderStepped:Connect(function() if dragging and dragInput then local delta = dragInput.Position - dragStart button.Position = UDim2.new( startPos.X.Scale, startPos.X.Offset + delta.X, startPos.Y.Scale, startPos.Y.Offset + delta.Y ) end end) -- Vehicle driving control local driving = false local driveConnection local function getVehicleSeat() local character = player.Character if not character then return nil end local humanoid = character:FindFirstChildOfClass("Humanoid") if not humanoid then return nil end local seat = humanoid.SeatPart if seat and seat:IsA("VehicleSeat") then return seat end return nil end local function startDriving() if driving then return end driving = true button.Text = "Drive: ON" driveConnection = RunService.RenderStepped:Connect(function() local seat = getVehicleSeat() if seat then -- Set throttle to 1 to drive forward seat.Throttle = 1 end end) end local function stopDriving() if not driving then return end driving = false button.Text = "Drive: OFF" if driveConnection then driveConnection:Disconnect() driveConnection = nil end local seat = getVehicleSeat() if seat then seat.Throttle = 0 end end button.MouseButton1Click:Connect(function() if driving then stopDriving() else startDriving() end end) -- Handle respawn to keep driving state consistent player.CharacterAdded:Connect(function() -- Small delay to ensure Humanoid and SeatPart are ready wait(1) if driving then startDriving() else stopDriving() end end)