-- Build A Cart Cheat Menu v1.2.0 (Xeno-optimized for Build A Cart) local Players = game:GetService("Players") local RunService = game:GetService("RunService") local UserInputService = game:GetService("UserInputService") local TeleportService = game:GetService("TeleportService") local GuiService = game:GetService("GuiService") local LocalPlayer = Players.LocalPlayer local workspaceCamera = workspace.CurrentCamera -- VirtualInputManager (Xeno-compatible). Guard with pcall in case service is unavailable. local VirtualInputManaAger = nil pcall(function() VirtualInputManager = game:GetService("VirtualInputManager") end) -- --- CONNECTION TRACKING --- local connections = {} -- --- STATE VARIABLES --- local walkingEnabled = false local vehicleModEnabled = false local dragging = false local dragStart, startPos -- Speed Defaults local vehicleTargetSpeed = 100 local minGravity = -200 local maxGravity = 200 -- Teleport/Autofarm Defaults local tpDistance = 100000 -- Default studs local autofarmEnabled = false local autoTpInterval = 150 -- Default 500ms (ms) local startPosition = nil -- --- CORE UTILITY FUNCTIONS (Executor Stability) --- -- Minimal sendKey wrapper for executor compatibility (Xeno) local function sendKey(isDown, keyCode) pcall(function() if VirtualInputManager and VirtualInputManager.SendKeyEvent then VirtualInputManager:SendKeyEvent(isDown, keyCode, false, game) end end) end -- --- UI CREATION --- local function makeGui() local ScreenGui = Instance.new("ScreenGui") ScreenGui.Name = "UniversalAutoWalkGUI_v30" ScreenGui.ResetOnSpawn = false ScreenGui.Parent = LocalPlayer:WaitForChild("PlayerGui") local MainFrame = Instance.new("Frame") MainFrame.Name = "MainFrame" MainFrame.Size = UDim2.new(0, 240, 0, 460) MainFrame.Position = UDim2.new(0.5, -120, 0.5, -230) MainFrame.BackgroundColor3 = Color3.fromRGB(30, 30, 30) MainFrame.BorderSizePixel = 0 MainFrame.Active = true MainFrame.Parent = ScreenGui local UICorner = Instance.new("UICorner") UICorner.CornerRadius = UDim.new(0, 10) UICorner.Parent = MainFrame local TitleLabel = Instance.new("TextLabel") TitleLabel.Size = UDim2.new(1, 0, 0, 30) TitleLabel.BackgroundTransparency = 1 TitleLabel.Text = " Build A Cart Autofarm v1.3.0" TitleLabel.Font = Enum.Font.GothamBlack TitleLabel.TextColor3 = Color3.fromRGB(220, 220, 220) TitleLabel.TextSize = 16 TitleLabel.TextXAlignment = Enum.TextXAlignment.Left TitleLabel.Parent = MainFrame local function createButton(name, text, color, yPos) local btn = Instance.new("TextButton") btn.Name = name btn.Size = UDim2.new(0.9, 0, 0, 30) btn.Position = UDim2.new(0.05, 0, 0, yPos) btn.BackgroundColor3 = color btn.Text = text btn.Font = Enum.Font.GothamBold btn.TextColor3 = Color3.fromRGB(255, 255, 255) btn.TextSize = 12 btn.Parent = MainFrame local corner = Instance.new("UICorner") corner.CornerRadius = UDim.new(0, 6) corner.Parent = btn return btn end local WalkButton = createButton("WalkBtn", "START AUTO-WALK", Color3.fromRGB(60, 180, 110), 35) local VehicleToggle = createButton("VehBtn", "ENABLE VEHICLE SPEED MOD", Color3.fromRGB(200, 100, 0), 70) local VehSliderLabel = Instance.new("TextLabel") VehSliderLabel.Text = "Vehicle Boost: 100" VehSliderLabel.Size = UDim2.new(1, 0, 0, 20) VehSliderLabel.Position = UDim2.new(0, 0, 0, 105) VehSliderLabel.BackgroundTransparency = 1 VehSliderLabel.TextColor3 = Color3.fromRGB(200, 200, 200) VehSliderLabel.Font = Enum.Font.GothamBold VehSliderLabel.TextSize = 12 VehSliderLabel.Parent = MainFrame local VehSliderBg = Instance.new("Frame") VehSliderBg.Name = "VehSliderBg" VehSliderBg.Size = UDim2.new(0.8, 0, 0, 6) VehSliderBg.Position = UDim2.new(0.1, 0, 0, 130) VehSliderBg.BackgroundColor3 = Color3.fromRGB(60, 60, 60) VehSliderBg.BorderSizePixel = 0 VehSliderBg.Parent = MainFrame local VehCorner = Instance.new("UICorner") VehCorner.CornerRadius = UDim.new(1, 0) VehCorner.Parent = VehSliderBg local VehKnob = Instance.new("TextButton") VehKnob.Name = "Knob" VehKnob.Size = UDim2.new(0, 16, 0, 16) VehKnob.Position = UDim2.new(0.02, -8, 0.5, -8) VehKnob.BackgroundColor3 = Color3.fromRGB(255, 255, 255) VehKnob.Text = "" VehKnob.Parent = VehSliderBg local VehKnobCorner = Instance.new("UICorner") VehKnobCorner.CornerRadius = UDim.new(1, 0) VehKnobCorner.Parent = VehKnob local GravLabel = Instance.new("TextLabel") GravLabel.Text = "Gravity: Normal" GravLabel.Size = UDim2.new(0.6, 0, 0, 20) GravLabel.Position = UDim2.new(0, 0, 0, 165) GravLabel.BackgroundTransparency = 1 GravLabel.TextColor3 = Color3.fromRGB(200, 200, 200) GravLabel.Font = Enum.Font.GothamBold GravLabel.TextSize = 12 GravLabel.TextXAlignment = Enum.TextXAlignment.Right GravLabel.Parent = MainFrame local ZeroGravBtn = Instance.new("TextButton") ZeroGravBtn.Name = "ZeroGrav" ZeroGravBtn.Size = UDim2.new(0.2, 0, 0, 20) ZeroGravBtn.Position = UDim2.new(0.65, 0, 0, 165) ZeroGravBtn.BackgroundColor3 = Color3.fromRGB(100, 100, 200) ZeroGravBtn.Text = "ZERO" ZeroGravBtn.Font = Enum.Font.GothamBold ZeroGravBtn.TextColor3 = Color3.fromRGB(255, 255, 255) ZeroGravBtn.TextSize = 10 ZeroGravBtn.Parent = MainFrame local ZeroCorner = Instance.new("UICorner") ZeroCorner.CornerRadius = UDim.new(0, 4) ZeroCorner.Parent = ZeroGravBtn local GravSliderBg = Instance.new("Frame") GravSliderBg.Name = "GravSliderBg" GravSliderBg.Size = UDim2.new(0.8, 0, 0, 6) GravSliderBg.Position = UDim2.new(0.1, 0, 0, 195) GravSliderBg.BackgroundColor3 = Color3.fromRGB(60, 60, 60) GravSliderBg.BorderSizePixel = 0 GravSliderBg.Parent = MainFrame local GravCorner = Instance.new("UICorner") GravCorner.CornerRadius = UDim.new(1, 0) GravCorner.Parent = GravSliderBg local GravKnob = Instance.new("TextButton") GravKnob.Name = "Knob" GravKnob.Size = UDim2.new(0, 16, 0, 16) GravKnob.Position = UDim2.new(0.99, -8, 0.5, -8) GravKnob.BackgroundColor3 = Color3.fromRGB(255, 255, 255) GravKnob.Text = "" GravKnob.Parent = GravSliderBg local GravKnobCorner = Instance.new("UICorner") GravKnobCorner.CornerRadius = UDim.new(1, 0) GravKnobCorner.Parent = GravKnob -- Teleport controls local TpButton = createButton("TpBtn", "TELEPORT FORWARD (Manual Snap)", Color3.fromRGB(40, 40, 140), 235) local TpLabel = Instance.new("TextLabel") TpLabel.Text = "TP Distance (Studs):" TpLabel.Size = UDim2.new(0.5, 0, 0, 30) TpLabel.Position = UDim2.new(0.05, 0, 0, 270) TpLabel.BackgroundTransparency = 1 TpLabel.TextColor3 = Color3.fromRGB(200, 200, 200) TpLabel.Font = Enum.Font.GothamBold TpLabel.TextSize = 12 TpLabel.TextXAlignment = Enum.TextXAlignment.Left TpLabel.Parent = MainFrame local TpInputBox = Instance.new("TextBox") TpInputBox.Name = "TpInput" TpInputBox.Size = UDim2.new(0.35, 0, 0, 30) TpInputBox.Position = UDim2.new(0.6, 0, 0, 270) TpInputBox.BackgroundColor3 = Color3.fromRGB(50, 50, 50) TpInputBox.TextColor3 = Color3.fromRGB(255, 255, 255) TpInputBox.Font = Enum.Font.GothamBold TpInputBox.TextSize = 14 TpInputBox.Text = tostring(tpDistance) TpInputBox.PlaceholderText = "Studs" TpInputBox.Parent = MainFrame local TpInputCorner = Instance.new("UICorner") TpInputCorner.CornerRadius = UDim.new(0, 6) TpInputCorner.Parent = TpInputBox local AutofarmButton = createButton("AutoFarmBtn", "START AUTO-CLICK & TP", Color3.fromRGB(40, 140, 40), 315) local IntervalLabel = Instance.new("TextLabel") IntervalLabel.Text = "Interval (ms):" IntervalLabel.Size = UDim2.new(0.5, 0, 0, 30) IntervalLabel.Position = UDim2.new(0.05, 0, 0, 350) IntervalLabel.BackgroundTransparency = 1 IntervalLabel.TextColor3 = Color3.fromRGB(200, 200, 200) IntervalLabel.Font = Enum.Font.GothamBold IntervalLabel.TextSize = 12 IntervalLabel.TextXAlignment = Enum.TextXAlignment.Left IntervalLabel.Parent = MainFrame local IntervalInputBox = Instance.new("TextBox") IntervalInputBox.Name = "IntervalInput" IntervalInputBox.Size = UDim2.new(0.35, 0, 0, 30) IntervalInputBox.Position = UDim2.new(0.6, 0, 0, 350) IntervalInputBox.BackgroundColor3 = Color3.fromRGB(50, 50, 50) IntervalInputBox.TextColor3 = Color3.fromRGB(255, 255, 255) IntervalInputBox.Font = Enum.Font.GothamBold IntervalInputBox.TextSize = 14 IntervalInputBox.Text = tostring(autoTpInterval) IntervalInputBox.PlaceholderText = "ms" IntervalInputBox.Parent = MainFrame local IntervalInputCorner = Instance.new("UICorner") IntervalInputCorner.CornerRadius = UDim.new(0, 6) IntervalInputCorner.Parent = IntervalInputBox local RejoinButton = createButton("RejoinBtn", "REJOIN SERVER", Color3.fromRGB(220, 160, 60), 390) local UnloadButton = createButton("UnloadBtn", "UNLOAD SCRIPT (DESTROY UI)", Color3.fromRGB(200, 50, 50), 425) return { ScreenGui = ScreenGui, MainFrame = MainFrame, WalkButton = WalkButton, VehicleToggle = VehicleToggle, VehSliderLabel = VehSliderLabel, VehSliderBg = VehSliderBg, VehKnob = VehKnob, GravLabel = GravLabel, ZeroGravBtn = ZeroGravBtn, GravSliderBg = GravSliderBg, GravKnob = GravKnob, TpButton = TpButton, TpInputBox = TpInputBox, AutofarmButton = AutofarmButton, IntervalInputBox = IntervalInputBox, RejoinButton = RejoinButton, UnloadButton = UnloadButton } end local gui = makeGui() -- --- SLIDER & INPUT LOGIC --- local vehSliderDragging = false local gravSliderDragging = false local function updateVehSlider(input) local sliderX = gui.VehSliderBg.AbsolutePosition.X local sliderWidth = gui.VehSliderBg.AbsoluteSize.X local percent = math.clamp((input.Position.X - sliderX) / math.max(sliderWidth, 1), 0, 1) gui.VehKnob.Position = UDim2.new(percent, -8, 0.5, -8) vehicleTargetSpeed = math.floor(percent * 5000) gui.VehSliderLabel.Text = "Vehicle Boost: " .. vehicleTargetSpeed end local function updateGravSlider(input) local sliderX = gui.GravSliderBg.AbsolutePosition.X local sliderWidth = gui.GravSliderBg.AbsoluteSize.X local percent = math.clamp((input.Position.X - sliderX) / math.max(sliderWidth, 1), 0, 1) gui.GravKnob.Position = UDim2.new(percent, -8, 0.5, -8) local targetGrav = minGravity + (percent * (maxGravity - minGravity)) workspace.Gravity = targetGrav gui.GravLabel.Text = "Gravity: " .. math.floor(targetGrav) end table.insert(connections, gui.TpInputBox.FocusLost:Connect(function() local num = tonumber(gui.TpInputBox.Text) if num and num > 0 then tpDistance = num else gui.TpInputBox.Text = tostring(tpDistance) end end)) table.insert(connections, gui.IntervalInputBox.FocusLost:Connect(function() local num = tonumber(gui.IntervalInputBox.Text) if num and num >= 1 then autoTpInterval = num else gui.IntervalInputBox.Text = tostring(autoTpInterval) end end)) table.insert(connections, gui.VehKnob.InputBegan:Connect(function(input) if input.UserInputType == Enum.UserInputType.MouseButton1 or input.UserInputType == Enum.UserInputType.Touch then vehSliderDragging = true end end)) table.insert(connections, gui.GravKnob.InputBegan:Connect(function(input) if input.UserInputType == Enum.UserInputType.MouseButton1 or input.UserInputType == Enum.UserInputType.Touch then gravSliderDragging = true end end)) table.insert(connections, UserInputService.InputEnded:Connect(function(input) if input.UserInputType == Enum.UserInputType.MouseButton1 or input.UserInputType == Enum.UserInputType.Touch then vehSliderDragging = false gravSliderDragging = false end end)) table.insert(connections, UserInputService.InputChanged:Connect(function(input) if (input.UserInputType == Enum.UserInputType.MouseMovement or input.UserInputType == Enum.UserInputType.Touch) then if vehSliderDragging then updateVehSlider(input) end if gravSliderDragging then updateGravSlider(input) end end end)) table.insert(connections, gui.ZeroGravBtn.MouseButton1Click:Connect(function() workspace.Gravity = 0 gui.GravLabel.Text = "Gravity: 0" gui.GravKnob.Position = UDim2.new(0.5, -8, 0.5, -8) end)) -- --- DRAG LOGIC --- local function updateDrag(input) local delta = input.Position - dragStart gui.MainFrame.Position = UDim2.new(startPos.X.Scale, startPos.X.Offset + delta.X, startPos.Y.Scale, startPos.Y.Offset + delta.Y) end table.insert(connections, gui.MainFrame.InputBegan:Connect(function(input) if (input.UserInputType == Enum.UserInputType.MouseButton1 or input.UserInputType == Enum.UserInputType.Touch) and not vehSliderDragging and not gravSliderDragging and UserInputService:GetFocusedTextBox() == nil then dragging = true dragStart = input.Position startPos = gui.MainFrame.Position end end)) table.insert(connections, UserInputService.InputEnded:Connect(function(input) if input.UserInputType == Enum.UserInputType.MouseButton1 or input.UserInputType == Enum.UserInputType.Touch then dragging = false end end)) table.insert(connections, UserInputService.InputChanged:Connect(function(input) if dragging and input.UserInputType == Enum.UserInputType.MouseMovement then updateDrag(input) end end)) -- --- CORE FEATURE LOGIC --- -- HELPER: Aggressive Cutter local function aggressiveCutTrailers(seat) local assembly = seat.AssemblyRootPart or seat local myParts = assembly:GetConnectedParts(true) local myPartsSet = {} for _, part in pairs(myParts) do myPartsSet[part] = true end local scanRoot = seat.Parent if scanRoot.Parent and (scanRoot.Parent:IsA("Model") or scanRoot.Parent:IsA("Folder")) then scanRoot = scanRoot.Parent end for _, obj in pairs(scanRoot:GetDescendants()) do if obj:IsA("RopeConstraint") or obj:IsA("RodConstraint") or obj:IsA("SpringConstraint") then local att0 = obj.Attachment0 local att1 = obj.Attachment1 if att0 and att1 then local part0 = att0.Parent local part1 = att1.Parent if (part0 and myPartsSet[part0]) or (part1 and myPartsSet[part1]) then pcall(function() obj:Destroy() end) end end end end end -- CORE TP FUNCTION local function teleportForward() local char = LocalPlayer.Character if not char then return end local root = char:FindFirstChild("HumanoidRootPart") local hum = char:FindFirstChild("Humanoid") if not root then return end local camCF = workspaceCamera and workspaceCamera.CFrame or CFrame.new() local forward = camCF.LookVector local flatForward = Vector3.new(forward.X, 0, forward.Z) if flatForward.Magnitude < 0.001 then flatForward = root.CFrame.LookVector * Vector3.new(1,0,1) end if flatForward.Magnitude > 0.001 then forward = flatForward.Unit else forward = Vector3.new(0, 0, -1) end if math.abs(forward.X) > math.abs(forward.Z) then forward = Vector3.new(math.sign(forward.X), 0, 0) else forward = Vector3.new(0, 0, math.sign(forward.Z)) end local moveOffset = forward * tpDistance if hum and hum.SeatPart then local seat = hum.SeatPart local assemblyRoot = seat.AssemblyRootPart or seat aggressiveCutTrailers(seat) if seat.Parent and seat.Parent:IsA("Model") then pcall(function() seat.Parent:PivotTo(seat.Parent:GetPivot() + moveOffset) end) else assemblyRoot.CFrame = assemblyRoot.CFrame + moveOffset end for _, p in pairs(assemblyRoot:GetConnectedParts(true)) do p.AssemblyLinearVelocity = Vector3.new(0,0,0) p.AssemblyAngularVelocity = Vector3.new(0,0,0) end else root.CFrame = root.CFrame + moveOffset root.AssemblyLinearVelocity = Vector3.new(0,0,0) root.AssemblyAngularVelocity = Vector3.new(0,0,0) end end -- Manual TP Click table.insert(connections, gui.TpButton.MouseButton1Click:Connect(teleportForward)) -- AUTOFARM LOOP WITH AUTOCLICK AT START POSITION local autofarmCoroutine local AUTOFARM_RADIUS = 500 local function startAutofarmLoop() if autofarmCoroutine then task.cancel(autofarmCoroutine) end autofarmCoroutine = task.spawn(function() startPosition = nil while autofarmEnabled do local char = LocalPlayer.Character local root = char and char:FindFirstChild("HumanoidRootPart") local delayTime = autoTpInterval / 1000 if root then local currentPos = root.Position if startPosition then if (currentPos - startPosition).Magnitude < AUTOFARM_RADIUS then -- Click at current mouse position if VirtualInputManager and VirtualInputManager.SendMouseButtonEvent then local mouseX, mouseY = UserInputService:GetMouseLocation().X, UserInputService:GetMouseLocation().Y pcall(function() VirtualInputManager:SendMouseButtonEvent(mouseX, mouseY, 0, true, game, 0) task.wait(0.02) VirtualInputManager:SendMouseButtonEvent(mouseX, mouseY, 0, false, game, 0) end) end -- Immediately reset start position to continue teleporting startPosition = nil delayTime = 0.05 -- minimal delay between click and next TP else teleportForward() end else startPosition = currentPos teleportForward() end end task.wait(delayTime) end print("[Autofarm] Loop stopped.") end) end -- Autofarm Toggle table.insert(connections, gui.AutofarmButton.MouseButton1Click:Connect(function() autofarmEnabled = not autofarmEnabled if autofarmEnabled then gui.AutofarmButton.Text = "STOP AUTO-CLICK & TP" gui.AutofarmButton.BackgroundColor3 = Color3.fromRGB(180, 60, 60) startAutofarmLoop() else gui.AutofarmButton.Text = "START AUTO-CLICK & TP" gui.AutofarmButton.BackgroundColor3 = Color3.fromRGB(40, 140, 40) if autofarmCoroutine then task.cancel(autofarmCoroutine) end end end)) -- UNLOAD table.insert(connections, gui.UnloadButton.MouseButton1Click:Connect(function() gui.UnloadButton.Text = "UNLOADING..." autofarmEnabled = false if autofarmCoroutine then task.cancel(autofarmCoroutine) end for _, conn in pairs(connections) do if conn then pcall(function() conn:Disconnect() end) end end sendKey(false, Enum.KeyCode.W) workspace.Gravity = 196.2 pcall(function() gui.ScreenGui:Destroy() end) pcall(function() script:Destroy() end) end)) -- VEHICLE MOD table.insert(connections, gui.VehicleToggle.MouseButton1Click:Connect(function() vehicleModEnabled = not vehicleModEnabled gui.VehicleToggle.Text = vehicleModEnabled and "DISABLE VEHICLE MOD" or "ENABLE VEHICLE SPEED MOD" gui.VehicleToggle.BackgroundColor3 = vehicleModEnabled and Color3.fromRGB(180, 60, 60) or Color3.fromRGB(200, 100, 0) end)) table.insert(connections, RunService.Stepped:Connect(function() if vehicleModEnabled and LocalPlayer.Character then local hum = LocalPlayer.Character:FindFirstChild("Humanoid") if hum and hum.SeatPart then local seat = hum.SeatPart if seat:IsA("VehicleSeat") then seat.MaxSpeed = vehicleTargetSpeed seat.Torque = math.huge seat.TurnSpeed = 2 end local vehicleModel = seat:FindFirstAncestorWhichIsA("Model") if vehicleModel then for _, part in pairs(vehicleModel:GetDescendants()) do if part:IsA("HingeConstraint") and part.ActuatorType == Enum.ActuatorType.Motor then local av = part.AngularVelocity or 0 if type(av) == "Vector3" then if av.Magnitude > 0 then part.AngularVelocity = Vector3.new(vehicleTargetSpeed, 0, 0) end else if av > 0 then part.AngularVelocity = vehicleTargetSpeed elseif av < 0 then part.AngularVelocity = -vehicleTargetSpeed else part.AngularVelocity = 0 end end part.MotorMaxTorque = math.huge elseif part:IsA("BodyVelocity") then if part.Velocity and part.Velocity.Magnitude > 0 then part.Velocity = part.Velocity.Unit * vehicleTargetSpeed end part.MaxForce = Vector3.new(math.huge, math.huge, math.huge) elseif part:IsA("LinearVelocity") then if part.VectorVelocity and part.VectorVelocity.Magnitude > 0 then part.VectorVelocity = part.VectorVelocity.Unit * vehicleTargetSpeed end part.MaxForce = math.huge end end end end end end)) -- AUTO WALK table.insert(connections, gui.WalkButton.MouseButton1Click:Connect(function() walkingEnabled = not walkingEnabled gui.WalkButton.Text = walkingEnabled and "STOP AUTO-WALK" or "START AUTO-WALK" gui.WalkButton.BackgroundColor3 = walkingEnabled and Color3.fromRGB(180, 60, 60) or Color3.fromRGB(60, 180, 110) if not walkingEnabled then sendKey(false, Enum.KeyCode.W) end end)) table.insert(connections, RunService.RenderStepped:Connect(function() if walkingEnabled then sendKey(true, Enum.KeyCode.W) local char = LocalPlayer.Character if char then local hum = char:FindFirstChild("Humanoid") if hum and hum.SeatPart and hum.SeatPart:IsA("VehicleSeat") then hum.SeatPart.Throttle = 1 end end end end)) -- REJOIN table.insert(connections, gui.RejoinButton.MouseButton1Click:Connect(function() gui.RejoinButton.Text = "TELEPORTING..." if #Players:GetPlayers() <= 1 then LocalPlayer:Kick("Rejoining...") task.wait() TeleportService:Teleport(game.PlaceId, LocalPlayer) else TeleportService:TeleportToPlaceInstance(game.PlaceId, game.JobId, LocalPlayer) end end)) print("Loaded Universal Utilities v30 - Cleaned & Xeno-optimized (Build A Cart)") return