--[[ I hope you enjoy If you use this script in your own script please credit! Auto Rob Bank, opensource. Has bank check so you dont waste ur money. --]] local player = game.Players.LocalPlayer local hrp = player.Character.HumanoidRootPart local npc = workspace.NPCs.Robberydealer.UpperTorso local prompt = npc.ProximityPrompt local pGui = player.PlayerGui local vim = game:GetService("VirtualInputManager") local moneyFolder = workspace:WaitForChild("BankItems"):WaitForChild("Money") local allMoney = {} local vaultPrompt = workspace:WaitForChild("Map"):WaitForChild("vault"):WaitForChild("door"):WaitForChild("robPrompt"):WaitForChild("ProximityPrompt") vaultPrompt.HoldDuration = 0 local checkStart = tick() local bankCooldown = false local function fix(p) if p:IsA("ProximityPrompt") then p.RequiresLineOfSight = false p.HoldDuration = 0 end end for _, v in pairs(game:GetDescendants()) do fix(v) end game.DescendantAdded:Connect(fix) while tick() - checkStart < 2 do hrp.CFrame = vaultPrompt.Parent.CFrame * CFrame.new(0, 0, 2) fireproximityprompt(vaultPrompt) local notifyGui = pGui:FindFirstChild("SendNotification") if notifyGui then local label = notifyGui:FindFirstChild("TextLabel", true) if label then local text = label.Text:lower() if string.find(text, "already") or string.find(text, "cooling down") or string.find(text, "3") then bankCooldown = true break end end end task.wait() end if bankCooldown then print("Bank On Cooldown or being robbed") return end local startTime = tick() while tick() - startTime < 0.6 do hrp.CFrame = npc.CFrame fireproximityprompt(prompt) task.wait() end wait(1) local dialogue = pGui:WaitForChild("Dialogue", 10) local firstChoice = dialogue.InteractFrame:WaitForChild("FirstChoice", 5) local secondChoice = dialogue.InteractFrame:WaitForChild("SecondChoice", 5) task.wait(1) if firstChoice then local button = firstChoice:IsA("GuiButton") and firstChoice or firstChoice:FindFirstChildWhichIsA("GuiButton") if button then local pos = button.AbsolutePosition local size = button.AbsoluteSize local centerX = pos.X + (size.X / 2) local centerY = pos.Y + (size.Y / 2) + 58 vim:SendMouseMoveEvent(centerX, centerY, game) task.wait(0.1) vim:SendMouseButtonEvent(centerX, centerY, 0, true, game, 1) task.wait(0.1) vim:SendMouseButtonEvent(centerX, centerY, 0, false, game, 1) end end local startTime = tick() while tick() - startTime < 1.5 do hrp.CFrame = npc.CFrame local Event = game:GetService("ReplicatedStorage").RemoteEvents.StorePurchase Event:FireServer( "DuffelBag", 200 ) task.wait() end wait(3) local startTime = tick() while tick() - startTime < 0.6 do hrp.CFrame = npc.CFrame fireproximityprompt(prompt) task.wait() end wait(1) local dialogue = pGui:WaitForChild("Dialogue", 10) local firstChoice = dialogue.InteractFrame:WaitForChild("FirstChoice", 5) task.wait(1) if firstChoice then local button = firstChoice:IsA("GuiButton") and firstChoice or firstChoice:FindFirstChildWhichIsA("GuiButton") if button then local pos = button.AbsolutePosition local size = button.AbsoluteSize local centerX = pos.X + (size.X / 2) local centerY = pos.Y + (size.Y / 2) + 58 vim:SendMouseMoveEvent(centerX, centerY, game) task.wait(0.1) vim:SendMouseButtonEvent(centerX, centerY, 0, true, game, 1) task.wait(0.1) vim:SendMouseButtonEvent(centerX, centerY, 0, false, game, 1) end end local startTime = tick() while tick() - startTime < 1.5 do hrp.CFrame = npc.CFrame local Event = game:GetService("ReplicatedStorage").RemoteEvents.StorePurchase Event:FireServer( "C4", 1000 ) task.wait() end local toolFound = false while not toolFound do local tool = player.Backpack:FindFirstChild("C4") if tool then tool.Parent = player.Character toolFound = true end task.wait(0.1) end wait(6) local vaultStartTime = tick() while tick() - vaultStartTime < 2 do hrp.CFrame = vaultPrompt.Parent.CFrame * CFrame.new(0, 0, 2) fireproximityprompt(vaultPrompt) task.wait() end for _, item in ipairs(moneyFolder:GetDescendants()) do if item:IsA("ProximityPrompt") then item.HoldDuration = 0 table.insert(allMoney, item) end end local targets = {} local count = #allMoney > 10 and 10 or #allMoney for i = 1, count do local randomIndex = math.random(1, #allMoney) table.insert(targets, table.remove(allMoney, randomIndex)) end for _, cashPrompt in ipairs(targets) do local grabStartTime = tick() while tick() - grabStartTime < 1 do hrp.CFrame = cashPrompt.Parent.CFrame fireproximityprompt(cashPrompt) task.wait() end task.wait(0.1) end wait(2) local startTime = tick() while tick() - startTime < 0.6 do hrp.CFrame = npc.CFrame fireproximityprompt(prompt) task.wait() end wait(2) local dialogue = pGui:WaitForChild("Dialogue", 10) local secondChoice = dialogue.InteractFrame:WaitForChild("SecondChoice", 5) task.wait(1) if firstChoice then local button = firstChoice:IsA("GuiButton") and secondChoice or secondChoice:FindFirstChildWhichIsA("GuiButton") if button then local pos = button.AbsolutePosition local size = button.AbsoluteSize local centerX = pos.X + (size.X / 2) local centerY = pos.Y + (size.Y / 2) + 58 vim:SendMouseMoveEvent(centerX, centerY, game) task.wait(0.1) vim:SendMouseButtonEvent(centerX, centerY, 0, true, game, 1) task.wait(0.1) vim:SendMouseButtonEvent(centerX, centerY, 0, false, game, 1) end end