local frag = getgenv().fragESP local cam = workspace.CurrentCamera local old = cam.CameraType cam.CameraType = Enum.CameraType.Scriptable -- preview: compare drawn box against the dummy's real head/leg projection local prev = getgenv().Library.EspPreviewState local vcam = prev.Viewport.CurrentCamera local ov = prev.Overlay task.wait(0.3) local function ProjectV(P) local rel = vcam.CFrame:PointToObjectSpace(P) if rel.Z >= -0.05 then return nil end local vsz = ov.AbsoluteSize local f = (vsz.Y / 2) / math.tan(math.rad(vcam.FieldOfView * 0.5)) return Vector2.new((vsz.X / 2) + (rel.X / -rel.Z) * f, (vsz.Y / 2) - (rel.Y / -rel.Z) * f) end local ext = frag.BodyExtents(prev.Dummy) local pTop, pBot = ProjectV(ext.top), ProjectV(ext.bottom) local pL, pR = ProjectV(ext.left), ProjectV(ext.right) local lt, bd, ls, rs for _, v in ipairs(ov:GetChildren()) do if v.Visible then if v.Name == "LeftTop" then lt = {y = v.Position.Y.Offset, w = v.Size.X.Offset} end if v.Name == "BottomDown" then bd = v.Position.Y.Offset end if v.Name == "LeftSide" then ls = v.Size.Y.Offset end if v.Name == "RightSide" then rs = v.Position.X.Offset end end end print(string.format("PREVIEW expect top=%.0f bottom=%.0f -> drawn top=%s bottom=%s height=%s", math.min(pTop.Y, pBot.Y), math.max(pTop.Y, pBot.Y), tostring(lt and lt.y), tostring(bd), tostring(ls))) -- live: point the camera at someone and compare local target for _, p in ipairs(game:GetService("Players"):GetChildren()) do if p ~= game:GetService("Players").LocalPlayer and p.Character and p.Character:FindFirstChild("Head") and p.Character:FindFirstChild("HumanoidRootPart") then target = p end end local pos = target.Character.HumanoidRootPart.Position cam.CFrame = CFrame.lookAt(pos + Vector3.new(0, 3, 22), pos) task.wait(0.4) local char = target.Character local ext2 = frag.BodyExtents(char) local function P(P3) local sp = cam:WorldToScreenPoint(P3) return sp end local t, b, l, r = P(ext2.top), P(ext2.bottom), P(ext2.left), P(ext2.right) local eTop = math.min(t.Y, b.Y, l.Y, r.Y) - 1 local eBot = math.max(t.Y, b.Y, l.Y, r.Y) + 1 local eL = math.min(t.X, b.X, l.X, r.X) - 1 local eR = math.max(t.X, b.X, l.X, r.X) + 1 for _, v in ipairs(frag.holder:GetChildren()) do if v:GetAttribute("fragPlayer") == target.Name and v.Visible and v.Name == "LeftTop" then print(string.format("LIVE %s expect top=%.0f bottom=%.0f width=%.0f | drawn w=%d y=%.0f", target.Name, eTop, eBot, eR - eL, v.Size.X.Offset, v.Position.Y.Offset)) end end cam.CameraType = old