local Players = game:GetService("Players") local Workspace = game:GetService("Workspace") local UserInputService = game:GetService("UserInputService") local RunService = game:GetService("RunService") local StarterGui = game:GetService("StarterGui") local ReplicatedStorage = game:GetService("ReplicatedStorage") local LocalPlayer = Players.LocalPlayer local currentSelections = {} local visitedBlocks = {} local isMinimized = false local speedEnabled = false local autoWalkState = 0 local currentTarget = nil local fullAutoEnabled = false local ZapEvent = ReplicatedStorage:WaitForChild("ZAP"):WaitForChild("ZAP_RELIABLE") local function fireColorRemote(id) local colorId = tonumber(id) if colorId and ZapEvent then local b = buffer.create(2) buffer.writeu8(b, 0, 0x0F) buffer.writeu8(b, 1, colorId) ZapEvent:FireServer(b, {}) end end local TracerBeam = Instance.new("Beam") local PlayerAttachment = Instance.new("Attachment") local TargetAttachment = Instance.new("Attachment") TracerBeam.Attachment0 = PlayerAttachment TracerBeam.Attachment1 = TargetAttachment TracerBeam.Width0, TracerBeam.Width1 = 0.04, 0.04 TracerBeam.Color = ColorSequence.new(Color3.fromRGB(0, 255, 255)) TracerBeam.FaceCamera = true TracerBeam.Enabled = false TracerBeam.Parent = Workspace local ScreenGui = Instance.new("ScreenGui") local MainFrame = Instance.new("Frame") local TextBox = Instance.new("TextBox") local SearchButton = Instance.new("TextButton") local ClearButton = Instance.new("TextButton") local SpeedButton = Instance.new("TextButton") local AutoWalkButton = Instance.new("TextButton") local FullAutoButton = Instance.new("TextButton") local MinButton = Instance.new("TextButton") local PingLabel = Instance.new("TextLabel") local UICorner = Instance.new("UICorner") local UIStrokeMain = Instance.new("UIStroke") ScreenGui.Name = "ColorFinder_Final" ScreenGui.Parent = LocalPlayer:WaitForChild("PlayerGui") ScreenGui.ResetOnSpawn = false MainFrame.Size = UDim2.new(0, 130, 0, 165) MainFrame.Position = UDim2.new(0.5, -65, 0.3, 0) MainFrame.BackgroundColor3 = Color3.fromRGB(15, 15, 15) MainFrame.BackgroundTransparency = 0.2 MainFrame.Active = true MainFrame.Draggable = true MainFrame.Parent = ScreenGui UICorner.CornerRadius = UDim.new(0, 8) UICorner.Parent = MainFrame UIStrokeMain.Thickness = 2 UIStrokeMain.Color = Color3.fromRGB(255, 255, 255) UIStrokeMain.Transparency = 0.8 UIStrokeMain.Parent = MainFrame PingLabel.Size = UDim2.new(0.4, 0, 0.08, 0) PingLabel.Position = UDim2.new(0.55, 0, 0.86, 0) PingLabel.BackgroundTransparency = 1 PingLabel.TextColor3 = Color3.new(0, 1, 0) PingLabel.Text = "--- ms" PingLabel.Font = Enum.Font.GothamBold PingLabel.TextSize = 8 PingLabel.Parent = MainFrame local function createBtn(btn, borderColor, text, pos) btn.Size = UDim2.new(0.85, 0, 0.11, 0) btn.Position = pos btn.BackgroundColor3 = borderColor btn.BackgroundTransparency = 0.9 btn.TextColor3 = Color3.new(1, 1, 1) btn.Text = text btn.Font = Enum.Font.GothamBold btn.TextSize = 9 btn.Parent = MainFrame Instance.new("UICorner", btn).CornerRadius = UDim.new(0, 4) local s = Instance.new("UIStroke", btn) s.Thickness = 1.2 s.Color = borderColor s.ApplyStrokeMode = Enum.ApplyStrokeMode.Border return s end TextBox.Size = UDim2.new(0.85, 0, 0.11, 0) TextBox.Position = UDim2.new(0.075, 0, 0.05, 0) TextBox.BackgroundColor3 = Color3.new(1, 1, 1) TextBox.BackgroundTransparency = 0.9 TextBox.TextColor3 = Color3.new(1, 1, 1) TextBox.PlaceholderText = "ColorId..." TextBox.Text = "" TextBox.Font = Enum.Font.Gotham TextBox.TextSize = 9 TextBox.Parent = MainFrame Instance.new("UICorner", TextBox).CornerRadius = UDim.new(0, 4) createBtn(SearchButton, Color3.fromRGB(0, 255, 255), "Highlight", UDim2.new(0.075, 0, 0.18, 0)) createBtn(ClearButton, Color3.fromRGB(255, 75, 75), "Clear", UDim2.new(0.075, 0, 0.31, 0)) local speedS = createBtn(SpeedButton, Color3.new(1, 1, 1), "Speed: OFF", UDim2.new(0.075, 0, 0.44, 0)) local walkS = createBtn(AutoWalkButton, Color3.new(1, 1, 1), "Auto: OFF", UDim2.new(0.075, 0, 0.57, 0)) local fullAutoS = createBtn(FullAutoButton, Color3.new(1, 1, 1), "Full: OFF", UDim2.new(0.075, 0, 0.70, 0)) MinButton.Size = UDim2.new(0.4, 0, 0.08, 0) MinButton.Position = UDim2.new(0.05, 0, 0.86, 0) MinButton.BackgroundTransparency = 1 MinButton.TextColor3 = Color3.new(0.6, 0.6, 0.6) MinButton.Text = "Minimize" MinButton.Font = Enum.Font.Gotham MinButton.TextSize = 8 MinButton.Parent = MainFrame task.spawn(function() while true do local p = math.floor(LocalPlayer:GetNetworkPing() * 1000) PingLabel.Text = p .. "ms" PingLabel.TextColor3 = p < 100 and Color3.new(0,1,0.4) or p < 200 and Color3.new(1,0.8,0) or Color3.new(1,0.2,0) task.wait(1) end end) local function clear() for b, d in pairs(currentSelections) do if d.SelectionBox then d.SelectionBox:Destroy() end if d.Connection then d.Connection:Disconnect() end end currentSelections, visitedBlocks, currentTarget, TracerBeam.Enabled = {}, {}, nil, false end local function scan(id) clear() local b = Workspace:FindFirstChild("Bases") if not b then return end local workingOnBase = LocalPlayer:GetAttribute("WorkingOn") if not workingOnBase then return end local playerBase = b:FindFirstChild(tostring(workingOnBase)) if not playerBase then return end local bl = playerBase:FindFirstChild("Blocks") if bl then for _, block in pairs(bl:GetChildren()) do if tostring(block:GetAttribute("colorId")) == tostring(id) and block.CanTouch then local s = Instance.new("SelectionBox", block) s.Adornee, s.Color3, s.LineThickness = block, Color3.new(0,1,1), 0.02 local c c = block:GetPropertyChangedSignal("CanTouch"):Connect(function() if not block.CanTouch then s:Destroy() c:Disconnect() currentSelections[block] = nil if currentTarget == block then currentTarget = nil TracerBeam.Enabled = false end end end) currentSelections[block] = {SelectionBox = s, Connection = c} end end end end local function getNear(iv) local c = LocalPlayer.Character local r = c and c:FindFirstChild("HumanoidRootPart") if not r then return nil end local nd, nb, rp = math.huge, nil, r.Position for b, _ in pairs(currentSelections) do if b and b.Parent and not (iv and visitedBlocks[b]) then local bp = b.Position local dx, dz = bp.X - rp.X, bp.Z - rp.Z local d = dx*dx + dz*dz if d < nd then nd, nb = d, b end end end return nb end RunService.Heartbeat:Connect(function() local c = LocalPlayer.Character if not c then return end local h, r = c:FindFirstChildOfClass("Humanoid"), c:FindFirstChild("HumanoidRootPart") if not h or not r then return end if speedEnabled then h.WalkSpeed = 32 end if autoWalkState > 0 then if not currentTarget or not currentSelections[currentTarget] then currentTarget = getNear(autoWalkState == 2) if currentTarget then PlayerAttachment.Parent, TargetAttachment.Parent, TracerBeam.Enabled = r, currentTarget, true else TracerBeam.Enabled = false end end if currentTarget then h:MoveTo(currentTarget.Position) if autoWalkState == 2 then local p1, p2 = r.Position, currentTarget.Position local dx, dz = p1.X - p2.X, p1.Z - p2.Z if (dx*dx + dz*dz) <= 2.25 then visitedBlocks[currentTarget], currentTarget, TracerBeam.Enabled = true, nil, false end end end else TracerBeam.Enabled = false end end) SpeedButton.MouseButton1Click:Connect(function() speedEnabled = not speedEnabled speedS.Color = speedEnabled and Color3.new(0,1,0.5) or Color3.new(1,1,1) SpeedButton.BackgroundTransparency = speedEnabled and 0.7 or 0.9 SpeedButton.Text = speedEnabled and "Speed: ON" or "Speed: OFF" if not speedEnabled then local h = LocalPlayer.Character:FindFirstChildOfClass("Humanoid") if h then h.WalkSpeed = 16 end end end) AutoWalkButton.MouseButton1Click:Connect(function() autoWalkState = (autoWalkState + 1) % 3 currentTarget, visitedBlocks = nil, {} if autoWalkState > 0 and next(currentSelections) == nil then for i = 1, 30 do fireColorRemote(i) scan(i) if next(currentSelections) ~= nil then TextBox.Text = tostring(i) break end end end if autoWalkState == 1 then walkS.Color, AutoWalkButton.Text, TracerBeam.Color = Color3.new(1,1,0), "Auto: SLOW", ColorSequence.new(Color3.new(1,1,0)) AutoWalkButton.BackgroundTransparency = 0.7 elseif autoWalkState == 2 then walkS.Color, AutoWalkButton.Text, TracerBeam.Color = Color3.new(0,1,1), "Auto: FAST", ColorSequence.new(Color3.new(0,1,1)) AutoWalkButton.BackgroundTransparency = 0.7 else walkS.Color, AutoWalkButton.Text, AutoWalkButton.BackgroundTransparency = Color3.new(1,1,1), "Auto: OFF", 0.9 clear() end end) FullAutoButton.MouseButton1Click:Connect(function() fullAutoEnabled = not fullAutoEnabled if fullAutoEnabled then fullAutoS.Color = Color3.new(0,1,0.5) FullAutoButton.BackgroundTransparency = 0.7 FullAutoButton.Text = "Full: ON" task.spawn(function() while fullAutoEnabled do local foundAny = false for i = 1, 30 do if not fullAutoEnabled then break end TextBox.Text = tostring(i) fireColorRemote(i) scan(i) task.wait(0.1) if next(currentSelections) ~= nil then foundAny = true autoWalkState = 2 walkS.Color, AutoWalkButton.Text, TracerBeam.Color = Color3.new(0,1,1), "Auto: FAST", ColorSequence.new(Color3.new(0,1,1)) AutoWalkButton.BackgroundTransparency = 0.7 currentTarget, visitedBlocks = nil, {} -- Wait for Fast Mode to visit all blocks while fullAutoEnabled and next(currentSelections) ~= nil do local allVisited = true for b, _ in pairs(currentSelections) do if not visitedBlocks[b] then allVisited = false break end end -- If fast mode visited everything, break to check if cleanup is needed if allVisited and currentTarget == nil then break end task.wait(0.5) end if not fullAutoEnabled then break end -- If blocks STILL exist after Fast Mode finishes its pass, switch to Slow Mode if next(currentSelections) ~= nil then autoWalkState = 1 walkS.Color, AutoWalkButton.Text, TracerBeam.Color = Color3.new(1,1,0), "Auto: SLOW", ColorSequence.new(Color3.new(1,1,0)) AutoWalkButton.BackgroundTransparency = 0.7 currentTarget = nil -- Wait for Slow Mode to completely clear them while fullAutoEnabled and next(currentSelections) ~= nil do task.wait(0.5) end end if not fullAutoEnabled then break end task.wait(0.5) end end if not foundAny or not fullAutoEnabled then fullAutoEnabled = false fullAutoS.Color = Color3.new(1,1,1) FullAutoButton.BackgroundTransparency = 0.9 FullAutoButton.Text = "Full: OFF" autoWalkState = 0 walkS.Color, AutoWalkButton.Text, AutoWalkButton.BackgroundTransparency = Color3.new(1,1,1), "Auto: OFF", 0.9 break end end end) else fullAutoS.Color = Color3.new(1,1,1) FullAutoButton.BackgroundTransparency = 0.9 FullAutoButton.Text = "Full: OFF" end end) MinButton.MouseButton1Click:Connect(function() isMinimized = not isMinimized if isMinimized then MainFrame.Size, MainFrame.Position = UDim2.new(0, 60, 0, 25), UDim2.new(0.5, -30, 0, 5) TextBox.Visible, SearchButton.Visible, ClearButton.Visible, SpeedButton.Visible, AutoWalkButton.Visible, PingLabel.Visible, FullAutoButton.Visible = false, false, false, false, false, false, false MinButton.Size, MinButton.Position, MinButton.Text = UDim2.new(1, 0, 1, 0), UDim2.new(0, 0, 0, 0), "Restore" else MainFrame.Size, MainFrame.Position = UDim2.new(0, 130, 0, 165), UDim2.new(0.5, -65, 0.3, 0) TextBox.Visible, SearchButton.Visible, ClearButton.Visible, SpeedButton.Visible, AutoWalkButton.Visible, PingLabel.Visible, FullAutoButton.Visible = true, true, true, true, true, true, true MinButton.Size, MinButton.Position, MinButton.Text = UDim2.new(0.4, 0, 0.08, 0), UDim2.new(0.05, 0, 0.86, 0), "Minimize" end end) SearchButton.MouseButton1Click:Connect(function() if TextBox.Text ~= "" then fireColorRemote(TextBox.Text) scan(TextBox.Text) end end) ClearButton.MouseButton1Click:Connect(function() clear() TextBox.Text = "" end)