Hey, I made a quick little module for a thing that’s been bugging me since I started building game-show inspired games on Roblox.
This way I want to make possible to create screen walls but much more efficiently.
The limitation I came to was that I wasn’t able to make a differently sized part to use less surface guis and make the game overall easier for the server / client to render the guis.
If there’s a long continuous wall for the first 10 iterations of a led wall and then a curve why should I make 10 different parts when I can create 2?
So I took a bit of my spare time to create this module that will make it easier for anyone wanting to use a surfaceGui to create an LED wall or for more practical use cases, create curved surfaceGui screens that can be used to showcase data in front of a player or to create effects.
Setup
The setup’s pretty simple and straightforward.
- Add the module into
ReplicatedStorage - Create a model or folder with parts
IMPORTANT! - The parts need to be labelled from 1 to n so the module works. You must go from left to right / top to bottom. - Create a SurfaceGui and add a “Holder” frame - all of the gui elements you want to be stretched will reside there.
IMPORTANT! - Doesn’t need to be named “Holder” but if you have any other frames that that are on the same hierarchy level it mayn’t work as you intended. - Create a script / localscript
You need to provide the surfaceGui you created, the face you want the surfaceGui to orient itself to, the model/folder of the parts and the orientation of the part axis you want to track and gui axis.
local csm = require(game:GetService("ReplicatedStorage").CurvedScreen)
local obj1 = csm.new(YOUR SURFACEGUI, Enum.NormalId.[...], game.Workspace.Model, "X", "Y")
obj1:draw()
And that’s it!
If you encounter any bugs or have suggestions for features don’t hesitate to tell me!
Test game:
scalable_screen_Demo.rbxl (97.7 KB)
You can download the module here
Cheers!

