In Online Play mode, BillboardGuis are rendered 10 pixels too low on the screen.
This can be seen when making a BillboardGui that is supposed to cover the screen.
I noticed the bug today, and BillboardGuis were working correctly at least on the 15th of July 2014 and before. The bug only occurs in Online Play mode, not in Studio. The bug occurs 100% of the time in Online Play mode.
To see the bug in action, run the following code using a LocalScript on your client in Online Play mode, for example in a Script Builder place.
local Player = Game:GetService("Players").LocalPlayer
local Mouse = Player:GetMouse()
Player.Character = nil
local camera = Workspace.CurrentCamera
local cameraCFrame = camera.CoordinateFrame
camera.CameraType = "Fixed"
local part = Instance.new("Part")
part.Anchored = true
part.CanCollide = false
part.CFrame = cameraCFrame * CFrame.new(0, 0, -1)
part.FormFactor = "Symmetric"
part.Size = Vector3.new(1, 1, 1)
local billboardGui = Instance.new("BillboardGui", part)
billboardGui.Size = UDim2.new(0, Mouse.ViewSizeX, 0, Mouse.ViewSizeY)
local frame = Instance.new("Frame", billboardGui)
frame.BorderSizePixel = 0
frame.Size = UDim2.new(1, 0, 1, 0)
part.Parent = Workspace
Wait(10)
part:Destroy()
The result should look like this:
As can be seen in the attachment, there is a 10 pixel space at the top of the screen. This is counter-intuitive, was not the case on (at least) the 15th of July and before, and while the problem might not seem very big in light of the example, it suggests that all BillboardGuis are rendered 10 pixels too low, which is a problem of much larger scale.
A temporary solution is to use SizeOffset to accomodate for the offset:
billboardGui.SizeOffset = Vector2.new(0, -10 / Mouse.ViewSizeY) -- SizeOffset is upside down
However, I think it is unpleasant to script in such an unpredictable and counter-intuitive environment.