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.
No comments yet. Be the first to comment!
1local Players = game:GetService("Players")
2local ReplicatedStorage = game:GetService("ReplicatedStorage")
3local VirtualInputManager = game:GetService("VirtualInputManager")
4local UserInputService = game:GetService("UserInputService")
5
6local LocalPlayer = Players.LocalPlayer
7local AutoDupeActive = false
8local DupeThread = nil
9
10local function Wait(t)
11 local start = tick()
12 while tick() - start < t do
13 if not AutoDupeActive then return false end
14 task.wait()
15 end
16 return true
17end
18-- tool
19local function GetTool()
20 local char = LocalPlayer.Character
21 local tool = char and char:FindFirstChildOfClass("Tool")
22 if not tool then
23 for _, item in ipairs(LocalPlayer.Backpack:GetChildren()) do
24 if item:IsA("Tool") and item:FindFirstChild("GunScript_Local") then
25 local hum = char and char:FindFirstChildOfClass("Humanoid")
26 if hum then
27 hum:EquipTool(item)
28 task.wait(0.1)
29 end
30 tool = item
31 break
32 end
33 end
34 end
35 return tool
36end
37-- dupes current item Γ’Β€ï¸ΒΓ’β¬ΒΔŸ©¹
38local function DupeCurrentItem()
39 pcall(function()
40 local msg = ReplicatedStorage:FindFirstChild("message")
41 local frame = msg and msg:FindFirstChild("Frame")
42 local label = frame and frame:FindFirstChild("TextLabel")
43 if label then label:Destroy() end
44 end)
45
46 if not Wait(1) then return false end
47
48 local tool = GetTool()
49 if not tool then return false end
50
51 local gunName = tool.Name
52
53 pcall(function()
54 local gui = LocalPlayer.PlayerGui:FindFirstChild("Bronx Market 2")
55 if gui then
56 gui.Body.Frames.Market.TextLabel.Text = "Picked: " .. gunName
57 end
58 end)
59
60 ReplicatedStorage:WaitForChild("ListWeaponRemote"):FireServer(gunName, 900000)
61 if not Wait(0.25) then return false end
62
63 local RS = (cloneref or function(x) return x end)(ReplicatedStorage)
64 local InvRemote = RS:WaitForChild("Inventory")
65 local BPRemote = RS:WaitForChild("BackpackRemote")
66 local char = LocalPlayer.Character
67
68 if char and char:FindFirstChildOfClass("Tool") then
69 local hum = char:FindFirstChildOfClass("Humanoid")
70 local name = char:FindFirstChildOfClass("Tool").Name
71 if hum then hum:UnequipTools() end
72 BPRemote:InvokeServer("Store", name)
73 if not Wait(0.5) then return false end
74 task.spawn(function() InvRemote:FireServer("Change", name, "Backpack", true) end)
75 if not Wait(1.2) then return false end
76 BPRemote:InvokeServer("Grab", name)
77 end
78
79 if not Wait(1) then return false end
80
81 pcall(function()
82 local gui = LocalPlayer.PlayerGui:FindFirstChild("Bronx Market 2")
83 local label = gui and gui.Body.Frames.Market.TextLabel
84 local selected = label and label.Text:match("Picked: (.+)")
85 if selected then
86 local btn = gui.Body.Frames.Guns.ScrollingFrame:FindFirstChild(selected)
87 if btn then
88 for _, c in pairs(getconnections(btn.MouseButton1Click)) do c:Fire() end
89 end
90 end
91 end)
92
93 if not Wait(2.4) then return false end
94
95 local hrp = LocalPlayer.Character and LocalPlayer.Character:FindFirstChild("HumanoidRootPart")
96 if hrp then
97 getgenv().SwimMethod = true
98 if not Wait(1) then getgenv().SwimMethod = false return false end
99 hrp.CFrame = CFrame.new(-185, 295, -998)
100 if not Wait(0.1) then getgenv().SwimMethod = false return false end
101 getgenv().SwimMethod = false
102 end
103
104 local map = workspace:FindFirstChild("1# Map")
105 if not Wait(1) then return false end
106
107 pcall(function()
108 if map then
109 local obj = map:GetChildren()[752]:GetChildren()[5]
110 local prompt = obj.ChestClicker.Items_aa75
111 if prompt:IsA("ProximityPrompt") then
112 fireproximityprompt(prompt)
113 end
114 end
115 end)
116
117 if not Wait(0.25) then return false end
118
119 local counts = {}
120 for _, item in ipairs(LocalPlayer.Backpack:GetChildren()) do
121 if item:IsA("Tool") and item:FindFirstChild("GunScript_Local") then
122 counts[item.Name] = (counts[item.Name] or 0) + 1
123 end
124 end
125
126 local success = false
127 for _, count in pairs(counts) do
128 if count > 1 then success = true break end
129 end
130
131 pcall(function()
132 local front = LocalPlayer.PlayerGui.Inventory.Background.Front
133 for _, btn in ipairs(front.BackpackFrame:GetChildren()) do
134 if btn:IsA("TextButton") and counts[btn.Text] and counts[btn.Text] > 1 then
135 local pos, size = btn.AbsolutePosition, btn.AbsoluteSize
136 VirtualInputManager:SendMouseButtonEvent(pos.X + size.X/3, pos.Y + size.Y, 0, true, game, 0)
137 task.wait(0.1)
138 VirtualInputManager:SendMouseButtonEvent(pos.X + size.X/3, pos.Y + size.Y, 0, false, game, 0)
139 task.wait()
140 local close = front.Close
141 VirtualInputManager:SendMouseButtonEvent(close.AbsolutePosition.X, close.AbsolutePosition.Y, 0, true, game, 0)
142 task.wait(0.1)
143 VirtualInputManager:SendMouseButtonEvent(close.AbsolutePosition.X, close.AbsolutePosition.Y, 0, false, game, 0)
144 break
145 end
146 end
147 end)
148
149 return success
150end
151
152local function StopDupe()
153 AutoDupeActive = false
154 getgenv().SwimMethod = false
155 if DupeThread then
156 task.cancel(DupeThread)
157 DupeThread = nil
158 end
159end
160
161local function StartAutoDupe()
162 if AutoDupeActive then
163 StopDupe()
164 return
165 end
166
167 AutoDupeActive = true
168
169 DupeThread = task.spawn(function()
170 while AutoDupeActive do
171 if not GetTool() then
172 StopDupe()
173 break
174 end
175
176 local success = DupeCurrentItem()
177
178 if success or not AutoDupeActive then
179 StopDupe()
180 break
181 end
182
183 if not Wait(2.75) then
184 StopDupe()
185 break
186 end
187 end
188 end)
189end
190-- keybind is "B" ΔΕΈΛΒ±
191UserInputService.InputBegan:Connect(function(input, gpe)
192 if gpe then return end
193 if input.KeyCode == Enum.KeyCode.B then
194 StartAutoDupe()
195 end
196end)