Browse
Script Types
Tools
Community
Reach players with keyless, universal, or place-specific scripts.


Corunohub v27 is an open-source, no-key San Diego Border Roleplay script focused mainly on vehicle modification and driving utilities.
This is not an Auto Farm hub. It does not automatically complete border checks, farm money, or play a Border Patrol job for you. Its strongest tools change how your current vehicle drives: fuel usage, speed limits, PIT resistance, alternate speed modes, and vehicle boost information.
That focus fits San Diego Border Roleplay well because vehicles are a major part of moving between the city, checkpoint, and different team activities.
Infinite Fuel attempts to prevent your current vehicle from running out of fuel.
This is useful during longer driving sessions when you do not want a chase, patrol, or RP trip to stop because the fuel system reaches zero.
It can be especially helpful when:
driving between distant areas;
staying in a vehicle for a long patrol;
testing higher speed settings;
following another vehicle for an extended period.
The function should not be treated as permanent vehicle data. If the game validates fuel on the server, the displayed amount and the actual usable fuel may behave differently.
Remove Border Speed Limit targets the speed restriction applied around the border area.
Normally, a forced limit can slow a vehicle even when it is capable of travelling faster. Removing that restriction lets the car use more of its available speed while driving through supported areas.
This is different from directly increasing the vehicle's maximum speed:
Remove Border Speed Limit removes a restriction.
Car Speed changes the vehicle's speed value.
Alt Speed gives you a separate speed mode that can be activated when needed.
Combining all three immediately can make the vehicle difficult to control, so test them separately first.
Anti PIT is designed for situations where another vehicle hits the side or rear of your car and tries to spin it around.
The feature attempts to reduce how easily your vehicle loses control during contact. This can be useful during vehicle chases, crowded checkpoint situations, or when another driver repeatedly pushes into your car.
Anti PIT does not make the vehicle completely immovable. Strong collisions, walls, extreme speed, or unusual vehicle physics can still flip or rotate the car.
Ignore AntiPIT Safe Cap removes or ignores the safer limit used by the Anti PIT configuration.
This gives the anti-PIT behaviour more freedom, but it may also make the vehicle physics less natural. Use it only when the standard Anti PIT setting is not strong enough.
A higher anti-PIT effect does not automatically mean better handling. Too much correction can make turns, jumps, or collisions behave strangely.
Corunohub includes several controls for an alternative speed setup:
Vehicle Speed on Alt
Vehicle Alt Speed
Alt Speed
Alt Speed Amount
Alt Hotkey
Together, these let you keep normal driving behaviour most of the time and switch to a faster configured mode when needed.
For example, you can drive normally around the checkpoint and use the alternate speed only when travelling across a long road or trying to catch another vehicle.
The Alt Speed Amount controls how strong that second speed setting is, while Alt Hotkey determines how you activate it.
On mobile, hotkey-based controls may work differently depending on how Corunohub exposes the option in its interface.
Show Boost for Current Vehicle displays boost-related information for the vehicle you are currently using.
This is useful when different cars have different acceleration or boost behaviour and you want to understand what the current vehicle supports before changing other speed settings.
It is an information tool rather than an automatic driving feature.
Although Corunohub is mostly vehicle-focused, it also includes No Recoil.
This reduces or removes the movement that normally pushes your aim after firing a supported weapon. It can make repeated shots easier to control.
The script does not list Silent Aim, Infinite Ammo, Rapid Fire, or Auto Shoot, so those features should not be expected from this version.
Infinite Stamina targets the player's stamina system so running is less limited by normal stamina drain.
This is useful after leaving a vehicle and moving around the border area on foot.
It complements the vehicle tools rather than replacing them: most of Corunohub's main value still comes from modifying the car.
Language Selection changes the language used by the Corunohub interface where supported.
Unload Interface closes the hub and attempts to remove its active interface or connections. Use it when you want to stop the script without immediately leaving the server.
Because the hub is tagged as Mobile Friendly, its main interface is intended to remain usable on phones as well as PC. Hotkey-specific features may still be easier to control with a keyboard.
Use Corunohub when your main goal is changing how your vehicle behaves.
A practical setup is:
Infinite Fuel for long drives;
Anti PIT for better stability during vehicle contact;
Remove Border Speed Limit for unrestricted driving;
Alt Speed for a temporary faster mode;
Show Boost to check your current vehicle;
Infinite Stamina when moving around on foot.
You do not need every feature active at the same time. Start with fuel and one speed option, then add Anti PIT only after checking that the vehicle still handles normally.
Open San Diego Border Roleplay and wait for your character to load.
Spawn the vehicle you want to modify.
Copy the Corunohub v27 code from the script block.
Open a compatible Roblox executor.
Paste the script and press Execute.
Wait for the Corunohub interface to appear.
Enable Infinite Fuel first and check whether the current vehicle is detected.
Test Remove Border Speed Limit or Car Speed separately.
Enable Anti PIT only after confirming normal steering still works.
Configure Alt Speed Amount before using the alternate-speed control.
Use Unload Interface when you want to disable the hub.
Execute the script only once per server. Running multiple copies can create overlapping vehicle-speed or input connections.
San Diego Border Roleplay is under active development and its Roblox description says updates are released regularly. Changes to vehicles, fuel, speed restrictions, weapons, or character systems can break individual Corunohub functions even when the menu still loads.
Possible signs of an outdated version include:
Infinite Fuel changes the display but the car still runs out;
the border speed restriction returns immediately;
Anti PIT works on one vehicle but not another;
Alt Speed stops after switching cars;
the hub cannot detect the current vehicle;
No Recoil works with only some weapons.
The game explicitly prohibits exploiting and cheating, so using third-party scripts can lead to moderation or account penalties.
Corunohub being open source means its code can be inspected, but that alone does not guarantee safety. Check the exact code and any remote files it loads before running it.
This script loads code from an external source. Review the URL and understand what it does before running it in Roblox.
1local Players = game:GetService("Players")2local CollectionService = game:GetService("CollectionService")3local ReplicatedStorage = game:GetService("ReplicatedStorage")4local RunService = game:GetService("RunService")5local StarterGui = game:GetService("StarterGui")6local TweenService = game:GetService("TweenService")7local UserInputService = game:GetService("UserInputService")8local Workspace = game:GetService("Workspace")910local player = Players.LocalPlayer11local playerGui = player:WaitForChild("PlayerGui")1213if _G.CarunoHubUI and type(_G.CarunoHubUI.Destroy) == "function" then14 pcall(_G.CarunoHubUI.Destroy)15end1617local oldGui = playerGui:FindFirstChild("CarunoHubUI")18if oldGui then19 oldGui:Destroy()20end2122local COLORS = {23 Void = Color3.fromRGB(2, 2, 3),24 Background = Color3.fromRGB(6, 6, 7),25 Panel = Color3.fromRGB(11, 11, 12),26 PanelLight = Color3.fromRGB(16, 16, 18),27 PanelHover = Color3.fromRGB(23, 23, 26),28 PanelActive = Color3.fromRGB(30, 30, 34),29 Stroke = Color3.fromRGB(52, 52, 58),30 StrokeSoft = Color3.fromRGB(29, 29, 33),31 Text = Color3.fromRGB(247, 247, 249),32 Subtle = Color3.fromRGB(170, 170, 178),33 Muted = Color3.fromRGB(116, 116, 124),34 Faint = Color3.fromRGB(72, 72, 80),35 Accent = Color3.fromRGB(247, 247, 249),36 AccentDark = Color3.fromRGB(148, 148, 156),37 Black = Color3.fromRGB(4, 4, 5),38 Green = Color3.fromRGB(88, 214, 134),39 Amber = Color3.fromRGB(228, 178, 84),40 Red = Color3.fromRGB(228, 88, 88),41}4243local TWEEN_FAST = TweenInfo.new(0.12, Enum.EasingStyle.Quad, Enum.EasingDirection.Out)44local TWEEN_NORMAL = TweenInfo.new(0.22, Enum.EasingStyle.Quart, Enum.EasingDirection.Out)45local TWEEN_SLOW = TweenInfo.new(0.40, Enum.EasingStyle.Quint, Enum.EasingDirection.Out)46local TWEEN_POP = TweenInfo.new(0.28, Enum.EasingStyle.Quint, Enum.EasingDirection.Out)4748local connections = {}49local pages = {}50local navButtons = {}51local listeners = {}52local values = {53 altSpeed = 60,54 vehicleAltSpeed = 200,55 vehicleAltRisky = false,56 language = (type(_G.CarunoHubLanguage) == "string" and _G.CarunoHubLanguage) or "English",57}5859local currentLanguage = values.language60local TEXT = {61 ["Scripts"] = { Russian = "Скрипты", Spanish = "Scripts" },62 ["Physics Ram"] = { Russian = "Физический таран", Spanish = "Ariete físico" },63 ["Vehicle"] = { Russian = "Транспорт", Spanish = "Vehículo" },64 ["Player"] = { Russian = "Персонаж", Spanish = "Jugador" },65 ["Combat"] = { Russian = "Оружие", Spanish = "Combate" },66 ["Robbery"] = { Russian = "Ограбления", Spanish = "Robos" },67 ["Vehicle Anti-Collision"] = {68 Russian = "Антиколлизия транспорта",69 Spanish = "Anticolisión de vehículos",70 },71 ["Remove Border Speed Limit"] = {72 Russian = "Без лимита на таможне",73 Spanish = "Sin límite en la frontera",74 },75 ["Infinite Fuel"] = { Russian = "Бесконечное топливо", Spanish = "Combustible infinito" },76 ["Anti PIT"] = { Russian = "Защита от подрезания", Spanish = "Anti PIT" },77 ["Alt Speed"] = { Russian = "Скорость на Alt", Spanish = "Velocidad con Alt" },78 ["Vehicle Speed on Alt"] = {79 Russian = "Скорость транспорта на Alt",80 Spanish = "Velocidad del vehículo con Alt",81 },82 ["Vehicle Alt Speed"] = {83 Russian = "Скорость транспорта на Alt",84 Spanish = "Velocidad del vehículo con Alt",85 },86 ["Infinite Stamina"] = { Russian = "Бесконечная стамина", Spanish = "Resistencia infinita" },87 ["No Recoil"] = { Russian = "Без отдачи", Spanish = "Sin retroceso" },88 ["Auto Farm"] = { Russian = "Автофарм", Spanish = "Auto farm" },89 ["Start"] = { Russian = "Запустить", Spanish = "Iniciar" },90 ["Stop"] = { Russian = "Остановить", Spanish = "Detener" },91 ["Run once"] = { Russian = "Запустить один раз", Spanish = "Ejecutar una vez" },92 ["Confirm"] = { Russian = "Подтвердить", Spanish = "Confirmar" },93 ["Executed"] = { Russian = "Запущено", Spanish = "Ejecutado" },94 ["Failed"] = { Russian = "Ошибка", Spanish = "Error" },95 ["Executor required"] = { Russian = "Нужен executor", Spanish = "Requiere executor" },96 ["Settings"] = { Russian = "Настройки", Spanish = "Ajustes" },97 ["Language"] = { Russian = "Язык", Spanish = "Idioma" },98 ["Background"] = { Russian = "Фон", Spanish = "Fondo" },99 ["Compact mode"] = { Russian = "Компактный режим", Spanish = "Modo compacto" },100 ["Unload interface"] = { Russian = "Выгрузить интерфейс", Spanish = "Cerrar interfaz" },101 ["Unload"] = { Russian = "Выгрузить", Spanish = "Cerrar" },102}103104local function translate(key)105 local entry = TEXT[key]106 if not entry or currentLanguage == "English" then107 return key108 end109 return entry[currentLanguage] or key110end111112local function connect(signal, callback)113 local connection = signal:Connect(callback)114 table.insert(connections, connection)115 return connection116end117118local function tween(instance, properties, tweenInfo)119 local animation = TweenService:Create(instance, tweenInfo or TWEEN_FAST, properties)120 animation:Play()121 return animation122end123124local function create(className, properties, children)125 local instance = Instance.new(className)126127 for property, value in pairs(properties or {}) do128 instance[property] = value129 end130131 for _, child in ipairs(children or {}) do132 child.Parent = instance133 end134135 return instance136end137138local function corner(radius)139 return create("UICorner", {140 CornerRadius = UDim.new(0, radius),141 })142end143144local function stroke(color, thickness, transparency)145 return create("UIStroke", {146 Color = color or COLORS.Stroke,147 Thickness = thickness or 1,148 Transparency = transparency or 0,149 ApplyStrokeMode = Enum.ApplyStrokeMode.Border,150 })151end152153local function padding(left, right, top, bottom)154 return create("UIPadding", {155 PaddingLeft = UDim.new(0, left or 0),156 PaddingRight = UDim.new(0, right or 0),157 PaddingTop = UDim.new(0, top or 0),158 PaddingBottom = UDim.new(0, bottom or 0),159 })160end161162local UI = {}163164function UI.gradient(rotation, colorSequence, transparencySequence)165 local instance = create("UIGradient", { Rotation = rotation or 0 })166 if colorSequence then167 instance.Color = colorSequence168 end169 if transparencySequence then170 instance.Transparency = transparencySequence171 end172 return instance173end174175function UI.dot(parent, diameter, color)176 return create("Frame", {177 Name = "Dot",178 Size = UDim2.fromOffset(diameter, diameter),179 BackgroundColor3 = color,180 BorderSizePixel = 0,181 Parent = parent,182 }, {183 corner(math.ceil(diameter / 2)),184 })185end186187function UI.label(parent, props)188 props.BackgroundTransparency = 1189 props.Parent = parent190 return create("TextLabel", props)191end192193function UI.hover(button, enter, leave)194 connect(button.MouseEnter, enter)195 connect(button.MouseLeave, leave)196end197198local function emit(name, value)199 values[name] = value200201 if listeners[name] then202 for _, callback in ipairs(listeners[name]) do203 task.spawn(callback, value)204 end205 end206end207208local VehicleUtil209do210 local ok, module = pcall(function()211 return require(212 ReplicatedStorage213 :WaitForChild("SharedModules", 10)214 :WaitForChild("VehicleUtil", 10)215 )216 end)217 if ok and type(module) == "table" then218 VehicleUtil = module219 end220end221222local speedSaved = setmetatable({}, { __mode = "k" })223local altHeld = false224225local STUDS_PER_MPH = 1.6226227local vehicleSpeedWarned = false228local function warnVehicleSpeedOnce()229 if vehicleSpeedWarned then230 return231 end232 vehicleSpeedWarned = true233 warn("[CARUNOHUB] Vehicle Speed: vehicle model not resolved (VehicleUtil / Workspace.Vehicles)")234end235236local RAM_SOURCE = [==[local Players = game:GetService("Players")237local ReplicatedStorage = game:GetService("ReplicatedStorage")238local ContextActionService = game:GetService("ContextActionService")239local RunService = game:GetService("RunService")240local Workspace = game:GetService("Workspace")241242local Player = Players.LocalPlayer243local Vehicles = Workspace:WaitForChild("Vehicles")244local VehicleUtil = require(ReplicatedStorage.SharedModules.VehicleUtil)245local RequestPitRemote = ReplicatedStorage246 :WaitForChild("__remotes")247 :WaitForChild("VehicleService")248 :WaitForChild("RequestPitManeuver")249250local env = (getgenv and getgenv()) or _G251local ACTION_NAME = "__VehiclePhysRamV9"252253for _, name in ipairs({254 "VehicleLaunchCleanup", "VehicleRamV7Cleanup",255 "VehiclePhysRamCleanup", "VehicleRamHammerCleanup",256 "VehiclePitRamCleanup"257}) do258 if type(env[name]) == "function" then259 pcall(env[name])260 end261end262263local CONFIG = {264 MaxTargetDistance = 150,265 RamSpeed = 2000,266 MassMultiplier = 100000,267 SpinSpeed = 55,268 RepositionDistance = 16,269 RearGap = 2,270 PitInterval = 1.05,271 SimulationRadius = 5000,272 ReturnLift = 3.5,273 LiftFrames = 10,274 ExactFrames = 60,275 SettleFrames = 12,276}277278local running = true279local attacking = false280local restoring = false281local ownVehicle, ownRoot282local targetVehicle, targetRoot283local savedState284local savedRootProps285local attackConnection286local pitTimer = 0287local attackSide = 1288local didInitialPlace = false289290local function boostSimulation()291 pcall(function()292 if type(setsimulationradius) == "function" then293 setsimulationradius(CONFIG.SimulationRadius, CONFIG.SimulationRadius)294 elseif type(sethiddenproperty) == "function" then295 sethiddenproperty(Player, "SimulationRadius", CONFIG.SimulationRadius)296 sethiddenproperty(Player, "MaximumSimulationRadius", CONFIG.SimulationRadius)297 end298 end)299end300301local function getDrivenVehicle()302 local character = Player.Character303 local humanoid = character and character:FindFirstChildOfClass("Humanoid")304 if not humanoid then305 return nil, nil306 end307 local vehicle = VehicleUtil:GetHumanoidDrivenVehicle(humanoid)308 if not vehicle then309 return nil, nil310 end311 return vehicle, VehicleUtil:GetVehicleRoot(vehicle)312end313314local function findNearestVehicle(sourceVehicle, sourceRoot)315 local bestVehicle, bestRoot316 local bestDistance = CONFIG.MaxTargetDistance317 for _, vehicle in ipairs(Vehicles:GetChildren()) do318 if vehicle:IsA("Model") and vehicle ~= sourceVehicle then319 local root = VehicleUtil:GetVehicleRoot(vehicle)320 if root then321 local distance = (root.Position - sourceRoot.Position).Magnitude322 if distance < bestDistance then323 bestDistance = distance324 bestVehicle = vehicle325 bestRoot = root326 end327 end328 end329 end330 return bestVehicle, bestRoot331end332333local function isTargetOccupied(vehicle)334 local occupants = VehicleUtil:GetOccupantCharactersOfVehicle(vehicle)335 if type(occupants) == "table" then336 return next(occupants) ~= nil337 end338 return occupants ~= nil339end340341local function createSavedState(vehicle, root)342 local pivot = vehicle:GetPivot()343 local state = { Vehicle = vehicle, Root = root, Pivot = pivot, Parts = {} }344 for _, object in ipairs(vehicle:GetDescendants()) do345 if object:IsA("BasePart") then346 state.Parts[object] = {347 LocalCFrame = pivot:ToObjectSpace(object.CFrame),348 CanCollide = object.CanCollide,349 CanTouch = object.CanTouch,350 CanQuery = object.CanQuery,351 Massless = object.Massless,352 CustomPhysicalProperties = object.CustomPhysicalProperties,353 }354 end355 end356 return state357end358359local function zeroPart(part)360 part.AssemblyLinearVelocity = Vector3.zero361 part.AssemblyAngularVelocity = Vector3.zero362end363364local function setCollision(state, enabled)365 for part, properties in pairs(state.Parts) do366 if part and part.Parent then367 pcall(function()368 if enabled then369 part.CanCollide = properties.CanCollide370 part.CanTouch = properties.CanTouch371 part.CanQuery = properties.CanQuery372 part.Massless = properties.Massless373 part.CustomPhysicalProperties = properties.CustomPhysicalProperties374 else375 part.CanCollide = false376 part.CanTouch = false377 end378 end)379 end380 end381end382383local function placeSavedState(state, pivot)384 if not state.Vehicle or not state.Vehicle.Parent then385 return false386 end387 pcall(function()388 state.Vehicle:PivotTo(pivot)389 end)390 for part, properties in pairs(state.Parts) do391 if part and part.Parent then392 pcall(function()393 part.CFrame = pivot * properties.LocalCFrame394 zeroPart(part)395 end)396 end397 end398 return true399end400401local function inflateMass(root)402 savedRootProps = root.CustomPhysicalProperties403 local current = root.CurrentPhysicalProperties404 local baseDensity = current and current.Density or 1405 pcall(function()406 root.Massless = false407 root.CustomPhysicalProperties = PhysicalProperties.new(408 baseDensity * CONFIG.MassMultiplier,409 0.3, 0, 100, 100410 )411 end)412end413414local function restoreMass(root)415 if root and root.Parent then416 pcall(function()417 root.CustomPhysicalProperties = savedRootProps418 end)419 end420 savedRootProps = nil421end422423local function sendPitRequest()424 if not ownVehicle or not targetVehicle or not RequestPitRemote then425 return426 end427 pcall(function()428 RequestPitRemote:FireServer(ownVehicle, targetVehicle)429 end)430end431432local function computeApproachCFrame()433 local look = targetRoot.CFrame.LookVector434 local right = targetRoot.CFrame.RightVector435 local up = targetRoot.CFrame.UpVector436 local size = targetRoot.Size437 local contact = targetRoot.Position438 - look * (size.Z * 0.5 * 0.85)439 + right * attackSide * (size.X * 0.5)440 local position = contact - look * (ownRoot.Size.Z * 0.5 + CONFIG.RearGap)441 return CFrame.lookAt(position, position + look, up)442end443444local function updateRam(deltaTime)445 if not attacking then446 return447 end448 if not ownVehicle or not ownVehicle.Parent449 or not ownRoot or not ownRoot.Parent450 or not targetVehicle or not targetVehicle.Parent451 or not targetRoot or not targetRoot.Parent then452 return453 end454455 if not didInitialPlace then456 pcall(function()457 ownVehicle:PivotTo(computeApproachCFrame())458 end)459 didInitialPlace = true460 end461462 local distance = (ownRoot.Position - targetRoot.Position).Magnitude463 local reach = targetRoot.Size.Z * 0.5 + ownRoot.Size.Z * 0.5464 if distance > reach + CONFIG.RepositionDistance then465 pcall(function()466 ownVehicle:PivotTo(computeApproachCFrame())467 end)468 end469470 local aim = targetRoot.Position471 - targetRoot.CFrame.LookVector * (targetRoot.Size.Z * 0.5 * 0.85)472 + targetRoot.CFrame.RightVector * attackSide * (targetRoot.Size.X * 0.4)473 local direction = aim - ownRoot.Position474 direction = direction.Magnitude > 0.001 and direction.Unit or targetRoot.CFrame.LookVector475476 pcall(function()477 ownRoot.AssemblyLinearVelocity =478 direction * CONFIG.RamSpeed + targetRoot.AssemblyLinearVelocity479 ownRoot.AssemblyAngularVelocity =480 targetRoot.CFrame.UpVector * attackSide * CONFIG.SpinSpeed481 end)482483 pitTimer = pitTimer + deltaTime484 if pitTimer >= CONFIG.PitInterval then485 pitTimer = 0486 sendPitRequest()487 attackSide = -attackSide488 end489end490491local function clearState()492 ownVehicle, ownRoot = nil, nil493 targetVehicle, targetRoot = nil, nil494 savedState = nil495 pitTimer = 0496 didInitialPlace = false497end498499local function restoreVehicle()500 if restoring or not savedState then501 return502 end503 restoring = true504 restoreMass(ownRoot)505506 local state = savedState507 local exactPivot = state.Pivot508 local liftedPivot =509 CFrame.new(exactPivot.Position + Vector3.new(0, CONFIG.ReturnLift, 0))510 * exactPivot.Rotation511512 task.spawn(function()513 setCollision(state, false)514 for _ = 1, CONFIG.LiftFrames do515 if not placeSavedState(state, liftedPivot) then break end516 RunService.Heartbeat:Wait()517 end518 for _ = 1, CONFIG.ExactFrames do519 if not placeSavedState(state, exactPivot) then break end520 RunService.Heartbeat:Wait()521 end522 setCollision(state, true)523 for _ = 1, CONFIG.SettleFrames do524 if not placeSavedState(state, exactPivot) then break end525 RunService.Heartbeat:Wait()526 end527 restoring = false528 clearState()529 end)530end531532local function stopAttack()533 if not attacking then534 return535 end536 attacking = false537 if attackConnection then538 attackConnection:Disconnect()539 attackConnection = nil540 end541 restoreVehicle()542end543544local function startAttack()545 if attacking or restoring then546 return547 end548 boostSimulation()549550 local vehicle, root = getDrivenVehicle()551 if not vehicle or not root then552 warn("[CARUNOHUB Ram] Sit in the driver seat first")553 return554 end555556 local nearest, nearestRoot = findNearestVehicle(vehicle, root)557 if not nearest or not nearestRoot then558 warn("[CARUNOHUB Ram] No nearby vehicle")559 return560 end561562 ownVehicle, ownRoot = vehicle, root563 targetVehicle, targetRoot = nearest, nearestRoot564 savedState = createSavedState(vehicle, root)565 didInitialPlace = false566 inflateMass(root)567568 local relative = root.Position - nearestRoot.Position569 attackSide = relative:Dot(nearestRoot.CFrame.RightVector) < 0 and 1 or -1570 pitTimer = CONFIG.PitInterval571 attacking = true572 attackConnection = RunService.PreSimulation:Connect(updateRam)573574 warn("[CARUNOHUB Ram] Target: " .. nearest.Name575 .. (isTargetOccupied(nearest) and " (occupied)" or " (empty)"))576end577578local function handleAlt(_, inputState)579 if inputState == Enum.UserInputState.Begin then580 startAttack()581 elseif inputState == Enum.UserInputState.End582 or inputState == Enum.UserInputState.Cancel then583 stopAttack()584 end585 return Enum.ContextActionResult.Sink586end587588ContextActionService:BindActionAtPriority(589 ACTION_NAME, handleAlt, false, 9999,590 Enum.KeyCode.LeftAlt, Enum.KeyCode.RightAlt591)592593task.spawn(function()594 while running do595 boostSimulation()596 task.wait(0.2)597 end598end)599600env.VehiclePhysRamCleanup = function()601 if not running then602 return603 end604 running = false605 ContextActionService:UnbindAction(ACTION_NAME)606 stopAttack()607 env.VehiclePhysRamCleanup = nil608end609610boostSimulation()611]==]612613local COLLISION_SOURCE = [==[local Players = game:GetService("Players")614local Workspace = game:GetService("Workspace")615local env = (getgenv and getgenv()) or _G616617for _, name in ipairs({618 "VehicleGhostCleanup",619 "VehicleOnlyCollisionCleanup",620 "VehicleCollisionOnlyCleanup",621}) do622 if type(env[name]) == "function" then623 pcall(env[name])624 end625end626627local player = Players.LocalPlayer628local running = true629local constraints = {}630631local function destroyConstraint(constraint)632 constraints[constraint] = nil633 if constraint and constraint.Parent then634 constraint:Destroy()635 end636end637638local function clearConstraints()639 for constraint in pairs(constraints) do640 pcall(destroyConstraint, constraint)641 end642 table.clear(constraints)643end644645local function getVehiclesFolder()646 return Workspace:FindFirstChild("Vehicles")647end648649local function getCurrentVehicle()650 local character = player.Character651 local humanoid = character and character:FindFirstChildOfClass("Humanoid")652 local seat = humanoid and humanoid.SeatPart653 local vehicles = getVehiclesFolder()654 if not seat or not seat:IsA("VehicleSeat") or not vehicles then655 return nil656 end657658 local object = seat659 while object and object.Parent ~= vehicles do660 object = object.Parent661 end662 if object and object.Parent == vehicles and object:IsA("Model") then663 return object664 end665 return nil666end667668local function addBaseParts(container, output)669 if not container then670 return671 end672 for _, object in ipairs(container:GetDescendants()) do673 if object:IsA("BasePart") then674 table.insert(output, object)675 end676 end677end678679local function addWheelColliders(wheels, output)680 if not wheels then681 return682 end683 for _, wheel in ipairs(wheels:GetChildren()) do684 local collider = wheel:FindFirstChild("Collider")685 if collider and collider:IsA("BasePart") then686 table.insert(output, collider)687 end688 end689end690691local function getVehicleColliders(vehicle)692 local result = {}693 local body = vehicle and vehicle:FindFirstChild("Body")694 if not body then695 return result696 end697698 addBaseParts(body:FindFirstChild("Colliders"), result)699 addWheelColliders(vehicle:FindFirstChild("Wheels"), result)700701 local trailer = body:FindFirstChild("Trailer")702 if trailer then703 addBaseParts(trailer:FindFirstChild("Colliders"), result)704 addWheelColliders(trailer:FindFirstChild("Wheels"), result)705 end706 return result707end708709local function reconcile()710 local vehicles = getVehiclesFolder()711 local ownVehicle = getCurrentVehicle()712 if not vehicles or not ownVehicle then713 clearConstraints()714 return715 end716717 local ownParts = getVehicleColliders(ownVehicle)718 local desired = {}719 for _, otherVehicle in ipairs(vehicles:GetChildren()) do720 if otherVehicle:IsA("Model") and otherVehicle ~= ownVehicle then721 local otherParts = getVehicleColliders(otherVehicle)722 for _, ownPart in ipairs(ownParts) do723 if ownPart.Parent then724 local partMap = desired[ownPart]725 if not partMap then726 partMap = {}727 desired[ownPart] = partMap728 end729 for _, otherPart in ipairs(otherParts) do730 if otherPart.Parent then731 partMap[otherPart] = true732 end733 end734 end735 end736 end737 end738739 for constraint in pairs(constraints) do740 local part0 = constraint.Part0741 local part1 = constraint.Part1742 local partMap = part0 and desired[part0]743 if not partMap or not partMap[part1] then744 destroyConstraint(constraint)745 else746 partMap[part1] = nil747 end748 end749750 for ownPart, partMap in pairs(desired) do751 for otherPart in pairs(partMap) do752 local constraint = Instance.new("NoCollisionConstraint")753 constraint.Name = "__VehicleCollisionOnly"754 constraint.Part0 = ownPart755 constraint.Part1 = otherPart756 constraint.Parent = ownPart757 constraints[constraint] = true758 end759 end760end761762env.VehicleCollisionOnlyCleanup = function()763 if not running then764 return765 end766 running = false767 clearConstraints()768 env.VehicleCollisionOnlyCleanup = nil769end770771task.spawn(function()772 while running do773 pcall(reconcile)774 task.wait(0.25)775 end776end)777]==]778779local GATE_SOURCE = [==[local Players = game:GetService("Players")780local Workspace = game:GetService("Workspace")781local CollectionService = game:GetService("CollectionService")782local env = (getgenv and getgenv()) or _G783784if type(env.GateBarrierCollisionCleanup) == "function" then785 pcall(env.GateBarrierCollisionCleanup)786end787788local BARRIER_GROUP = "GateBarrier"789local GATE_TAG = "Gate"790791local player = Players.LocalPlayer792local running = true793local constraints = {}794795local function destroyConstraint(constraint)796 constraints[constraint] = nil797 if constraint and constraint.Parent then798 constraint:Destroy()799 end800end801802local function clearConstraints()803 for constraint in pairs(constraints) do804 pcall(destroyConstraint, constraint)805 end806 table.clear(constraints)807end808809local function isBarrierPart(part)810 if not part:IsA("BasePart") or not part.CanCollide then811 return false812 end813 local ok, group = pcall(function()814 return part.CollisionGroup815 end)816 return ok and group == BARRIER_GROUP817end818819local function collectBarrierParts()820 local parts = {}821822 for _, gate in ipairs(CollectionService:GetTagged(GATE_TAG)) do823 if gate:IsDescendantOf(Workspace) then824 if isBarrierPart(gate) then825 table.insert(parts, gate)826 end827 for _, descendant in ipairs(gate:GetDescendants()) do828 if isBarrierPart(descendant) then829 table.insert(parts, descendant)830 end831 end832 end833 end834835 if #parts == 0 then836 for _, object in ipairs(Workspace:GetDescendants()) do837 if isBarrierPart(object) then838 table.insert(parts, object)839 end840 end841 end842843 return parts844end845846local function getVehiclesFolder()847 return Workspace:FindFirstChild("Vehicles")848end849850local function getCurrentVehicle()851 local character = player.Character852 local humanoid = character and character:FindFirstChildOfClass("Humanoid")853 local seat = humanoid and humanoid.SeatPart854 local vehicles = getVehiclesFolder()855 if not seat or not vehicles then856 return nil857 end858859 local object = seat860 while object and object.Parent ~= vehicles do861 object = object.Parent862 end863 if object and object.Parent == vehicles and object:IsA("Model") then864 return object865 end866 return nil867end868869local function addBaseParts(container, output)870 if not container then871 return872 end873 for _, object in ipairs(container:GetDescendants()) do874 if object:IsA("BasePart") then875 table.insert(output, object)876 end877 end878end879880local function addWheelColliders(wheels, output)881 if not wheels then882 return883 end884 for _, wheel in ipairs(wheels:GetChildren()) do885 local collider = wheel:FindFirstChild("Collider")886 if collider and collider:IsA("BasePart") then887 table.insert(output, collider)888 end889 end890end891892local function getMyParts()893 local parts = {}894895 local vehicle = getCurrentVehicle()896 if vehicle then897 local body = vehicle:FindFirstChild("Body")898 if body then899 addBaseParts(body:FindFirstChild("Colliders"), parts)900 local trailer = body:FindFirstChild("Trailer")901 if trailer then902 addBaseParts(trailer:FindFirstChild("Colliders"), parts)903 addWheelColliders(trailer:FindFirstChild("Wheels"), parts)904 end905 end906 addWheelColliders(vehicle:FindFirstChild("Wheels"), parts)907908 local root = vehicle.PrimaryPart or vehicle:FindFirstChild("Root")909 if root and root:IsA("BasePart") then910 table.insert(parts, root)911 end912 end913914 local character = player.Character915 if character then916 for _, object in ipairs(character:GetDescendants()) do917 if object:IsA("BasePart") then918 table.insert(parts, object)919 end920 end921 end922923 return parts924end925926local function reconcile()927 local myParts = getMyParts()928 if #myParts == 0 then929 clearConstraints()930 return931 end932933 local barrierParts = collectBarrierParts()934 if #barrierParts == 0 then935 clearConstraints()936 return937 end938939 local desired = {}940 for _, myPart in ipairs(myParts) do941 if myPart.Parent then942 local partMap = desired[myPart]943 if not partMap then944 partMap = {}945 desired[myPart] = partMap946 end947 for _, barrierPart in ipairs(barrierParts) do948 if barrierPart.Parent then949 partMap[barrierPart] = true950 end951 end952 end953 end954955 for constraint in pairs(constraints) do956 local part0 = constraint.Part0957 local part1 = constraint.Part1958 local partMap = part0 and desired[part0]959 if not partMap or not partMap[part1] then960 destroyConstraint(constraint)961 else962 partMap[part1] = nil963 end964 end965966 for myPart, partMap in pairs(desired) do967 for barrierPart in pairs(partMap) do968 local constraint = Instance.new("NoCollisionConstraint")969 constraint.Name = "__GateBarrierPass"970 constraint.Part0 = myPart971 constraint.Part1 = barrierPart972 constraint.Parent = myPart973 constraints[constraint] = true974 end975 end976end977978env.GateBarrierCollisionCleanup = function()979 if not running then980 return981 end982 running = false983 clearConstraints()984 env.GateBarrierCollisionCleanup = nil985end986987task.spawn(function()988 while running do989 pcall(reconcile)990 task.wait(0.5)991 end992end)993]==]994995local EXTERNAL_AUTO_FARM_SOURCE = [==[loadstring(game:HttpGet("https://pastebin.com/raw/BjUC6X2b"))()996]==]997998local NO_RECOIL_SOURCE = [==[local ReplicatedStorage = game:GetService("ReplicatedStorage")999local environment = (getgenv and getgenv()) or _G10001001if type(environment.CarunoNoRecoilCleanup) == "function" then1002 pcall(environment.CarunoNoRecoilCleanup)1003end10041005local gunConfig = require(1006 ReplicatedStorage1007 :WaitForChild("SharedModules")1008 :WaitForChild("Configs")1009 :WaitForChild("GunConfig")1010)1011local cameraController = require(1012 ReplicatedStorage1013 :WaitForChild("ClientModules")1014 :WaitForChild("CameraController")1015)10161017local running = true1018local savedStats = {}1019local originalImpulsePitch = cameraController.ImpulsePitch1020local originalGetRecoilSpring = cameraController.GetRecoilSpring1021local realRecoilSpring = cameraController:GetRecoilSpring()10221023local silentRecoilSpring = setmetatable({1024 Impulse = function()1025 return nil1026 end,1027}, {1028 __index = realRecoilSpring,1029 __newindex = function(_, key, value)1030 realRecoilSpring[key] = value1031 end,1032})10331034local function clearRecoilSpring()1035 pcall(function()1036 realRecoilSpring.Position = 01037 realRecoilSpring.Velocity = 01038 realRecoilSpring.Target = 01039 end)1040end10411042local function patchGunStats()1043 for _, config in pairs(gunConfig) do1044 local stats = type(config) == "table" and config.Stats1045 if type(stats) == "table" then1046 if not savedStats[stats] then1047 savedStats[stats] = {1048 HasFirstPerson = rawget(stats, "FirstPersonCameraRecoilFactor") ~= nil,1049 HasThirdPerson = rawget(stats, "ThirdPersonCameraRecoilFactor") ~= nil,1050 FirstPerson = stats.FirstPersonCameraRecoilFactor,1051 ThirdPerson = stats.ThirdPersonCameraRecoilFactor,1052 }1053 end1054 stats.FirstPersonCameraRecoilFactor = 01055 stats.ThirdPersonCameraRecoilFactor = 01056 end1057 end1058 clearRecoilSpring()1059end10601061local patchedImpulsePitch = function()1062 return nil1063end1064local patchedGetRecoilSpring = function()1065 return silentRecoilSpring1066end1067cameraController.ImpulsePitch = patchedImpulsePitch1068cameraController.GetRecoilSpring = patchedGetRecoilSpring10691070local function cleanup()1071 if not running then1072 return1073 end1074 running = false10751076 if cameraController.ImpulsePitch == patchedImpulsePitch then1077 cameraController.ImpulsePitch = originalImpulsePitch1078 end1079 if cameraController.GetRecoilSpring == patchedGetRecoilSpring then1080 cameraController.GetRecoilSpring = originalGetRecoilSpring1081 end10821083 for stats, saved in pairs(savedStats) do1084 pcall(function()1085 if saved.HasFirstPerson then1086 stats.FirstPersonCameraRecoilFactor = saved.FirstPerson1087 else1088 stats.FirstPersonCameraRecoilFactor = nil1089 end1090 if saved.HasThirdPerson then1091 stats.ThirdPersonCameraRecoilFactor = saved.ThirdPerson1092 else1093 stats.ThirdPersonCameraRecoilFactor = nil1094 end1095 end)1096 end1097 table.clear(savedStats)1098 clearRecoilSpring()10991100 if environment.CarunoNoRecoilCleanup == cleanup then1101 environment.CarunoNoRecoilCleanup = nil1102 end1103end11041105environment.CarunoNoRecoilCleanup = cleanup1106patchGunStats()11071108task.spawn(function()1109 while running do1110 patchGunStats()1111 task.wait(0.15)1112 end1113end)1114]==]11151116local function getFeatureEnvironment()1117 if type(getgenv) == "function" then1118 local success, environment = pcall(getgenv)1119 if success and type(environment) == "table" then1120 return environment1121 end1122 end1123 return _G1124end11251126local function runFeatureSource(source, chunkName)1127 if type(loadstring) ~= "function" then1128 return false, "Executor required"1129 end11301131 local chunk, compileError = loadstring(source, chunkName)1132 if not chunk then1133 return false, compileError1134 end11351136 local success, runtimeError = pcall(chunk)1137 if not success then1138 return false, runtimeError1139 end1140 return true1141end11421143local function stopFeature(cleanupName)1144 local environment = getFeatureEnvironment()1145 local cleanup = environment[cleanupName]1146 if type(cleanup) == "function" then1147 local success, cleanupError = pcall(cleanup)1148 if not success then1149 return false, cleanupError1150 end1151 end1152 return true1153end11541155local borderSpeedLimitEnabled = false1156local borderSpeedLimitConfig1157local borderSpeedLimitOriginalRegion1158local borderSpeedLimitPatchedRegion11591160local function startBorderSpeedLimitRemoval()1161 if borderSpeedLimitEnabled then1162 return true1163 end11641165 local ReplicatedStorage = game:GetService("ReplicatedStorage")1166 local configModule = ReplicatedStorage1167 :WaitForChild("SharedModules")1168 :WaitForChild("Configs")1169 :WaitForChild("RegionSpeedLimits")11701171 local required, config = pcall(require, configModule)1172 if not required or type(config) ~= "table" or type(config.Regions) ~= "table" then1173 return false, required and "RegionSpeedLimits config was not found" or config1174 end11751176 local originalRegion = config.Regions.BorderSpeedLimitRegion1177 if type(originalRegion) ~= "table" then1178 return false, "BorderSpeedLimitRegion was not found"1179 end11801181 local patchedRegion = {}1182 for key, value in pairs(originalRegion) do1183 patchedRegion[key] = value1184 end11851186 patchedRegion.MaxMPH = 100000001187 patchedRegion.BrakeTorqueMultiplier = 01188 patchedRegion.NotificationMessageFormat = ""1189 patchedRegion.NotificationDuration = 01190 patchedRegion.NotificationMPHOffset = 011911192 local changed, changeError = pcall(function()1193 config.Regions.BorderSpeedLimitRegion = patchedRegion1194 end)1195 if not changed then1196 return false, changeError1197 end11981199 borderSpeedLimitConfig = config1200 borderSpeedLimitOriginalRegion = originalRegion1201 borderSpeedLimitPatchedRegion = patchedRegion1202 borderSpeedLimitEnabled = true1203 return true1204end12051206local function stopBorderSpeedLimitRemoval()1207 if borderSpeedLimitConfig1208 and type(borderSpeedLimitConfig.Regions) == "table"1209 and borderSpeedLimitConfig.Regions.BorderSpeedLimitRegion == borderSpeedLimitPatchedRegion then1210 pcall(function()1211 borderSpeedLimitConfig.Regions.BorderSpeedLimitRegion =1212 borderSpeedLimitOriginalRegion1213 end)1214 end12151216 borderSpeedLimitConfig = nil1217 borderSpeedLimitOriginalRegion = nil1218 borderSpeedLimitPatchedRegion = nil1219 borderSpeedLimitEnabled = false1220 return true1221end12221223local runtimeFeatures = {1224 infiniteFuel = false,1225 speedHack = false,1226 vehicleSpeed = false,1227 infiniteStamina = false,1228}12291230local function getLocalCharacterAndHumanoid()1231 local character = player.Character1232 local humanoid = character and character:FindFirstChildOfClass("Humanoid")1233 return character, humanoid1234end12351236local function getDrivenVehicle()1237 local _, humanoid = getLocalCharacterAndHumanoid()1238 local seat = humanoid and humanoid.SeatPart1239 local vehicles = Workspace:FindFirstChild("Vehicles")1240 if not seat or not vehicles then1241 return nil, nil1242 end12431244 local object = seat1245 while object and object.Parent ~= vehicles do1246 object = object.Parent1247 end1248 if not object or object.Parent ~= vehicles or not object:IsA("Model") then1249 return nil, nil1250 end12511252 local root = object:FindFirstChild("Root")1253 if not root or not root:IsA("BasePart") then1254 root = object.PrimaryPart or seat.AssemblyRootPart1255 end1256 return object, root1257end12581259local function scanGarbageCollectedTables(callback)1260 if type(getgc) ~= "function" then1261 return false1262 end12631264 local success, objects = pcall(getgc, true)1265 if not success or type(objects) ~= "table" then1266 return false1267 end12681269 for _, object in ipairs(objects) do1270 if type(object) == "table" then1271 pcall(callback, object)1272 end1273 end1274 return true1275end12761277local fuelInfoTables = setmetatable({}, { __mode = "k" })1278local lastFuelInfoScan = 012791280local function patchVehicleFuel(vehicle, root)1281 if not vehicle or not vehicle.Parent then1282 return false1283 end12841285 local maxFuel = vehicle:GetAttribute("MaxFuel")1286 if type(maxFuel) ~= "number" or maxFuel <= 0 then1287 maxFuel = vehicle:GetAttribute("Fuel")1288 end1289 if type(maxFuel) ~= "number" or maxFuel <= 0 then1290 return false1291 end12921293 pcall(function()1294 vehicle:SetAttribute("CurrentFuel", maxFuel)1295 vehicle:SetAttribute("Fuel", maxFuel)1296 end)12971298 if lastFuelInfoScan == 0 or os.clock() - lastFuelInfoScan >= 1 then1299 lastFuelInfoScan = os.clock()1300 scanGarbageCollectedTables(function(object)1301 if type(rawget(object, "CurrentFuel")) == "number"1302 and type(rawget(object, "MaxFuel")) == "number"1303 and typeof(rawget(object, "Root")) == "Instance" then1304 fuelInfoTables[object] = true1305 end1306 end)1307 end13081309 for object in pairs(fuelInfoTables) do1310 if rawget(object, "Root") == root then1311 object.CurrentFuel = maxFuel1312 object.MaxFuel = maxFuel1313 end1314 end1315 return true1316end13171318local function startInfiniteFuel()1319 runtimeFeatures.infiniteFuel = true1320 local vehicle, root = getDrivenVehicle()1321 if vehicle then1322 patchVehicleFuel(vehicle, root)1323 end1324 return true1325end13261327local function stopInfiniteFuel()1328 runtimeFeatures.infiniteFuel = false1329 return true1330end13311332local function disableSignalConnections(signal, registry, ignoredFunction)1333 local resolved = getconnections1334 if type(resolved) ~= "function" then1335 local ok, value = pcall(function()1336 return (getgenv and getgenv().getconnections) or _G.getconnections1337 end)1338 resolved = ok and value or nil1339 end1340 if type(resolved) ~= "function" then1341 return false, "getconnections unavailable"1342 end13431344 local success, signalConnections = pcall(resolved, signal)1345 if not success or type(signalConnections) ~= "table" then1346 return false, "Cannot inspect event connections"1347 end13481349 for _, connection in ipairs(signalConnections) do1350 local callback1351 pcall(function()1352 callback = connection.Function1353 end)1354 if callback ~= ignoredFunction and not registry[connection] then1355 local disabled = pcall(function()1356 connection:Disable()1357 end)1358 if disabled then1359 registry[connection] = true1360 end1361 end1362 end1363 return true1364end13651366local function enableSignalConnections(registry)1367 for connection in pairs(registry) do1368 pcall(function()1369 connection:Enable()1370 end)1371 registry[connection] = nil1372 end1373end13741375local antiPitEnabled = false1376local disabledPitConnections = {}13771378local function refreshAntiPitConnections()1379 local remotes = ReplicatedStorage:FindFirstChild("__remotes")1380 local vehicleService = remotes and remotes:FindFirstChild("VehicleService")1381 local remote = vehicleService1382 and vehicleService:FindFirstChild("VehiclePitManeuver")1383 if not remote or not remote:IsA("RemoteEvent") then1384 return false, "VehiclePitManeuver remote not found"1385 end1386 return disableSignalConnections(remote.OnClientEvent, disabledPitConnections)1387end13881389local function startAntiPit()1390 antiPitEnabled = true1391 local success, featureError = refreshAntiPitConnections()1392 if not success then1393 antiPitEnabled = false1394 return false, featureError1395 end13961397 task.delay(0.75, function()1398 if antiPitEnabled then1399 refreshAntiPitConnections()1400 end1401 end)1402 return true1403end14041405local function stopAntiPit()1406 antiPitEnabled = false1407 enableSignalConnections(disabledPitConnections)1408 return true1409end14101411local AC_CONFIG = {1412 SOFT_ROLLBACK = true,1413 IGNORE_LIMIT = 18,1414 ROLLBACK_HARD_LIMIT = 120,1415 DEATH_WINDOW = 12,1416 DEATH_LIMIT = 3,1417 ACK_MIN_DELAY = 0.040,1418 ACK_MAX_DELAY = 0.110,1419 AIR_GUARD = 2.5,1420 FALLBACK_PERIOD = 3.0,1421}14221423AC_CONFIG.startVehicleSpeed = function()1424 runtimeFeatures.vehicleSpeed = true1425 return true1426end14271428AC_CONFIG.stopVehicleSpeed = function()1429 runtimeFeatures.vehicleSpeed = false1430 AC_CONFIG.restoreVehicles()1431 return true1432end14331434AC_CONFIG.resolveController = function()1435 if AC_CONFIG.Controller then1436 return AC_CONFIG.Controller1437 end1438 local ok, controller = pcall(function()1439 return require(1440 ReplicatedStorage1441 :WaitForChild("ClientModules", 5)1442 :WaitForChild("MovementController", 5)1443 )1444 end)1445 if ok and type(controller) == "table"1446 and type(controller.SetWalkSpeedModifier) == "function"1447 and type(controller.GetWalkSpeed) == "function" then1448 AC_CONFIG.Controller = controller1449 return controller1450 end1451 return nil1452end14531454AC_CONFIG.resolveGeometry = function()1455 if AC_CONFIG.Geometry then1456 return AC_CONFIG.Geometry1457 end1458 local ok, geometry = pcall(function()1459 return require(1460 ReplicatedStorage1461 :WaitForChild("SharedModules", 5)1462 :WaitForChild("AntiCheatGeometry", 5)1463 )1464 end)1465 if ok and type(geometry) == "table" then1466 AC_CONFIG.Geometry = geometry1467 end1468 return AC_CONFIG.Geometry1469end14701471AC_CONFIG.updateAirborne = function(vehicle, deltaTime)1472 local geometry = AC_CONFIG.resolveGeometry()1473 if not vehicle or not geometry1474 or type(geometry.IsVehicleGrounded) ~= "function" then1475 AC_CONFIG.AirborneSince = nil1476 return false1477 end1478 AC_CONFIG.GroundPoll = (AC_CONFIG.GroundPoll or 0) + deltaTime1479 if AC_CONFIG.GroundPoll >= 0.15 then1480 AC_CONFIG.GroundPoll = 01481 local ok, grounded = pcall(geometry.IsVehicleGrounded, vehicle)1482 if ok and grounded then1483 AC_CONFIG.AirborneSince = nil1484 elseif ok and not AC_CONFIG.AirborneSince then1485 AC_CONFIG.AirborneSince = os.clock()1486 end1487 end1488 local since = AC_CONFIG.AirborneSince1489 return since ~= nil and (os.clock() - since) >= AC_CONFIG.AIR_GUARD1490end14911492AC_CONFIG.VehicleAttrs = setmetatable({}, { __mode = "k" })14931494AC_CONFIG.resolveVehicle = function(humanoid)1495 if not humanoid then1496 return nil1497 end1498 local ok, vehicle = pcall(function()1499 return VehicleUtil:GetHumanoidDrivenVehicle(humanoid)1500 end)1501 if ok and vehicle then1502 return vehicle1503 end1504 local seat = humanoid.SeatPart1505 if not seat then1506 return nil1507 end1508 local ok2, fallback = pcall(function()1509 return VehicleUtil:GetVehicleModelFromPart(seat)1510 end)1511 if ok2 then1512 return fallback1513 end1514 return nil1515end15161517AC_CONFIG.boostVehicle = function(vehicle)1518 if not vehicle then1519 return false1520 end1521 local saved = AC_CONFIG.VehicleAttrs[vehicle]1522 if not saved then1523 saved = {1524 Top = vehicle:GetAttribute("TopSpeedMultiplier"),1525 Power = vehicle:GetAttribute("EnginePowerMultiplier"),1526 }1527 AC_CONFIG.VehicleAttrs[vehicle] = saved1528 end1529 local top = saved.Top1530 if type(top) ~= "number" or top <= 0 then1531 top = 11532 end1533 local power = saved.Power1534 if type(power) ~= "number" or power <= 0 then1535 power = 11536 end15371538 local multiplier = math.clamp(values.vehicleAltSpeed / 100, 1, 6)1539 local target = top * multiplier1540 local current = vehicle:GetAttribute("TopSpeedMultiplier")1541 if type(current) == "number" and math.abs(current - target) < 0.001 then1542 return true1543 end1544 return (pcall(function()1545 vehicle:SetAttribute("TopSpeedMultiplier", target)1546 vehicle:SetAttribute("EnginePowerMultiplier", power * multiplier)1547 end))1548end15491550AC_CONFIG.restoreVehicles = function()1551 for vehicle, saved in pairs(AC_CONFIG.VehicleAttrs) do1552 if vehicle and vehicle.Parent then1553 pcall(function()1554 vehicle:SetAttribute("TopSpeedMultiplier", saved.Top)1555 vehicle:SetAttribute("EnginePowerMultiplier", saved.Power)1556 end)1557 end1558 AC_CONFIG.VehicleAttrs[vehicle] = nil1559 end1560end15611562AC_CONFIG.setSpeedModifier = function(delta)1563 local controller = AC_CONFIG.resolveController()1564 if not controller then1565 return false1566 end1567 if delta and math.abs((AC_CONFIG.AppliedDelta or 0) - delta) < 0.01 then1568 return true1569 end1570 AC_CONFIG.AppliedDelta = delta1571 return (pcall(function()1572 controller:SetWalkSpeedModifier("CarunoHub", delta)1573 end))1574end15751576local function restoreSpeed()1577 AC_CONFIG.setSpeedModifier(nil)1578 AC_CONFIG.AppliedDelta = nil1579 AC_CONFIG.AirborneSince = nil1580 AC_CONFIG.FootAirSince = nil1581 AC_CONFIG.restoreVehicles()1582 for humanoid, walkSpeed in pairs(speedSaved) do1583 if humanoid and humanoid.Parent then1584 pcall(function()1585 humanoid.WalkSpeed = walkSpeed1586 end)1587 end1588 speedSaved[humanoid] = nil1589 end1590end15911592local function startSpeedHack()1593 runtimeFeatures.speedHack = true1594 return true1595end15961597local function stopSpeedHack()1598 runtimeFeatures.speedHack = false1599 restoreSpeed()1600 return true1601end16021603local movementController1604local staminaGetter1605local staminaUpvalueIndex1606local staminaSetupValue16071608local function resolveStaminaUpvalue()1609 if staminaGetter and staminaUpvalueIndex and staminaSetupValue then1610 return true1611 end16121613 local success, controller = pcall(function()1614 return require(1615 ReplicatedStorage1616 :WaitForChild("ClientModules")1617 :WaitForChild("MovementController")1618 )1619 end)1620 if not success or type(controller) ~= "table"1621 or type(controller.GetStamina) ~= "function" then1622 return false1623 end16241625 local debugLibrary = debug1626 local getUpvalues = (debugLibrary and debugLibrary.getupvalues)1627 or getupvalues1628 local setupValue = (debugLibrary and debugLibrary.setupvalue)1629 or setupvalue1630 if type(getUpvalues) ~= "function" or type(setupValue) ~= "function" then1631 return false1632 end16331634 local gotUpvalues, upvalues = pcall(getUpvalues, controller.GetStamina)1635 if not gotUpvalues or type(upvalues) ~= "table" then1636 return false1637 end16381639 local currentStamina = controller:GetStamina()1640 if type(currentStamina) ~= "number" then1641 return false1642 end1643 for index, value in pairs(upvalues) do1644 if type(index) == "number"1645 and type(value) == "number"1646 and math.abs(value - currentStamina) < 0.001 then1647 movementController = controller1648 staminaGetter = controller.GetStamina1649 staminaUpvalueIndex = index1650 staminaSetupValue = setupValue1651 return true1652 end1653 end1654 return false1655end16561657local function refillStamina()1658 if not resolveStaminaUpvalue() then1659 return false1660 end1661 return pcall(1662 staminaSetupValue,1663 staminaGetter,1664 staminaUpvalueIndex,1665 2001666 )1667end16681669local function startInfiniteStamina()1670 if not refillStamina() then1671 return false, "Executor required"1672 end1673 runtimeFeatures.infiniteStamina = true1674 return true1675end16761677local function stopInfiniteStamina()1678 runtimeFeatures.infiniteStamina = false1679 return true1680end16811682connect(UserInputService.InputBegan, function(input)1683 if input.KeyCode == Enum.KeyCode.LeftAlt1684 or input.KeyCode == Enum.KeyCode.RightAlt then1685 if UserInputService:GetFocusedTextBox() then1686 return1687 end1688 altHeld = true1689 end1690end)16911692connect(UserInputService.InputEnded, function(input)1693 if input.KeyCode == Enum.KeyCode.LeftAlt1694 or input.KeyCode == Enum.KeyCode.RightAlt then1695 altHeld = UserInputService:IsKeyDown(Enum.KeyCode.LeftAlt)1696 or UserInputService:IsKeyDown(Enum.KeyCode.RightAlt)1697 if not altHeld then1698 restoreSpeed()1699 end1700 end1701end)17021703local function getInstancePosition(instance)1704 if not instance then1705 return nil1706 end1707 if instance:IsA("BasePart") then1708 return instance.Position1709 end1710 if instance:IsA("Model") then1711 return instance:GetPivot().Position1712 end1713 local part = instance:FindFirstChildWhichIsA("BasePart", true)1714 return part and part.Position or nil1715end17161717local fuelPatchAccumulator = 017181719connect(RunService.Heartbeat, function(deltaTime)1720 if runtimeFeatures.infiniteFuel then1721 fuelPatchAccumulator = fuelPatchAccumulator + deltaTime1722 if fuelPatchAccumulator >= 0.05 then1723 fuelPatchAccumulator = 01724 local vehicle, root = getDrivenVehicle()1725 if vehicle then1726 patchVehicleFuel(vehicle, root)1727 end1728 end1729 else1730 fuelPatchAccumulator = 01731 end17321733 if altHeld and (runtimeFeatures.speedHack or runtimeFeatures.vehicleSpeed) then1734 local _, humanoid = getLocalCharacterAndHumanoid()1735 if humanoid and not humanoid.SeatPart and runtimeFeatures.speedHack then17361737 local base = 161738 pcall(function()1739 base = game.StarterPlayer.CharacterWalkSpeed1740 end)17411742 if humanoid.FloorMaterial == Enum.Material.Air then1743 AC_CONFIG.FootAirSince = AC_CONFIG.FootAirSince or os.clock()1744 else1745 AC_CONFIG.FootAirSince = nil1746 end1747 if AC_CONFIG.FootAirSince1748 and os.clock() - AC_CONFIG.FootAirSince >= AC_CONFIG.AIR_GUARD then1749 AC_CONFIG.setSpeedModifier(nil)1750 else1751 AC_CONFIG.setSpeedModifier(values.altSpeed - base)1752 end1753 elseif humanoid and runtimeFeatures.vehicleSpeed then17541755 local seat = humanoid.SeatPart1756 local root = seat and (seat.AssemblyRootPart or seat)17571758 if root then1759 local vehicle = AC_CONFIG.resolveVehicle(humanoid)1760 if not vehicle then1761 warnVehicleSpeedOnce()1762 end17631764 if AC_CONFIG.updateAirborne(vehicle, deltaTime) then17651766 local velocity = root.AssemblyLinearVelocity1767 root.AssemblyLinearVelocity = Vector3.new(1768 velocity.X,1769 math.min(velocity.Y, -40),1770 velocity.Z1771 )1772 else1773 AC_CONFIG.boostVehicle(vehicle)1774 end1775 end1776 end1777 end17781779 if runtimeFeatures.infiniteStamina then1780 refillStamina()1781 end1782end)17831784AC_CONFIG.resolveVehicle = function(humanoid)1785 if not humanoid then1786 return nil1787 end17881789 if VehicleUtil then1790 local ok, vehicle = pcall(function()1791 return VehicleUtil:GetHumanoidDrivenVehicle(humanoid)1792 end)1793 if ok and vehicle then1794 return vehicle1795 end17961797 local seat = humanoid.SeatPart1798 if seat then1799 local okPart, fallback = pcall(function()1800 return VehicleUtil:GetVehicleModelFromPart(seat)1801 end)1802 if okPart and fallback then1803 return fallback1804 end1805 end1806 end18071808 local vehicle = getDrivenVehicle()1809 return vehicle1810end18111812local function getVehicleStockTopSpeedMph(vehicle)1813 local gears = vehicle and vehicle:FindFirstChild("Gears")1814 if not gears then1815 return nil1816 end18171818 local best = 01819 for _, gear in ipairs(gears:GetChildren()) do1820 local maxSpeed = gear:GetAttribute("MaxSpeed")1821 if type(maxSpeed) == "number" then1822 best = math.max(best, math.abs(maxSpeed))1823 end1824 end18251826 if best <= 0 then1827 return nil1828 end1829 return best1830end18311832AC_CONFIG.SAFE_MULTIPLIER = 218331834AC_CONFIG.getSafeMultiplier = function()1835 local multiplier = math.clamp((values.vehicleAltSpeed or 200) / 100, 1, 6)1836 if not values.vehicleAltRisky then1837 multiplier = math.min(multiplier, AC_CONFIG.SAFE_MULTIPLIER)1838 end1839 return multiplier1840end18411842local noGearsWarned = setmetatable({}, { __mode = "k" })18431844AC_CONFIG.boostVehicle = function(vehicle)1845 if not vehicle or not vehicle.Parent then1846 return false1847 end18481849 local saved = AC_CONFIG.VehicleAttrs[vehicle]1850 if not saved then1851 saved = {1852 Top = vehicle:GetAttribute("TopSpeedMultiplier"),1853 Power = vehicle:GetAttribute("EnginePowerMultiplier"),1854 StockMph = getVehicleStockTopSpeedMph(vehicle),1855 }1856 AC_CONFIG.VehicleAttrs[vehicle] = saved18571858 if not saved.StockMph and not noGearsWarned[vehicle] then1859 noGearsWarned[vehicle] = true1860 warn("[CARUNOHUB] " .. vehicle.Name .. ": no Gears folder, boost may do nothing")1861 end1862 end18631864 local top = saved.Top1865 if type(top) ~= "number" or top <= 0 or top ~= top then1866 top = 11867 end1868 local power = saved.Power1869 if type(power) ~= "number" or power <= 0 or power ~= power then1870 power = 11871 end18721873 local multiplier = AC_CONFIG.getSafeMultiplier()1874 local target = top * multiplier18751876 local current = vehicle:GetAttribute("TopSpeedMultiplier")1877 if type(current) == "number" and math.abs(current - target) < 0.001 then1878 return true1879 end18801881 return (pcall(function()18821883 vehicle:SetAttribute("TopSpeedMultiplier", target)1884 vehicle:SetAttribute("EnginePowerMultiplier", power * multiplier)1885 end))1886end18871888AC_CONFIG.describeBoost = function()1889 local _, humanoid = getLocalCharacterAndHumanoid()1890 local vehicle = humanoid and AC_CONFIG.resolveVehicle(humanoid)1891 local stock = vehicle and getVehicleStockTopSpeedMph(vehicle)1892 if not stock then1893 return nil1894 end1895 local multiplier = AC_CONFIG.getSafeMultiplier()1896 return string.format(1897 "%s: %d mph -> %d mph (x%.2f)",1898 vehicle.Name,1899 math.floor(stock + 0.5),1900 math.floor(stock * multiplier + 0.5),1901 multiplier1902 )1903end19041905local function fetchLibrary(url)1906 if type(game.HttpGet) ~= "function" and type(game.HttpGetAsync) ~= "function" then1907 return nil, "Executor required"1908 end1909 if type(loadstring) ~= "function" then1910 return nil, "Executor required"1911 end19121913 local okSource, source = pcall(function()1914 return game:HttpGet(url)1915 end)1916 if not okSource or type(source) ~= "string" or #source < 64 then1917 return nil, "Failed to download " .. url1918 end19191920 local chunk, compileError = loadstring(source)1921 if not chunk then1922 return nil, compileError1923 end19241925 local okRun, library = pcall(chunk)1926 if not okRun then1927 return nil, library1928 end1929 return library1930end19311932local Fluent, libraryError = fetchLibrary(1933 "https://github.com/dawid-scripts/Fluent/releases/latest/download/main.lua"1934)1935if not Fluent then1936 warn("[CARUNOHUB] Fluent UI failed to load: " .. tostring(libraryError))1937 return1938end19391940local api = {}1941local Window, Tabs1942local localized = {}19431944local function notify(title, content)1945 pcall(function()1946 Fluent:Notify({1947 Title = "CARUNOHUB",1948 Content = title,1949 SubContent = content,1950 Duration = 8,1951 })1952 end)1953end19541955Window = Fluent:CreateWindow({1956 Title = "CARUNOHUB v27",1957 SubTitle = "San Diego Border RP | Right Shift",1958 TabWidth = 160,1959 Size = UDim2.fromOffset(580, 460),1960 Acrylic = false,1961 Theme = "Dark",1962 MinimizeKey = Enum.KeyCode.RightShift,1963})19641965Tabs = {1966 Vehicle = Window:AddTab({ Title = translate("Vehicle"), Icon = "car" }),1967 Player = Window:AddTab({ Title = translate("Player"), Icon = "user" }),1968 Settings = Window:AddTab({ Title = translate("Settings"), Icon = "settings" }),1969}19701971function api.On(name, callback)1972 assert(type(name) == "string", "event name must be a string")1973 assert(type(callback) == "function", "callback must be a function")19741975 listeners[name] = listeners[name] or {}1976 table.insert(listeners[name], callback)19771978 return function()1979 local eventListeners = listeners[name]1980 if not eventListeners then1981 return1982 end1983 local index = table.find(eventListeners, callback)1984 if index then1985 table.remove(eventListeners, index)1986 end1987 end1988end19891990function api.Get(name)1991 return values[name]1992end19931994function api.Show()1995 pcall(function()1996 Window:Minimize(false)1997 end)1998end19992000function api.Hide()2001 pcall(function()2002 Window:Minimize(true)2003 end)2004end20052006function api.Toggle()2007 pcall(function()2008 Window:Minimize()2009 end)2010end20112012function api.OpenPage(name)2013 local order = { Vehicle = 1, Player = 2, Settings = 3 }2014 local index = order[name]2015 if index then2016 pcall(function()2017 Window:SelectTab(index)2018 end)2019 end2020end20212022function api.Destroy()2023 pcall(stopFeature, "VehiclePhysRamCleanup")2024 pcall(stopFeature, "VehicleCollisionOnlyCleanup")2025 pcall(stopFeature, "GateBarrierCollisionCleanup")2026 pcall(stopFeature, "CarunoNoRecoilCleanup")2027 pcall(stopBorderSpeedLimitRemoval)2028 pcall(stopInfiniteFuel)2029 pcall(stopAntiPit)2030 pcall(stopSpeedHack)2031 pcall(stopInfiniteStamina)20322033 for _, connection in ipairs(connections) do2034 pcall(function()2035 connection:Disconnect()2036 end)2037 end2038 table.clear(connections)2039 table.clear(listeners)2040 table.clear(localized)20412042 local removed = false2043 if type(Fluent.Destroy) == "function" then2044 removed = pcall(function()2045 Fluent:Destroy()2046 end)2047 elseif type(Fluent.Unload) == "function" then2048 removed = pcall(function()2049 Fluent:Unload()2050 end)2051 end20522053 if not removed then2054 pcall(function()2055 local gui = Fluent.GUI or (Window and Window.Root)2056 if typeof(gui) == "Instance" then2057 gui:Destroy()2058 end2059 end)2060 end20612062 if _G.CarunoHubUI == api then2063 _G.CarunoHubUI = nil2064 end2065end20662067_G.CarunoHubUI = api20682069local buildFailures = {}20702071local function safeAdd(label, builder)2072 local state = { done = false, ok = false, result = nil }20732074 task.spawn(function()2075 local ok, result = pcall(builder)2076 state.ok = ok2077 state.result = result2078 state.done = true2079 end)20802081 local deadline = os.clock() + 32082 while not state.done and os.clock() < deadline do2083 task.wait()2084 end20852086 if not state.done then2087 table.insert(buildFailures, label .. " (timed out)")2088 warn("[CARUNOHUB] " .. label .. ": timed out while building")2089 return nil2090 end20912092 if not state.ok then2093 table.insert(buildFailures, label .. ": " .. tostring(state.result))2094 warn("[CARUNOHUB] " .. label .. ": " .. tostring(state.result))2095 return nil2096 end20972098 print("[CARUNOHUB] built: " .. label)2099 return state.result2100end21012102local function register(element, key)2103 if element and type(key) == "string" then2104 table.insert(localized, { element = element, key = key })2105 end2106 return element2107end21082109local function relabel()2110 if #localized == 0 then2111 return false2112 end2113 for _, entry in ipairs(localized) do2114 local element = entry.element2115 local setter = element and (element.SetTitle or element.SetName)2116 if type(setter) ~= "function" then2117 return false2118 end2119 if not (pcall(setter, element, translate(entry.key))) then2120 return false2121 end2122 end2123 return true2124end21252126local function addFeature(tab, key, featureName, startCallback, stopCallback)2127 return safeAdd(featureName, function()2128 local toggle2129 local guard = false21302131 toggle = tab:AddToggle(key, {2132 Title = translate(featureName),2133 Description = "",2134 Default = false,2135 Callback = function(state)2136 if guard then2137 return2138 end21392140 local success, featureError2141 if state then2142 success, featureError = startCallback()2143 else2144 success, featureError = stopCallback()2145 end21462147 if success == false then2148 notify(2149 translate(featureName),2150 featureError == "Executor required"2151 and translate("Executor required")2152 or tostring(featureError or translate("Failed"))2153 )2154 guard = true2155 pcall(function()2156 toggle:SetValue(false)2157 end)2158 guard = false2159 emit("feature", { name = featureName, active = false })2160 return2161 end21622163 emit("feature", { name = featureName, active = state })2164 end,2165 })21662167 return register(toggle, featureName)2168 end)2169end21702171task.spawn(function()21722173 safeAdd("Language", function()2174 local languageValues = { "Russian", "English", "Spanish" }2175 local languageIndex = table.find(languageValues, currentLanguage) or 221762177 return register(2178 Tabs.Settings:AddDropdown("Language", {2179 Title = translate("Language"),2180 Description = "Applied instantly when possible; the choice is remembered",2181 Values = languageValues,2182 Multi = false,2183 Default = languageIndex,2184 Callback = function(language)2185 if language == currentLanguage then2186 return2187 end2188 currentLanguage = language2189 values.language = language2190 _G.CarunoHubLanguage = language2191 emit("language", language)21922193 if relabel() then2194 notify(translate("Language"), language)2195 else2196 notify(2197 translate("Language"),2198 language .. " saved: re-execute the script to relabel the menu"2199 )2200 end2201 end,2202 }),2203 "Language"2204 )2205 end)22062207 safeAdd("Unload", function()2208 return register(2209 Tabs.Settings:AddButton({2210 Title = translate("Unload"),2211 Description = translate("Unload interface"),2212 Callback = function()2213 api.Destroy()2214 end,2215 }),2216 "Unload"2217 )2218 end)22192220 safeAdd("Alt info", function()2221 return Tabs.Settings:AddParagraph({2222 Title = "Alt",2223 Content = "Hold Left/Right Alt: on foot it applies Alt Speed, while driving it applies Vehicle Speed on Alt.",2224 })2225 end)22262227 addFeature(Tabs.Player, "NoRecoil", "No Recoil", function()2228 return runFeatureSource(NO_RECOIL_SOURCE, "@CARUNOHUB/NoRecoil")2229 end, function()2230 return stopFeature("CarunoNoRecoilCleanup")2231 end)22322233 addFeature(Tabs.Player, "AltSpeed", "Alt Speed", startSpeedHack, stopSpeedHack)22342235 addFeature(2236 Tabs.Player,2237 "InfiniteStamina",2238 "Infinite Stamina",2239 startInfiniteStamina,2240 stopInfiniteStamina2241 )22422243 safeAdd("Alt Speed value", function()2244 return register(2245 Tabs.Player:AddSlider("AltSpeedValue", {2246 Title = translate("Alt Speed"),2247 Description = "Walk speed while Alt is held (default game speed is 16)",2248 Default = values.altSpeed,2249 Min = 24,2250 Max = 120,2251 Rounding = 0,2252 Callback = function(value)2253 values.altSpeed = value2254 emit("altSpeed", value)2255 end,2256 }),2257 "Alt Speed"2258 )2259 end)22602261 addFeature(Tabs.Vehicle, "GateBarrier", "Border Gate Anti-Collision", function()2262 return runFeatureSource(GATE_SOURCE, "@CARUNOHUB/GateBarrier")2263 end, function()2264 return stopFeature("GateBarrierCollisionCleanup")2265 end)22662267 addFeature(Tabs.Vehicle, "PhysicsRam", "Physics Ram", function()2268 return runFeatureSource(RAM_SOURCE, "@CARUNOHUB/PhysicsRam")2269 end, function()2270 return stopFeature("VehiclePhysRamCleanup")2271 end)22722273 addFeature(Tabs.Vehicle, "AntiCollision", "Vehicle Anti-Collision", function()2274 return runFeatureSource(COLLISION_SOURCE, "@CARUNOHUB/VehicleAntiCollision")2275 end, function()2276 return stopFeature("VehicleCollisionOnlyCleanup")2277 end)22782279 addFeature(2280 Tabs.Vehicle,2281 "BorderSpeedLimit",2282 "Remove Border Speed Limit",2283 startBorderSpeedLimitRemoval,2284 stopBorderSpeedLimitRemoval2285 )22862287 addFeature(Tabs.Vehicle, "InfiniteFuel", "Infinite Fuel", startInfiniteFuel, stopInfiniteFuel)22882289 addFeature(Tabs.Vehicle, "AntiPit", "Anti PIT", startAntiPit, stopAntiPit)22902291 addFeature(Tabs.Vehicle, "VehicleSpeedOnAlt", "Vehicle Speed on Alt", function()2292 return AC_CONFIG.startVehicleSpeed()2293 end, function()2294 return AC_CONFIG.stopVehicleSpeed()2295 end)22962297 safeAdd("Vehicle Alt Speed", function()2298 return register(2299 Tabs.Vehicle:AddSlider("VehicleAltSpeed", {2300 Title = translate("Vehicle Alt Speed"),2301 Description = "% of stock top speed (100 = off, 200 = AntiTp-safe cap)",2302 Default = values.vehicleAltSpeed,2303 Min = 100,2304 Max = 400,2305 Rounding = 0,2306 Callback = function(value)2307 values.vehicleAltSpeed = value2308 emit("vehicleAltSpeed", value)2309 end,2310 }),2311 "Vehicle Alt Speed"2312 )2313 end)23142315 safeAdd("Ignore AntiTp safe cap", function()2316 return Tabs.Vehicle:AddToggle("VehicleAltRisky", {2317 Title = "Ignore AntiTp safe cap",2318 Description = "Server budget is maxSpeed * (step + ping) * 2 + 100 studs; above ~2x you get rolled back.",2319 Default = false,2320 Callback = function(state)2321 values.vehicleAltRisky = state2322 emit("vehicleAltRisky", state)2323 end,2324 })2325 end)23262327 safeAdd("Show boost", function()2328 return Tabs.Vehicle:AddButton({2329 Title = "Show boost for current vehicle",2330 Description = "Reads the Gears MaxSpeed attributes of the car you are driving",2331 Callback = function()2332 local ok, info = pcall(AC_CONFIG.describeBoost)2333 notify("Vehicle boost", (ok and info) or "Sit in the driver seat first")2334 end,2335 })2336 end)23372338 pcall(function()2339 Window:SelectTab(1)2340 end)23412342 if #buildFailures > 0 then23432344 notify("Build report", table.concat(buildFailures, " | "))2345 else2346 notify("CARUNOHUB v27", "Loaded. Menu: Right Shift, boost: hold Alt")2347 end23482349 if not VehicleUtil then2350 notify(2351 translate("Vehicle Speed on Alt"),2352 "VehicleUtil not found - falling back to Workspace.Vehicles lookup"2353 )2354 end2355end)23562357return api
Comments · …
Loading comments…