For some reason, when calling GetGuiObjectsAtPosition, all it returns is an empty table ("{}") even though there's clearly a frame with size {1, 0}, {1, 0} in the middle of the screen.
Ran in LocalScript
game:GetService("Players").LocalPlayer:WaitForChild("PlayerGui"):GetGuiObjectsAtPosition(50, 50)
But when I run the same exact thing in the command bar while playing, it returns what's expected.
Have you tried putting a wait before printing out the results? I did and it worked. Pretty sure you ran the script before the frame has loaded?