As a Roblox developer, it is currently too hard to create a user interface that uses a scrolling frame, because anything that gets resized via scale will get stretched with the canvas when you increase the canvas size. This makes it incredibly frustrating to work with, as I have to keep mobile/high res screen compatibility in mind, while also making sure to use things like uiaspectratioconstraint.

My solution? IgnoreCanvasYScale. IgnoreCanvasYScale would be a boolvalue in scrollingframes, that would allow all of the ui inside of it to scale as if the CanvasSize.Y was always set to {1,0}.

If Roblox is able to address this issue, it would improve my development experience because I could create the ui in the scrolling frame just like anything else. It would cause much less frustration, and would significantly improve the speed of scrolling frame ui creation.

A particular use case is when converting a grid that did not previously need to scroll, that now does.
If the grid’s ui was all sized using scale, then chances are doing a proper 1:1 conversion into an endless scrollingframe would be a massive headache.


FWIW: AutomaticCanvasSize has this behaviour. If you use scale on any elements that are children of a ScrollingFrame that has this enabled (non-None enum), the childrens’ scale will be according to the ScrollingFrame element and not its canvas.


They should honestly just add a property that indicates whether or not the ScrollingFrame should resize automatically and another property that shows the number of objects that will be displayed in the frame.

ScrollingFrame.AutoResize = true
ScrollingFrame.ObjectCount = 5

For example, the above thing will make it so the scrolling frame resizes and display only 5 objects.

I need something that works in general ignoring if is Scale or Offset.

1 Like