Skip to content

LayoutOrder

Module Oriented Object Programing

Create a layout order using an attribute easily.

Install the module

Go on github then install the source code. After this, import it on roblox studio, preferally on ReplicatedStorage. Explorer

Use the module

Create a script, (preferably a localscript but both work), you will need to require the script with a path. The path is where the instance is. For example if your module is on replicatedStorage, you can type game:GetService("ReplicatedStorage").LayoutOrder if the module is on a folder named "Modules" which is on ReplicatedStorage then game:GetService("ReplicatedStorage").Modules.LayoutOrder. Now that you know how to get an instance's path, you will need to create a variable and require() the module.

lua
local module = require(path.to.module)
local module = require(path.to.module)

It's not harder than that. You can now create another variable with value module.new() to create an audio.

lua
local module = require(path.to.module)
local layout = module.new()
local module = require(path.to.module)
local layout = module.new()

Properties

there are 2 main properties:

  • layout
  • attributeName both are required. layout must be a UIListLayout or UIGridLayout & attributeName must be a string.

now you can add whatever properties you want. for example

lua
local module = require(path.to.module)
local layout = module.new()

layout.layout = path.to.layout
layout.attributeName = "rarity"

layout.COMMON = 1
layout.RARE = 2
layout.EPIC = 3
layout.LEGENDARY = 4
layout.EXCLUSIVE = 5
local module = require(path.to.module)
local layout = module.new()

layout.layout = path.to.layout
layout.attributeName = "rarity"

layout.COMMON = 1
layout.RARE = 2
layout.EPIC = 3
layout.LEGENDARY = 4
layout.EXCLUSIVE = 5

as you can see, COMMON, RARE, ... are not autocompleting. This is because you can create your own order. The index (COMMON, RARE, ...) is the attribute value & the value (1, 2, ...) are the order to give.

Method

Now that you gave every info you add, you can do layout:Order() to order every child of layout parent which are guielements.

Example

lua
local module = require(path.to.module)
local layout = module.new()

layout.layout = path.to.layout
layout.attributeName = "rarity"

layout.COMMON = 1
layout.RARE = 2
layout.EPIC = 3
layout.LEGENDARY = 4
layout.EXCLUSIVE = 5

layout:Order()
local module = require(path.to.module)
local layout = module.new()

layout.layout = path.to.layout
layout.attributeName = "rarity"

layout.COMMON = 1
layout.RARE = 2
layout.EPIC = 3
layout.LEGENDARY = 4
layout.EXCLUSIVE = 5

layout:Order()

Credits

Here is every user contributed on audioManager's documentation