local player = game:GetService("Players").LocalPlayer local coreGui = game:GetService("CoreGui") local workspace = game:GetService("Workspace") local userInputService = game:GetService("UserInputService") local screenGui = Instance.new("ScreenGui") screenGui.Name = "bringAndSellGui" screenGui.Parent = coreGui local frame = Instance.new("Frame") frame.Size = UDim2.new(0, 200, 0, 180) frame.Position = UDim2.new(0.5, -100, 0.8, 0) frame.BackgroundColor3 = Color3.fromRGB(35, 35, 35) frame.Active = true frame.Draggable = true frame.Parent = screenGui local infoLabel = Instance.new("TextLabel") infoLabel.Size = UDim2.new(1, 0, 0, 20) infoLabel.Position = UDim2.new(0, 0, 0, 5) infoLabel.BackgroundTransparency = 1 infoLabel.TextColor3 = Color3.fromRGB(200, 200, 200) infoLabel.Text = "press k to toggle" infoLabel.TextScaled = true infoLabel.Parent = frame local bringButton = Instance.new("TextButton") bringButton.Size = UDim2.new(1, -20, 0, 40) bringButton.Position = UDim2.new(0, 10, 0, 30) bringButton.BackgroundColor3 = Color3.fromRGB(55, 55, 55) bringButton.TextColor3 = Color3.fromRGB(255, 255, 255) bringButton.Text = "bring to player" bringButton.TextScaled = true bringButton.Parent = frame local sellButton = Instance.new("TextButton") sellButton.Size = UDim2.new(1, -20, 0, 40) sellButton.Position = UDim2.new(0, 10, 0, 80) sellButton.BackgroundColor3 = Color3.fromRGB(55, 55, 55) sellButton.TextColor3 = Color3.fromRGB(255, 255, 255) sellButton.Text = "sell boxes" sellButton.TextScaled = true sellButton.Parent = frame local robButton = Instance.new("TextButton") robButton.Size = UDim2.new(1, -20, 0, 40) robButton.Position = UDim2.new(0, 10, 0, 130) robButton.BackgroundColor3 = Color3.fromRGB(55, 55, 55) robButton.TextColor3 = Color3.fromRGB(255, 255, 255) robButton.Text = "auto rob vaults" robButton.TextScaled = true robButton.Parent = frame local function getMyTycoon(rootPart) local tycoonsFolder = workspace:FindFirstChild("Tycoons") if not tycoonsFolder then return nil end for _, tycoon in ipairs(tycoonsFolder:GetChildren()) do local ownerValue = tycoon:FindFirstChild("Owner") if ownerValue and (ownerValue.Value == player.Name or ownerValue.Value == player) then return tycoon end end local closestTycoon = nil local shortestDistance = math.huge for _, tycoon in ipairs(tycoonsFolder:GetChildren()) do local partToMeasure = tycoon:FindFirstChildWhichIsA("BasePart", true) if partToMeasure then local distance = (partToMeasure.Position - rootPart.Position).Magnitude if distance < shortestDistance then shortestDistance = distance closestTycoon = tycoon end end end return closestTycoon end local function getNearestPayPart(rootPart) local dropoffs = workspace:FindFirstChild("BoxDropoffs") if not dropoffs then return nil end local closestPay = nil local shortestDistance = math.huge for _, dropoff in ipairs(dropoffs:GetChildren()) do local payPart = dropoff:FindFirstChild("PayPart") if payPart and payPart:IsA("BasePart") then local distance = (payPart.Position - rootPart.Position).Magnitude if distance < shortestDistance then shortestDistance = distance closestPay = payPart end end end return closestPay end local function moveBoxes(baseCFrame, scatter) local character = player.Character if not character then return end local rootPart = character:FindFirstChild("HumanoidRootPart") if not rootPart then return end local myTycoon = getMyTycoon(rootPart) if not myTycoon then return end local fullBoxes = myTycoon:FindFirstChild("Boxes") and myTycoon.Boxes:FindFirstChild("FullBoxes") if fullBoxes then for _, boxFolder in ipairs(fullBoxes:GetChildren()) do for _, item in ipairs(boxFolder:GetChildren()) do local finalCFrame = baseCFrame if scatter then local offsetX = math.random(-30, 30) / 10 local offsetZ = math.random(-30, 30) / 10 finalCFrame = baseCFrame * CFrame.new(offsetX, 0, offsetZ) end if item:IsA("Model") then item:PivotTo(finalCFrame) elseif item:IsA("BasePart") then item.CFrame = finalCFrame end end end end end bringButton.MouseButton1Click:Connect(function() local character = player.Character if character and character:FindFirstChild("HumanoidRootPart") then moveBoxes(character.HumanoidRootPart.CFrame, true) end end) sellButton.MouseButton1Click:Connect(function() local character = player.Character if not character then return end local rootPart = character:FindFirstChild("HumanoidRootPart") if not rootPart then return end local nearestPay = getNearestPayPart(rootPart) if nearestPay then local dropCFrame = nearestPay.CFrame * CFrame.new(0, 3, 0) moveBoxes(dropCFrame, true) end end) robButton.MouseButton1Click:Connect(function() local character = player.Character if not character then return end local rootPart = character:FindFirstChild("HumanoidRootPart") if not rootPart then return end local tycoons = workspace:FindFirstChild("Tycoons") if not tycoons then return end local myTycoon = getMyTycoon(rootPart) local originalCFrame = rootPart.CFrame for _, tycoon in ipairs(tycoons:GetChildren()) do if tycoon ~= myTycoon then local vault = tycoon:FindFirstChild("Vault") if vault then local prompt = vault:FindFirstChildWhichIsA("ProximityPrompt", true) if prompt and prompt.Parent and prompt.Parent:IsA("BasePart") then -- teleports you to the vault rootPart.CFrame = prompt.Parent.CFrame * CFrame.new(0, 3, 0) task.wait(0.5) -- waits for the server to update your position fireproximityprompt(prompt) task.wait(0.5) -- waits before moving to the next base end end end end -- teleports you back to where you started rootPart.CFrame = originalCFrame end) userInputService.InputBegan:Connect(function(input, gameProcessed) if not gameProcessed and input.KeyCode == Enum.KeyCode.K then frame.Visible = not frame.Visible end end)