[Open Source] Resizable GUIs Module

This is a module I made for myself about a year ago designed to more effectively resize GUIs based off a device’s screen size. Size customization is completely controlled by the player, so they can see as much, or as little, of the GUI as they’d like.

The idea of it is based off window size customization from Windows 10. When the GUI is made resizable, it’ll be given a border which can be dragged around by players until they reach their desired size. I’ve tested this on mobile devices, laptops, and desktop computers, and it’s been working well so far.

I released this publicly last year when it was first developed, so you may have come across it before - however, I’ve never been able to showcase it on a large scale. I believe it’s worthy of a post here because I’ve personally found it to be very useful in my own development, so it may be something someone else can make use of.

Features:

  • Basics - GUIs can be resized by the players of your game to better match their desired size
  • Persistent - GUI size is saved automatically. When players rejoin the game later, the gui will automatically resize itself to their chosen size
  • Customizable - the borders of the window can be set however you’d like. They can be made smaller/larger, colors can be changed, and their entire visibility can be turned on & off.
  • Size Constraints - The module supports properties for maximum & minimum size of the GUI, so you can set size constraints for resizing.
  • Open Source - you can make any change you’d like to better adapt the module to your own games & your own needs.
  • Automatic Updates - By default, the module automatically updates to the latest release. This can be toggled on & off by a BoolValue located inside the AutoUpdate script.

Demo:
There is a demo of a resizable GUI available here:

Module Code
The module is linked below:

Providing Contributions
The code is available open source from the link above. If you’ve made an improvement to it, please feel free to PM me so I can add it to the main code!

Thanks everyone!

48 Likes

Amazing, Thank you, buddy.

2 Likes

Great model, I will defiantly use this for future projects.

1 Like

Very nice!

1 Like

I found a low-priority defect. If you make the anchor point anything other than 0,0 the resize will not work as intended. Not that big of a deal to be fair since I can just make the anchor point 0,0. And this seems to happen to other open-source resize modules so I’m sure it’s just a math logical defect.

Great job! You must be very proud of your work!

This module was made 3 years ago. Of course you’d expect flaws to be in the module.

2 Likes

Of course! But like I said it was a low priority defect, not necessarily a flaw in the module. So I was posting that for documentation purposes if anyone wants to mitigate it.

1 Like

Is it possible to roll out a version that doesn’t require a datastore?

Wanna know something funny? I came back to this module and had no idea why it wasn’t working, I spent like 30 minutes debugging then I found my own comment. It’s a good thing I documented LOL.