local Players = game:GetService("Players")
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local VirtualInputManager = game:GetService("VirtualInputManager")
local UserInputService = game:GetService("UserInputService")

local LocalPlayer = Players.LocalPlayer
local AutoDupeActive = false
local DupeThread = nil

local function Wait(t)
    local start = tick()
    while tick() - start < t do
        if not AutoDupeActive then return false end
        task.wait()
    end
    return true
end
-- tool
local function GetTool()
    local char = LocalPlayer.Character
    local tool = char and char:FindFirstChildOfClass("Tool")
    if not tool then
        for _, item in ipairs(LocalPlayer.Backpack:GetChildren()) do
            if item:IsA("Tool") and item:FindFirstChild("GunScript_Local") then
                local hum = char and char:FindFirstChildOfClass("Humanoid")
                if hum then
                    hum:EquipTool(item)
                    task.wait(0.1)
                end
                tool = item
                break
            end
        end
    end
    return tool
end
-- dupes current item ❤️‍🩹
local function DupeCurrentItem()
    pcall(function()
        local msg = ReplicatedStorage:FindFirstChild("message")
        local frame = msg and msg:FindFirstChild("Frame")
        local label = frame and frame:FindFirstChild("TextLabel")
        if label then label:Destroy() end
    end)

    if not Wait(1) then return false end

    local tool = GetTool()
    if not tool then return false end

    local gunName = tool.Name

    pcall(function()
        local gui = LocalPlayer.PlayerGui:FindFirstChild("Bronx Market 2")
        if gui then
            gui.Body.Frames.Market.TextLabel.Text = "Picked: " .. gunName
        end
    end)

    ReplicatedStorage:WaitForChild("ListWeaponRemote"):FireServer(gunName, 900000)
    if not Wait(0.25) then return false end

    local RS = (cloneref or function(x) return x end)(ReplicatedStorage)
    local InvRemote = RS:WaitForChild("Inventory")
    local BPRemote = RS:WaitForChild("BackpackRemote")
    local char = LocalPlayer.Character

    if char and char:FindFirstChildOfClass("Tool") then
        local hum = char:FindFirstChildOfClass("Humanoid")
        local name = char:FindFirstChildOfClass("Tool").Name
        if hum then hum:UnequipTools() end
        BPRemote:InvokeServer("Store", name)
        if not Wait(0.5) then return false end
        task.spawn(function() InvRemote:FireServer("Change", name, "Backpack", true) end)
        if not Wait(1.2) then return false end
        BPRemote:InvokeServer("Grab", name)
    end

    if not Wait(1) then return false end

    pcall(function()
        local gui = LocalPlayer.PlayerGui:FindFirstChild("Bronx Market 2")
        local label = gui and gui.Body.Frames.Market.TextLabel
        local selected = label and label.Text:match("Picked: (.+)")
        if selected then
            local btn = gui.Body.Frames.Guns.ScrollingFrame:FindFirstChild(selected)
            if btn then
                for _, c in pairs(getconnections(btn.MouseButton1Click)) do c:Fire() end
            end
        end
    end)

    if not Wait(2.4) then return false end

    local hrp = LocalPlayer.Character and LocalPlayer.Character:FindFirstChild("HumanoidRootPart")
    if hrp then
        getgenv().SwimMethod = true
        if not Wait(1) then getgenv().SwimMethod = false return false end
        hrp.CFrame = CFrame.new(-185, 295, -998)
        if not Wait(0.1) then getgenv().SwimMethod = false return false end
        getgenv().SwimMethod = false
    end

    local map = workspace:FindFirstChild("1# Map")
    if not Wait(1) then return false end

    pcall(function()
        if map then
            local obj = map:GetChildren()[752]:GetChildren()[5]
            local prompt = obj.ChestClicker.Items_aa75
            if prompt:IsA("ProximityPrompt") then
                fireproximityprompt(prompt)
            end
        end
    end)

    if not Wait(0.25) then return false end

    local counts = {}
    for _, item in ipairs(LocalPlayer.Backpack:GetChildren()) do
        if item:IsA("Tool") and item:FindFirstChild("GunScript_Local") then
            counts[item.Name] = (counts[item.Name] or 0) + 1
        end
    end

    local success = false
    for _, count in pairs(counts) do
        if count > 1 then success = true break end
    end

    pcall(function()
        local front = LocalPlayer.PlayerGui.Inventory.Background.Front
        for _, btn in ipairs(front.BackpackFrame:GetChildren()) do
            if btn:IsA("TextButton") and counts[btn.Text] and counts[btn.Text] > 1 then
                local pos, size = btn.AbsolutePosition, btn.AbsoluteSize
                VirtualInputManager:SendMouseButtonEvent(pos.X + size.X/3, pos.Y + size.Y, 0, true, game, 0)
                task.wait(0.1)
                VirtualInputManager:SendMouseButtonEvent(pos.X + size.X/3, pos.Y + size.Y, 0, false, game, 0)
                task.wait()
                local close = front.Close
                VirtualInputManager:SendMouseButtonEvent(close.AbsolutePosition.X, close.AbsolutePosition.Y, 0, true, game, 0)
                task.wait(0.1)
                VirtualInputManager:SendMouseButtonEvent(close.AbsolutePosition.X, close.AbsolutePosition.Y, 0, false, game, 0)
                break
            end
        end
    end)

    return success
end

local function StopDupe()
    AutoDupeActive = false
    getgenv().SwimMethod = false
    if DupeThread then
        task.cancel(DupeThread)
        DupeThread = nil
    end
end

local function StartAutoDupe()
    if AutoDupeActive then
        StopDupe()
        return
    end

    AutoDupeActive = true

    DupeThread = task.spawn(function()
        while AutoDupeActive do
            if not GetTool() then
                StopDupe()
                break
            end

            local success = DupeCurrentItem()

            if success or not AutoDupeActive then
                StopDupe()
                break
            end

            if not Wait(2.75) then
                StopDupe()
                break
            end
        end
    end)
end
-- keybind is "B" 😱
UserInputService.InputBegan:Connect(function(input, gpe)
    if gpe then return end
    if input.KeyCode == Enum.KeyCode.B then
        StartAutoDupe()
    end
end)
(🥊MINI DROP🔥) THA BRONX 3🐍 Open Source Item & Gun Duplicator
1,848 views
3 months ago

Open Source Item & Gun Duplicator

WORKING
Free

Description

Automate gun and item duplication in The Bronx 3 with this open-source script. Easily duplicate weapons and inventory items using the B key. Fast, reliable, and fully automated for efficient item farming.

Features

  • Keybind B
  • Auto dupe guns and inventory items

Related Scripts