local Players = game:GetService("Players") local LocalPlayer = Players.LocalPlayer local Workspace = game:GetService("Workspace") local RunService = game:GetService("RunService") local function safeCall(fn, ...) local ok, res = pcall(fn, ...) return ok, res end local ScreenGui = Instance.new("ScreenGui") ScreenGui.Name = "SynapseAutoCollectGui" ScreenGui.ResetOnSpawn = false ScreenGui.Parent = game:GetService("CoreGui") local Frame = Instance.new("Frame") Frame.Size = UDim2.new(0, 360, 0, 220) Frame.Position = UDim2.new(0.5, -180, 0.5, -110) Frame.BackgroundColor3 = Color3.fromRGB(30, 30, 30) Frame.Visible = false Frame.Parent = ScreenGui local UIPadding = Instance.new("UIPadding") UIPadding.PaddingLeft = UDim.new(0, 12) UIPadding.PaddingRight = UDim.new(0, 12) UIPadding.PaddingTop = UDim.new(0, 12) UIPadding.PaddingBottom = UDim.new(0, 12) UIPadding.Parent = Frame local UIListLayout = Instance.new("UIListLayout") UIListLayout.Padding = UDim.new(0, 14) UIListLayout.SortOrder = Enum.SortOrder.LayoutOrder UIListLayout.Parent = Frame local function createOption(name) local optionFrame = Instance.new("Frame") optionFrame.Size = UDim2.new(1, 0, 0, 44) optionFrame.BackgroundTransparency = 1 optionFrame.Parent = Frame local label = Instance.new("TextLabel") label.Text = name label.Size = UDim2.new(0.7, 0, 1, 0) label.BackgroundTransparency = 1 label.TextColor3 = Color3.new(1, 1, 1) label.TextXAlignment = Enum.TextXAlignment.Left label.Font = Enum.Font.SourceSansBold label.TextSize = 20 label.Parent = optionFrame local toggle = Instance.new("TextButton") toggle.Size = UDim2.new(0.3, 0, 1, 0) toggle.Position = UDim2.new(0.7, 0, 0, 0) toggle.Text = "False" toggle.BackgroundColor3 = Color3.fromRGB(100, 100, 100) toggle.TextColor3 = Color3.new(1, 1, 1) toggle.Font = Enum.Font.SourceSansBold toggle.TextSize = 18 toggle.Parent = optionFrame return toggle end local ToggleButton = Instance.new("TextButton") ToggleButton.Size = UDim2.new(0, 100, 0, 34) ToggleButton.Position = UDim2.new(0, 12, 0, 12) ToggleButton.Text = "Toggle GUI" ToggleButton.BackgroundColor3 = Color3.fromRGB(50, 50, 50) ToggleButton.TextColor3 = Color3.new(1, 1, 1) ToggleButton.Parent = ScreenGui local HideTycoonsCheckbox = createOption("Hide Other Tycoons") local RemovePlayersCheckbox = createOption("Remove Players") local AutoCollectCheckbox = createOption("AutoCollect (fireproximityprompt)") local hideTycoonsEnabled = false local hideTycoonsWasEnabled = false local removePlayersEnabled = false local autoCollectEnabled = false local function getAllFurnaces() local furnaces = {} local Map = Workspace:FindFirstChild("Map") if not Map then return furnaces end local Tycoons = Map:FindFirstChild("Tycoons") if not Tycoons then return furnaces end for i = 1, 6 do local tycoon = Tycoons:FindFirstChild("Tycoon" .. i) if tycoon then local furnaceFolder = tycoon:FindFirstChild("Furnaces") if furnaceFolder then for j = 0, 11 do local fname = (j == 0) and "Furnace" or ("Furnace" .. j) local f = furnaceFolder:FindFirstChild(fname) if f then table.insert(furnaces, f) end end end end end return furnaces end local function clearTycoonVisuals() local Map = Workspace:FindFirstChild("Map") if not Map then return end local Tycoons = Map:FindFirstChild("Tycoons") if not Tycoons then return end for i = 1, 6 do local tycoon = Tycoons:FindFirstChild("Tycoon" .. i) if tycoon and tycoon:GetAttribute("Owner") ~= LocalPlayer.Name then for _, obj in pairs(tycoon:GetChildren()) do if obj:IsA("Model") and Players:GetPlayerFromCharacter(obj) then else pcall(function() obj:Destroy() end) end end end end end local function rejoin() local TeleportService = game:GetService("TeleportService") pcall(function() TeleportService:Teleport(game.PlaceId, LocalPlayer) end) end local function setPlayersVisibility(visible) for _, player in pairs(Players:GetPlayers()) do if player ~= LocalPlayer and player.Character then for _, part in pairs(player.Character:GetDescendants()) do if part:IsA("BasePart") then pcall(function() part.Transparency = visible and 0 or 1 end) elseif part:IsA("Decal") then pcall(function() part.Transparency = visible and 0 or 1 end) elseif part:IsA("ParticleEmitter") or part:IsA("Trail") then pcall(function() part.Enabled = visible end) elseif part:IsA("BillboardGui") or part:IsA("SurfaceGui") then pcall(function() part.Enabled = visible end) end end end end end Players.PlayerAdded:Connect(function(player) player.CharacterAdded:Connect(function() if removePlayersEnabled and player ~= LocalPlayer then task.wait(0.5) setPlayersVisibility(false) end end) end) for _, p in pairs(Players:GetPlayers()) do p.CharacterAdded:Connect(function() if removePlayersEnabled and p ~= LocalPlayer then task.wait(0.5) setPlayersVisibility(false) end end) end local debounce = {} local DEBOUNCE_TIME = 0.8 local SCAN_INTERVAL = 0.32 local function tryFireProximityPrompt(prox) if type(fireproximityprompt) ~= "function" then return false end local ok, res = pcall(function() fireproximityprompt(prox) end) return ok end local function scanAndAutoCollect() local furnaces = getAllFurnaces() for _, furnace in ipairs(furnaces) do local skript = furnace:FindFirstChild("Skript") if skript then local proxFolder = skript:FindFirstChild("Proximity") if proxFolder then local prox = proxFolder:FindFirstChild("TakeOutMetal") if prox and prox:IsA("ProximityPrompt") and prox.Enabled then local id = tostring(prox) if (not debounce[id]) or (tick() - debounce[id] > DEBOUNCE_TIME) then debounce[id] = tick() safeCall(tryFireProximityPrompt, prox) end end end end end end local autoCollectThread local function startAutoCollectLoop() if autoCollectThread then return end autoCollectThread = task.spawn(function() while autoCollectEnabled do scanAndAutoCollect() task.wait(SCAN_INTERVAL) end autoCollectThread = nil end) end local function stopAutoCollectLoop() autoCollectEnabled = false end HideTycoonsCheckbox.MouseButton1Click:Connect(function() hideTycoonsEnabled = not hideTycoonsEnabled HideTycoonsCheckbox.Text = tostring(hideTycoonsEnabled) if hideTycoonsEnabled then clearTycoonVisuals() hideTycoonsWasEnabled = true else if hideTycoonsWasEnabled then rejoin() end end end) RemovePlayersCheckbox.MouseButton1Click:Connect(function() removePlayersEnabled = not removePlayersEnabled RemovePlayersCheckbox.Text = tostring(removePlayersEnabled) if removePlayersEnabled then setPlayersVisibility(false) else setPlayersVisibility(true) end end) AutoCollectCheckbox.MouseButton1Click:Connect(function() autoCollectEnabled = not autoCollectEnabled AutoCollectCheckbox.Text = tostring(autoCollectEnabled) if autoCollectEnabled then startAutoCollectLoop() else stopAutoCollectLoop() end end) ToggleButton.MouseButton1Click:Connect(function() Frame.Visible = not Frame.Visible end)