I’m trying to make a pretty complex plugin, that lets users manage their projects easier. But what is problem #1? ROBLOX BEING GARBAGE.
Roblox currently has NO RELIABLE method for listing objects.
UiListLayout - GARBAGE
UiTableLayout - NON FUNCTIONAL
UiPageLayour - NON FUNCTIONAL
UiGridLayout - NON FUNCTIONAL
In my plugin, I need 3 things:
Automatic canvas size
Automatic size on elements in list
UiPadding on elements in list
But on Roblox, all of the UiList options they have are not compatible with these. For example, when I use UiListLayout, it does not allow me to add padding without it GOING OUT OF FRAME with automatic canvas size
All of the UIList options simply refuse to work.
As you can see INSTEAD OF FIXING their current systems, they just ADD MORE NON TESTED GARBAGE.
I’m sorry to break it to you but these will not work together, by logic. Automatic canvas size depends on all child UIs having a consistent size, which they don’t because the child UI’s size are being automatically scaled to ratio the canvas size. It’s going to be an endless back and forth so it will just not work.
Here’s a tutorial I recorded late at night that should help you with everything else
It happens to the best of us. Sometimes, you just spend hours and hours trying to get something to work and it just won’t.
Perhaps take a break, and when you’re ready, start looking at some tutorials on how other developers have worked with Roblox GUI objects. I hope you find your way out of this and come back a better dev!
Honestly just seems like scaling doesn’t work that well, because I can set the offset padding to 512px and it’s still within the bounds. Though, setting the padding to a scale of 1, the final text is offscreen… but honestly nothing that can’t be fixed with really simple code. (Doesn’t really excuse the odd behavior) Though pretty sure many have gotten all three those things you listed numerous times but you just so happened to implement padding so extreme it kind of broke it? (So figured using Scale on UIListLayout & UIPadding together does this)
scroller:GetPropertyChangedSignal("AbsoluteSize"):Connect(function()
listLayout.Padding = UDim.new(0, scroller.AbsoluteSize.Y) -- // Or just scale it
end)
Regarding the sizes of the frames inside of the scrolling frame, it’s most likely do to uneven pixel count caused by scaling, pixels between .0 and .999 etc either rounded up or down.
Here’s an example:
Let there be 10 TextButtons inside a ScrollingFrame. Let the CanvasSize be automatic. Let the CanvasSize to be originally 0, which means it will match the size of the ScrollingFrame.
CanvasSize is initially 200 px
TextButton’s size is set to scale=0.5
TextButton’s size becomes 100 px
There are 10 TextButtons, so the required CanvasSize will be 1000 px excluding padding
CanvasSize updates to 1000 px
TextButton’s size also updates, now set to 500 px to match the 0.5 scale
There are 10 TextButtons, so the required CanvasSize now becomes 5000 px excluding padding
Rinse and repeat, this cycle will never stop
So instead of crashing your game because of this endless loop, it will just be hardcapped and stop somewhere, and thus appear to not work.
you also cant get positions of frames that are affected by UIGridLayout, and if there is its by some cheesy method with math that i haven’t found out yet (the scale position not the offset, i already know how to get the offset and nobody uses offset because its trash)