GUI coordinates are like this:
X: {0,0}
Y: {0,0}
The second number is pixels, and the first is the screen width from 0 to 1. To keep it the same size on every screen, position and size everything using the first number.
Also, the first number is not always based on screen size, if it is a child of a frame or something then it will be based on the size of that, meaning if you had a frame inside of another frame, then 1 would be the end of that frame it is a child of, instead of the whole screen.
Difficult to explain, but basically to keep everything the same size relative to the screen size, always use the first number.
You can however use pixels for things you specifically want to be a certain pixel length across all screens.
9 comments
You could just have everything a set size in pixels that looks good on the small screen and is just spaced out differently based on the screen size.
Offset correct?
Scale is what you would use to position, offset is pixels. yes
If you want exact control over the size and position of each GUI element, you can use AbsoluteSize and AbsolutePosition to get the precise size and location rendered for the individual client
I find a problem that while using offset for size, a Gui doesn't shrink if you shrink down your monitor size.
Yup, that's the problem with Offset. It renders the same amount of pixels for everyone, no matter the screen size. But as you've pointed out, Scale isn't perfect either.
Is it possible to fix it?
I'm not sure if this'll be any help at all, but I had tis same exact question and I found this on ROBLOX man.
Here's the link https://forum.roblox.com/Forum/ShowPost.aspx?PostID=48956767