-- Full loop with aimbot, keybind toggle, speed 250, delay 0.3 local player = game.Players.LocalPlayer local character = player.Character or player.CharacterAdded:Wait() local humanoid = character:WaitForChild("Humanoid") local rootPart = character:WaitForChild("HumanoidRootPart") local camera = workspace.CurrentCamera print("Script loaded") -- Anti-cheat bypass pcall(function() local mt = getrawmetatable(game) local oldNamecall = mt.__namecall setreadonly(mt, false) mt.__namecall = newcclosure(function(self, ...) local method = getnamecallmethod() if method == "FireServer" then local remoteName = tostring(self):lower() if remoteName:find("anti") or remoteName:find("detect") or remoteName:find("boundary") or remoteName:find("ac") then return nil end end return oldNamecall(self, ...) end) setreadonly(mt, true) end) -- GUI local screenGui = Instance.new("ScreenGui") screenGui.Parent = game.CoreGui screenGui.ResetOnSpawn = false screenGui.IgnoreGuiInset = true local mainFrame = Instance.new("Frame") mainFrame.Size = UDim2.new(0, 260, 0, 320) mainFrame.Position = UDim2.new(0.5, -130, 0, 10) mainFrame.BackgroundColor3 = Color3.fromRGB(30,30,30) mainFrame.BorderSizePixel = 0 mainFrame.Active = true mainFrame.Draggable = true mainFrame.Parent = screenGui local titleBar = Instance.new("TextLabel") titleBar.Size = UDim2.new(1,0,0,25) titleBar.BackgroundColor3 = Color3.fromRGB(50,50,50) titleBar.BorderSizePixel = 0 titleBar.Text = "Control Panel" titleBar.TextColor3 = Color3.new(1,1,1) titleBar.Parent = mainFrame local minimizeBtn = Instance.new("TextButton") minimizeBtn.Size = UDim2.new(0,40,0,25) minimizeBtn.Position = UDim2.new(1,-80,0,0) minimizeBtn.BackgroundColor3 = Color3.fromRGB(80,80,80) minimizeBtn.BorderSizePixel = 0 minimizeBtn.Text = "-" minimizeBtn.TextColor3 = Color3.new(1,1,1) minimizeBtn.Parent = mainFrame local closeBtn = Instance.new("TextButton") closeBtn.Size = UDim2.new(0,40,0,25) closeBtn.Position = UDim2.new(1,-40,0,0) closeBtn.BackgroundColor3 = Color3.fromRGB(120,40,40) closeBtn.BorderSizePixel = 0 closeBtn.Text = "X" closeBtn.TextColor3 = Color3.new(1,1,1) closeBtn.Parent = mainFrame closeBtn.MouseButton1Click:Connect(function() screenGui:Destroy() end) local speedLabel = Instance.new("TextLabel") speedLabel.Size = UDim2.new(0,70,0,25) speedLabel.Position = UDim2.new(0,10,0,35) speedLabel.BackgroundTransparency = 1 speedLabel.Text = "Speed:" speedLabel.TextColor3 = Color3.new(1,1,1) speedLabel.Parent = mainFrame local speedInput = Instance.new("TextBox") speedInput.Size = UDim2.new(0,100,0,25) speedInput.Position = UDim2.new(0,80,0,35) speedInput.BackgroundColor3 = Color3.fromRGB(60,60,60) speedInput.BorderSizePixel = 0 speedInput.Text = "250" speedInput.TextColor3 = Color3.new(1,1,1) speedInput.Parent = mainFrame local currentSpeed = 250 speedInput.FocusLost:Connect(function() local newSpeed = tonumber(speedInput.Text) if newSpeed and newSpeed > 0 then currentSpeed = newSpeed speedInput.Text = tostring(currentSpeed) else speedInput.Text = tostring(currentSpeed) end end) local delayLabel = Instance.new("TextLabel") delayLabel.Size = UDim2.new(0,70,0,25) delayLabel.Position = UDim2.new(0,10,0,65) delayLabel.BackgroundTransparency = 1 delayLabel.Text = "Delay:" delayLabel.TextColor3 = Color3.new(1,1,1) delayLabel.Parent = mainFrame local delayInput = Instance.new("TextBox") delayInput.Size = UDim2.new(0,100,0,25) delayInput.Position = UDim2.new(0,80,0,65) delayInput.BackgroundColor3 = Color3.fromRGB(60,60,60) delayInput.BorderSizePixel = 0 delayInput.Text = "0.3" delayInput.TextColor3 = Color3.new(1,1,1) delayInput.Parent = mainFrame local currentDelay = 0.3 delayInput.FocusLost:Connect(function() local newDelay = tonumber(delayInput.Text) if newDelay and newDelay >= 0 then currentDelay = newDelay delayInput.Text = tostring(currentDelay) else delayInput.Text = tostring(currentDelay) end end) local countLabel = Instance.new("TextLabel") countLabel.Size = UDim2.new(0,70,0,25) countLabel.Position = UDim2.new(0,10,0,95) countLabel.BackgroundTransparency = 1 countLabel.Text = "Buy count:" countLabel.TextColor3 = Color3.new(1,1,1) countLabel.Parent = mainFrame local countInput = Instance.new("TextBox") countInput.Size = UDim2.new(0,100,0,25) countInput.Position = UDim2.new(0,80,0,95) countInput.BackgroundColor3 = Color3.fromRGB(60,60,60) countInput.BorderSizePixel = 0 countInput.Text = "5" countInput.TextColor3 = Color3.new(1,1,1) countInput.Parent = mainFrame local buyCount = 5 countInput.FocusLost:Connect(function() local newCount = tonumber(countInput.Text) if newCount and newCount >= 1 then buyCount = newCount countInput.Text = tostring(buyCount) else countInput.Text = tostring(buyCount) end end) local keybindLabel = Instance.new("TextLabel") keybindLabel.Size = UDim2.new(0,70,0,25) keybindLabel.Position = UDim2.new(0,10,0,125) keybindLabel.BackgroundTransparency = 1 keybindLabel.Text = "Keybind:" keybindLabel.TextColor3 = Color3.new(1,1,1) keybindLabel.Parent = mainFrame local keybindInput = Instance.new("TextBox") keybindInput.Size = UDim2.new(0,100,0,25) keybindInput.Position = UDim2.new(0,80,0,125) keybindInput.BackgroundColor3 = Color3.fromRGB(60,60,60) keybindInput.BorderSizePixel = 0 keybindInput.Text = "F" keybindInput.TextColor3 = Color3.new(1,1,1) keybindInput.Parent = mainFrame local currentKey = "F" keybindInput.FocusLost:Connect(function() local newKey = keybindInput.Text if newKey and #newKey == 1 then currentKey = newKey:upper() keybindInput.Text = currentKey else keybindInput.Text = currentKey end end) local coordLabel = Instance.new("TextLabel") coordLabel.Size = UDim2.new(1,-20,0,25) coordLabel.Position = UDim2.new(0,10,0,160) coordLabel.BackgroundTransparency = 1 coordLabel.Text = "X: 0 Y: 0 Z: 0" coordLabel.TextColor3 = Color3.new(1,1,1) coordLabel.Parent = mainFrame game:GetService("RunService").RenderStepped:Connect(function() local pos = rootPart.Position coordLabel.Text = string.format("X: %.1f Y: %.1f Z: %.1f", pos.X, pos.Y, pos.Z) end) local startButton = Instance.new("TextButton") startButton.Size = UDim2.new(1,-20,0,30) startButton.Position = UDim2.new(0,10,0,195) startButton.BackgroundColor3 = Color3.fromRGB(40,100,40) startButton.BorderSizePixel = 0 startButton.Text = "START" startButton.TextColor3 = Color3.new(1,1,1) startButton.Parent = mainFrame local stopButton = Instance.new("TextButton") stopButton.Size = UDim2.new(1,-20,0,30) stopButton.Position = UDim2.new(0,10,0,230) stopButton.BackgroundColor3 = Color3.fromRGB(120,40,40) stopButton.BorderSizePixel = 0 stopButton.Text = "STOP" stopButton.TextColor3 = Color3.new(1,1,1) stopButton.Parent = mainFrame local statusLabel = Instance.new("TextLabel") statusLabel.Size = UDim2.new(1,-20,0,25) statusLabel.Position = UDim2.new(0,10,0,270) statusLabel.BackgroundTransparency = 1 statusLabel.Text = "Ready" statusLabel.TextColor3 = Color3.new(1,1,1) statusLabel.Parent = mainFrame local collapsibleElements = { speedLabel, speedInput, delayLabel, delayInput, countLabel, countInput, keybindLabel, keybindInput, coordLabel, startButton, stopButton, statusLabel } local minimized = false minimizeBtn.MouseButton1Click:Connect(function() minimized = not minimized if minimized then for _, el in ipairs(collapsibleElements) do el.Visible = false end mainFrame.Size = UDim2.new(0, 260, 0, 25) else for _, el in ipairs(collapsibleElements) do el.Visible = true end mainFrame.Size = UDim2.new(0, 260, 0, 320) end end) local stopRequested = false local running = false local function setStatus(text) statusLabel.Text = text print("Status:", text) end -- Aimbot function: lock camera to nearest player's head local function aimbot() local nearest = nil local minDistance = math.huge for _, plr in ipairs(game.Players:GetPlayers()) do if plr ~= player and plr.Character and plr.Character:FindFirstChild("Head") then local head = plr.Character.Head local dist = (head.Position - rootPart.Position).Magnitude if dist < minDistance then minDistance = dist nearest = head end end end if nearest then camera.CFrame = CFrame.lookAt(camera.CFrame.Position, nearest.Position) end end -- Fly function local function flyTo(target) local bodyGyro = Instance.new("BodyGyro") bodyGyro.P = 9e4 bodyGyro.maxTorque = Vector3.new(9e9,9e9,9e9) bodyGyro.cframe = rootPart.CFrame bodyGyro.Parent = rootPart local bodyVel = Instance.new("BodyVelocity") bodyVel.Velocity = Vector3.new(0,0,0) bodyVel.MaxForce = Vector3.new(9e9,9e9,9e9) bodyVel.Parent = rootPart humanoid.PlatformStand = true local arrived = false local connection connection = game:GetService("RunService").Heartbeat:Connect(function(dt) if stopRequested then connection:Disconnect() arrived = true return end local currentPos = rootPart.Position local direction = target - currentPos local distance = direction.Magnitude if distance < 0.5 then rootPart.CFrame = CFrame.new(target) bodyVel.Velocity = Vector3.new(0,0,0) connection:Disconnect() arrived = true return end local dirUnit = direction.Unit local speed = currentSpeed if distance < 30 then speed = currentSpeed * (distance / 30) end bodyVel.Velocity = dirUnit * speed bodyGyro.cframe = CFrame.lookAt(rootPart.Position, target) end) repeat task.wait() if stopRequested then connection:Disconnect() bodyVel:Destroy() bodyGyro:Destroy() humanoid.PlatformStand = false return false end until arrived bodyVel:Destroy() bodyGyro:Destroy() humanoid.PlatformStand = false rootPart.Velocity = Vector3.new(0,0,0) return true end -- Remotes and items local buyEvent = game:GetService("ReplicatedStorage").__remotes.WorldBuyableItemService.PurchaseWorldBuyableItem local buyItem = workspace.WorldBuyableItems.CivilianArea["Mona Lisa Painting"] local sellEvent = game:GetService("ReplicatedStorage").__remotes.SmuggleService.SellSmuggledGoods local launderEvent = game:GetService("ReplicatedStorage").__remotes.SmuggleService.LaunderBriefcase -- Coordinates local startCoord = Vector3.new(6840.8, 17.2, 26.6) local buyCoord = Vector3.new(6807.1, 17.4, 23) local sellerPath = { Vector3.new(6852, 17.1, 26.1), Vector3.new(6852.2, 17.1, 115.2), Vector3.new(2790.6, 17.1, 133.8), Vector3.new(2695.6, 17.1, 122.2), Vector3.new(185.9, 17.1, 115.3), Vector3.new(184.7, 17.1, -43.4), Vector3.new(207, 17.1, -43) } local returnFromSellerPath = { Vector3.new(184.7, 17.1, -43.4), Vector3.new(185.9, 17.1, 115.3), Vector3.new(2695.6, 17.1, 122.2), Vector3.new(2790.6, 17.1, 133.8), Vector3.new(6852.2, 17.1, 115.2), Vector3.new(6852, 17.1, 26.1) } local launderPath = { Vector3.new(6850.5, 17.4, -42.2), Vector3.new(6807.3, 17.4, -41.4) } local function runLoop() stopRequested = false running = true setStatus("Running loop...") currentSpeed = tonumber(speedInput.Text) or 250 currentDelay = tonumber(delayInput.Text) or 0.3 buyCount = tonumber(countInput.Text) or 5 while not stopRequested do if not flyTo(startCoord) then break end task.wait(0.5) if not flyTo(buyCoord) then break end task.wait(0.5) for i = 1, buyCount do if stopRequested then break end buyEvent:FireServer(buyItem) task.wait(currentDelay) end if stopRequested then break end for _, loc in ipairs(sellerPath) do if not flyTo(loc) then break end task.wait(0.5) end if stopRequested then break end setStatus("Waiting for Seller4...") local seller = nil local timeout = 15 local waited = 0 while waited < timeout and not stopRequested do if workspace:FindFirstChild("NPC") and workspace.NPC:FindFirstChild("Seller4") then seller = workspace.NPC.Seller4 break end task.wait(0.5) waited = waited + 0.5 end if seller and not stopRequested then sellEvent:FireServer(seller) setStatus("Sold, returning...") else setStatus("Seller4 not found, continuing...") end for _, loc in ipairs(returnFromSellerPath) do if not flyTo(loc) then break end task.wait(0.5) end if stopRequested then break end for _, loc in ipairs(launderPath) do if not flyTo(loc) then break end task.wait(0.5) end if stopRequested then break end local prompt = workspace.LaunderPrompts:GetChildren()[2].PromptPart launderEvent:FireServer(prompt) setStatus("Laundered, returning via intermediate...") task.wait(1) if not flyTo(launderPath[1]) then break end task.wait(0.5) end running = false if stopRequested then setStatus("Stopped") else setStatus("Finished") end end -- Aimbot loop (runs while script running) local aimbotConnection local function startAimbot() aimbotConnection = game:GetService("RunService").RenderStepped:Connect(function() if running then aimbot() end end) end local function stopAimbot() if aimbotConnection then aimbotConnection:Disconnect() aimbotConnection = nil end end -- Toggle function local function toggleScript() if running then stopRequested = true setStatus("Stopping...") -- Wait a bit for loop to stop task.spawn(function() while running do task.wait() end stopAimbot() end) else startAimbot() task.spawn(runLoop) end end -- Connect buttons startButton.MouseButton1Click:Connect(function() if not running then toggleScript() end end) stopButton.MouseButton1Click:Connect(function() if running then toggleScript() end end) -- Keybind game:GetService("UserInputService").InputBegan:Connect(function(input, gameProcessed) if gameProcessed then return end if input.KeyCode == Enum.KeyCode[currentKey] then toggleScript() end end) -- Initial aimbot start? We'll start aimbot only when toggled