-- [[ Rscripts Risk Notice ]] -- This script is not verified by rscripts.net. Deal with caution. -- -- Stay safe: -- • Never log in on unofficial Roblox sites or lookalike domains. -- • Real Roblox links use roblox.com (check the .com ending). -- • Treat fake Roblox login / "claim reward" pages as phishing. -- [[ End Rscripts Risk Notice ]] -- LAUNCH YOUR CAR | MONO GROUND BOOST -- F6 — автобуст -- F7 — остановка -- F8 — удержание у земли -- RightShift — меню local Players = game:GetService("Players") local RunService = game:GetService("RunService") local UIS = game:GetService("UserInputService") local player = Players.LocalPlayer local playerGui = player:WaitForChild("PlayerGui") local env = (getgenv and getgenv()) or _G if env.LaunchCarBoost then pcall(function() env.LaunchCarBoost.Stop() end) end local old = playerGui:FindFirstChild("MONO_GROUND_BOOST") if old then old:Destroy() end local state = { Running = true, Enabled = false, GroundLock = false, Multiplier = 5, SpeedLimit = 1200, BoostDuration = 3, -- Максимальная высота Chassis над найденной поверхностью GroundHeight = 5, Phase = "WAIT", LastCar = nil, BoostUntil = 0, TargetSpeed = 0, LowSince = nil, StopUntil = 0, GroundStatus = "выкл", Connections = {} } env.LaunchCarBoost = state local gui = Instance.new("ScreenGui") gui.Name = "MONO_GROUND_BOOST" gui.ResetOnSpawn = false gui.DisplayOrder = 1000 gui.Parent = playerGui local frame = Instance.new("Frame") frame.Size = UDim2.fromOffset(350, 390) frame.Position = UDim2.new(0, 25, 0.5, -195) frame.BackgroundColor3 = Color3.fromRGB(15, 17, 25) frame.BorderSizePixel = 0 frame.Active = true frame.Draggable = true frame.Parent = gui local function round(object, radius) local c = Instance.new("UICorner") c.CornerRadius = UDim.new(0, radius) c.Parent = object end round(frame, 14) local outline = Instance.new("UIStroke") outline.Color = Color3.fromRGB(158, 70, 255) outline.Thickness = 1.5 outline.Parent = frame local accent = Instance.new("Frame") accent.Size = UDim2.new(1, 0, 0, 5) accent.BackgroundColor3 = Color3.fromRGB(170, 75, 255) accent.BorderSizePixel = 0 accent.Parent = frame round(accent, 5) local function label(text, x, y, width, height, size, color) local l = Instance.new("TextLabel") l.Position = UDim2.fromOffset(x, y) l.Size = UDim2.fromOffset(width, height) l.BackgroundTransparency = 1 l.Text = text l.TextSize = size l.Font = Enum.Font.GothamBold l.TextColor3 = color or Color3.fromRGB(240, 240, 255) l.Parent = frame return l end local function button(text, x, y, width, height, color) local b = Instance.new("TextButton") b.Position = UDim2.fromOffset(x, y) b.Size = UDim2.fromOffset(width, height) b.BackgroundColor3 = color b.BorderSizePixel = 0 b.Text = text b.TextColor3 = Color3.new(1, 1, 1) b.TextSize = 14 b.Font = Enum.Font.GothamBold b.Parent = frame round(b, 8) return b end label( "MONO GROUND BOOST", 10, 10, 330, 28, 19, Color3.fromRGB(205, 160, 255) ) label( "АВТОБУСТ • УДЕРЖАНИЕ У ЗЕМЛИ", 10, 38, 330, 16, 10, Color3.fromRGB(140, 145, 165) ) local toggle = button("", 12, 62, 326, 38, Color3.fromRGB(125, 42, 62)) local minus = button("-", 12, 110, 48, 38, Color3.fromRGB(42, 45, 62)) minus.TextSize = 22 local multiplierLabel = label("", 65, 110, 220, 38, 18) local plus = button("+", 290, 110, 48, 38, Color3.fromRGB(42, 45, 62)) plus.TextSize = 22 local groundButton = button("", 12, 158, 326, 38, Color3.fromRGB(55, 58, 75)) local limitLabel = label( "Лимит скорости:", 12, 204, 145, 30, 13, Color3.fromRGB(190, 195, 215) ) limitLabel.TextXAlignment = Enum.TextXAlignment.Left local limitBox = Instance.new("TextBox") limitBox.Position = UDim2.fromOffset(165, 203) limitBox.Size = UDim2.fromOffset(173, 32) limitBox.BackgroundColor3 = Color3.fromRGB(36, 39, 54) limitBox.BorderSizePixel = 0 limitBox.TextColor3 = Color3.new(1, 1, 1) limitBox.Font = Enum.Font.GothamBold limitBox.TextSize = 14 limitBox.ClearTextOnFocus = false limitBox.Parent = frame round(limitBox, 8) local stopButton = button( "ОСТАНОВИТЬ МАШИНУ", 12, 245, 326, 38, Color3.fromRGB(180, 55, 75) ) local status = label( "Автобуст выключен", 12, 288, 326, 42, 12, Color3.fromRGB(185, 195, 215) ) status.TextWrapped = true local groundStatus = label( "Земля: выкл", 12, 329, 326, 20, 11, Color3.fromRGB(150, 170, 190) ) label( "F6 — буст | F7 — стоп | F8 — земля | RightShift — меню", 8, 359, 334, 20, 10, Color3.fromRGB(130, 135, 155) ) local function updateMenu() multiplierLabel.Text = string.format("СКОРОСТЬ ×%.1f", state.Multiplier) limitBox.Text = tostring(state.SpeedLimit) toggle.Text = state.Enabled and "АВТОБУСТ: ВКЛ" or "АВТОБУСТ: ВЫКЛ" toggle.BackgroundColor3 = state.Enabled and Color3.fromRGB(100, 55, 195) or Color3.fromRGB(125, 42, 62) groundButton.Text = state.GroundLock and "УДЕРЖАНИЕ У ЗЕМЛИ: ВКЛ" or "УДЕРЖАНИЕ У ЗЕМЛИ: ВЫКЛ" groundButton.BackgroundColor3 = state.GroundLock and Color3.fromRGB(38, 120, 105) or Color3.fromRGB(55, 58, 75) if not state.GroundLock then groundStatus.Text = "Земля: выкл" end end local function findCar() local car = workspace:FindFirstChild("StudCar") if not car or not car:IsA("Model") then return nil, nil end local chassis = car:FindFirstChild("Chassis", true) if chassis and chassis:IsA("BasePart") then return car, chassis end return car, nil end local function setEnabled(value) state.Enabled = value state.LowSince = nil if value then local _, chassis = findCar() if chassis and chassis.AssemblyLinearVelocity.Magnitude >= 5 then state.Phase = "COAST" status.Text = "Жду остановки перед следующим запуском" else state.Phase = "WAIT" status.Text = "Готов: ожидаю запуск" end else state.Phase = "WAIT" status.Text = "Автобуст выключен" end updateMenu() end local function setGround(value) state.GroundLock = value updateMenu() end local function stopCar() local _, chassis = findCar() state.Enabled = false state.Phase = "WAIT" state.LowSince = nil updateMenu() if not chassis then status.Text = "Машина или Chassis не найдены" return end state.StopUntil = os.clock() + 1 status.Text = "Пытаюсь остановить машину на 1 секунду" pcall(function() chassis.AssemblyLinearVelocity = Vector3.zero chassis.AssemblyAngularVelocity = Vector3.zero end) end table.insert(state.Connections, toggle.MouseButton1Click:Connect(function() setEnabled(not state.Enabled) end)) table.insert(state.Connections, minus.MouseButton1Click:Connect(function() state.Multiplier = math.max(1, state.Multiplier - 0.5) updateMenu() end)) table.insert(state.Connections, plus.MouseButton1Click:Connect(function() state.Multiplier = math.min(8, state.Multiplier + 0.5) updateMenu() end)) table.insert(state.Connections, groundButton.MouseButton1Click:Connect(function() setGround(not state.GroundLock) end)) table.insert(state.Connections, limitBox.FocusLost:Connect(function() local value = tonumber(limitBox.Text) if value then state.SpeedLimit = math.floor(math.clamp(value, 100, 5000)) end updateMenu() end)) table.insert(state.Connections, stopButton.MouseButton1Click:Connect(stopCar)) table.insert(state.Connections, UIS.InputBegan:Connect(function(input) if UIS:GetFocusedTextBox() then return end if input.KeyCode == Enum.KeyCode.F6 then setEnabled(not state.Enabled) elseif input.KeyCode == Enum.KeyCode.F7 then stopCar() elseif input.KeyCode == Enum.KeyCode.F8 then setGround(not state.GroundLock) elseif input.KeyCode == Enum.KeyCode.RightShift then frame.Visible = not frame.Visible end end)) function state.Stop() if not state.Running then return end state.Running = false state.Enabled = false state.GroundLock = false for _, connection in ipairs(state.Connections) do connection:Disconnect() end gui:Destroy() end -- Ищем физическую поверхность под машиной. local rayParams = RaycastParams.new() rayParams.FilterType = Enum.RaycastFilterType.Exclude rayParams.IgnoreWater = true rayParams.RespectCanCollide = true local function keepNearGround(car, chassis) local excluded = {car} if player.Character then table.insert(excluded, player.Character) end rayParams.FilterDescendantsInstances = excluded local result = workspace:Raycast( chassis.Position, Vector3.new(0, -100, 0), rayParams ) if not result then groundStatus.Text = "Земля: поверхность не найдена" return end local distance = (chassis.Position - result.Position).Magnitude local velocity = chassis.AssemblyLinearVelocity groundStatus.Text = string.format("Земля найдена | высота %.1f", distance) -- Не телепортируем машину: гасим подъём и мягко -- направляем вниз, если она выше заданной высоты. local vertical = velocity.Y if vertical > 0 then vertical = 0 end if distance > state.GroundHeight + 1 then vertical = math.min(vertical, -math.min((distance - state.GroundHeight) * 3, 60)) end if vertical ~= velocity.Y then chassis.AssemblyLinearVelocity = Vector3.new( velocity.X, vertical, velocity.Z ) end end table.insert(state.Connections, RunService.Heartbeat:Connect(function() if not state.Running then return end local now = os.clock() local car, chassis = findCar() if now < state.StopUntil then if chassis and not chassis.Anchored then pcall(function() chassis.AssemblyLinearVelocity = Vector3.zero chassis.AssemblyAngularVelocity = Vector3.zero end) end return end if not car or not chassis then if state.Enabled then state.LastCar = nil state.Phase = "WAIT" state.LowSince = nil status.Text = "Ожидаю машину" end if state.GroundLock then groundStatus.Text = "Земля: машина не найдена" end return end if car ~= state.LastCar then state.LastCar = car state.Phase = "WAIT" state.LowSince = nil end if chassis.Anchored then if state.Enabled then state.Phase = "WAIT" status.Text = "Машина закреплена — ожидаю запуск" end if state.GroundLock then groundStatus.Text = "Земля: машина закреплена" end return end local velocity = chassis.AssemblyLinearVelocity local speed = velocity.Magnitude if state.Enabled then if state.Phase == "WAIT" then if speed >= 40 then local target = math.min( speed * state.Multiplier, state.SpeedLimit ) state.TargetSpeed = target state.BoostUntil = now + state.BoostDuration state.Phase = "BOOST" state.LowSince = nil local ok, err = pcall(function() chassis.AssemblyLinearVelocity = velocity.Unit * target end) if not ok then state.Phase = "COAST" status.Text = "Ошибка изменения скорости" warn("[MONO GROUND BOOST]", err) end else status.Text = string.format( "Готов: ожидаю запуск | скорость %.0f", speed ) end elseif state.Phase == "BOOST" then if now >= state.BoostUntil then state.Phase = "COAST" state.LowSince = nil status.Text = "Буст завершён — машина движется сама" elseif speed < 5 then state.LowSince = state.LowSince or now if now - state.LowSince >= 0.3 then state.Phase = "COAST" state.LowSince = nil status.Text = "Машина остановилась — буст выключен" end else state.LowSince = nil local target = math.min(state.TargetSpeed, state.SpeedLimit) if speed < target or speed > state.SpeedLimit then pcall(function() chassis.AssemblyLinearVelocity = velocity.Unit * target end) end status.Text = string.format( "АВТОБУСТ ×%.1f | %.1f сек. | %.0f", state.Multiplier, math.max(0, state.BoostUntil - now), speed ) end elseif state.Phase == "COAST" then if speed < 5 then state.LowSince = state.LowSince or now if now - state.LowSince >= 2 then state.Phase = "WAIT" state.LowSince = nil status.Text = "Остановилась — готов к новому запуску" end else state.LowSince = nil status.Text = string.format( "Буст выключен | скорость %.0f", speed ) end end end -- Применяем после буста, чтобы он не возвращал подъём вверх. if state.GroundLock then local ok, err = pcall(keepNearGround, car, chassis) if not ok then groundStatus.Text = "Земля: ошибка проверки" warn("[MONO GROUND BOOST]", err) end end end)) updateMenu()