--!nonstrict --[[ Grab diagnostic v2 -- find the FAST working steal call. From the dump: Triggered handlers check a1:IsA("Player"), and HoldBegan disables other prompts. So test calling the game's own callbacks WITH the LocalPlayer argument, and whether the hold / HoldBegan is even needed. Stand next to a stealable brainrot, run, wait ~8s, paste the clipboard. ]] local Players = game:GetService("Players") local LP = Players.LocalPlayer local out = {} local function log(s) out[#out+1]=s ; print("[diag2] "..s) end local function save() local t = "grab diag v2\n"..string.rep("-",40).."\n"..table.concat(out,"\n") if type(setclipboard)=="function" then pcall(setclipboard,t) elseif type(toclipboard)=="function" then pcall(toclipboard,t) end if type(writefile)=="function" then pcall(writefile,"grabdiag2.txt",t) end end if type(getconnections) ~= "function" then log("no getconnections -- stop") save() return end -- nearest ENABLED steal prompt local plots = workspace:FindFirstChild("Plots") if not plots then log("no Plots") save() return end local root = LP.Character and LP.Character:FindFirstChild("HumanoidRootPart") local myPos = root and root.Position local best, bestD for _, plot in ipairs(plots:GetChildren()) do local pods = plot:FindFirstChild("AnimalPodiums") if pods then for _, d in ipairs(pods:GetDescendants()) do if d:IsA("ProximityPrompt") and d.Enabled then local host = d.Parent if host and host:IsA("Attachment") then host = host.Parent end local pos = host and host:IsA("BasePart") and host.Position local dist = (pos and myPos) and (pos-myPos).Magnitude or 9e9 if not bestD or dist < bestD then best, bestD = d, dist end end end end end if not best then log("no ENABLED steal prompt near you -- stand next to a stealable brainrot") save() return end log("target: "..best:GetFullName().." ("..string.format("%.0f",bestD or 0).." studs, Action="..tostring(best.ActionText)..")") local function conns(sig) local t = {} local ok, c = pcall(getconnections, sig) if ok and type(c)=="table" then for _,x in ipairs(c) do if type(x.Function)=="function" then t[#t+1]=x.Function end end end return t end local hb = conns(best.PromptButtonHoldBegan) local tr = conns(best.Triggered) log("callbacks: HoldBegan="..#hb.." Triggered="..#tr) local function stealing() return LP:GetAttribute("Stealing")==true end local function fireAll(list, arg) for _, fn in ipairs(list) do pcall(function() task.spawn(fn, arg) end) end end task.spawn(function() task.wait(1) log("TEST A: Triggered(LocalPlayer) only, NO hold, NO HoldBegan") local b = stealing() ; fireAll(tr, LP) ; task.wait(1.2) log(" Stealing "..tostring(b).."->"..tostring(stealing())) task.wait(1) log("TEST B: HoldBegan(LP) + Triggered(LP), instant") b = stealing() ; fireAll(hb, LP) ; task.wait(0.05) ; fireAll(tr, LP) ; task.wait(1.2) log(" Stealing "..tostring(b).."->"..tostring(stealing())) task.wait(1) log("TEST C: HoldBegan(LP), wait 0.3, Triggered(LP)") b = stealing() ; fireAll(hb, LP) ; task.wait(0.3) ; fireAll(tr, LP) ; task.wait(1.2) log(" Stealing "..tostring(b).."->"..tostring(stealing())) log("") log(">>> whichever TEST flips Stealing false->true is the method. Paste this to me. <<<") save() print("[diag2] done -- report on clipboard") end) save()