local LP = game:GetService("Players").LocalPlayer local JB = workspace:FindFirstChild("Janitor Bucket") print("[b] bucket:", tostring(JB)) if not JB then return end for _, D in ipairs(JB:GetDescendants()) do if D:IsA("ProximityPrompt") then print(string.format("[b] prompt %s [%s|%s] hold=%.2f dist=%.1f enabled=%s parent=%s", D:GetFullName(), D.ActionText, D.ObjectText, D.HoldDuration, D.MaxActivationDistance, tostring(D.Enabled), D.Parent.Name)) end end for _, D in ipairs(JB:GetChildren()) do print("[b] " .. D.ClassName .. " " .. D.Name .. " (" .. #D:GetChildren() .. " kids)") end local Pr = JB:FindFirstChild("ProxPart") and JB.ProxPart:FindFirstChildWhichIsA("ProximityPrompt") local hrp = LP.Character and LP.Character:FindFirstChild("HumanoidRootPart") print("[b] dist:", hrp and (hrp.Position - JB.ProxPart.Position).Magnitude or "?", "| our team:", LP.Team and LP.Team.Name) if hrp then local t0 = os.clock() while LP:GetAttribute("LastACPos") and os.clock() - t0 < 1.2 do task.wait() end hrp.CFrame = JB.ProxPart.CFrame + Vector3.new(0, 3, 0) task.wait(0.5) print("[b] dist after move:", (hrp.Position - JB.ProxPart.Position).Magnitude) end for i = 1, 5 do pcall(fireproximityprompt, Pr) task.wait(1.2) local mop = LP.Character:FindFirstChild("Mop") or LP.Backpack:FindFirstChild("Mop") print(string.format("[b] try %d mop=%s promptEnabled=%s", i, tostring(mop), tostring(Pr and Pr.Enabled))) if mop then break end end print("[b] GUI hints:") for _, D in ipairs(LP.PlayerGui:GetDescendants()) do if D:IsA("TextLabel") and D.Text ~= "" and D.Visible then local t = string.lower(D.Text) if string.find(t, "job") or string.find(t, "mop") or string.find(t, "clean") or string.find(t, "work") then print("[b] " .. D:GetFullName() .. " = " .. D.Text:sub(1, 80)) end end end