The plugin has two main functions. Converting a UI element’s size/position to Scale or Offset, and the auto scaling feature.
The Add Constraint feature makes use of the UIAspectRatioConstraint which ensures that your UI retains it’s size on all screen sizes. You can add this constraint to your UI manually but my plugin does the calculating of the AspectRatio property by dividing the AbsoluteSizes so you don’t have to!
How do I use it hmmmmm?
First, you need your GUI. Make sure it is in a ScreenGUI.
Second, select only the children of the ScreenGUI (not the descendants) and click the Add Constraint button.
This will add the constraint with the calculated AspectRatio property to the UI element, make sure you repeat step 2 for each child of the ScreenGUI. The descendants of the ScreenGUI will inherit the size of the parent so don’t go into each descendant and add a constraint to it.
Correct much smart
Wrong bruh
Alternatively, try AutoScale Plus or Nightly for SmartScale feature which automatically detects the best scaling settings for all selected UI objects.
Let me know if you need any help!
ZacBytes
Plugin Link
(Make sure to leave a )
Documentation
Discord
AutoScale Plus
Want to support me and want more features? Check out AutoScale Plus
I would like for there to be an option to automatically convert any newly inserted UI elements to scale so I don’t have to do that manually. Then I would definitely get this.
Awesome, I’ve been looking for something like this for ages. My attempts at UI design had been previously slaughtered by it looking funky on different size screens, and I never did get these UI constraint things. Thank you, this will be very helpful.
Hi everyone, the new update has arrived and the setting now works.
Click the Settings button at the plugin tab to open this gui, your settings are saved through the plugin. Please tell me if you experience crashes when clicking the button.
Yeah I noticed default scale would just make images or frames WAY too big and messing around with it can get really confusing and time consuming thanks for making this plugin, I’ll use it a lot
The AutoScale feature has actually transformed my UI design completely, and scalability is excellent now, so thank you!
One gripe I have about GUIs is that TextScaled is kinda limited; if you have a row of TextButtons, and each is set to automatically scale, they’re all going to have different text sizes and look terrible. Right now, I circumvent this in my game by changing the TextSize every time the game resolution is changed until TextFits = false for every TextLabel in the same “group”, and then use the the biggest TextSize that fits all the TextLabels in the group. Have you had any experience dealing with this? I hope it’s not too off-topic, but if no functionality exists (well… that I’m aware of) I feel like this would be a good concept for a public module (not sure how a plug-in would work).
I thought of doing it as a module, where you have a method like Module:AddTextGroup(group), where group is an array of TextLabels/Buttons that must be the same size. Every time the method is called it scales the text group to the same, largest possible size, and every time the game resolution changes, it does the same for all added text groups
Actually, I think I’m gonna make this now, lol, I already do a similar thing for my game GUI, but it’s cumbersome having to connect to my custom ResolutionChanged event every time.