So im making a game and im making the inventory system depending on how many items there are on the items folder and their type, and i want that the buttons shown up in the inventory are group color coded, like first i want the type 1 item buttonss then the type 2 item buttons and so on. But im struggling to make it so ill be very grateful if you guys help me with it.

Here is the code:

local ReplicatedStorage = game:GetService("ReplicatedStorage")

local items = ReplicatedStorage:WaitForChild("Items")	
local itemsTable = items:GetChildren()
local itemsTableName = {}

local InventoryStuff = script.Parent.InventoryStuff
local ButtonScript = script.PlaceItem

local Y = 0
local CurrentPosY = UDim.new(0, Y)
local PosX = UDim.new(0.034, 0)
local size = UDim2.new(0.9, 0, 0, 50)
local addY = 100

local function GetColorButton(ItemType)
	local ButtonColor = nil

	if ItemType == 1 then
		ButtonColor = Color3.fromRGB(170, 255, 255)
	elseif ItemType == 2 then
		ButtonColor = Color3.fromRGB(255, 255, 127)
	elseif ItemType == 3 then
		ButtonColor = Color3.fromRGB(255, 0, 0)
	elseif ItemType == 4 then
		ButtonColor = Color3.fromRGB(255, 170, 0)
	end
	
	return ButtonColor
end

local function CreateButton(Name, ItemType)
	local GuiButton = Instance.new("TextButton")
	local Round = Instance.new("UICorner", GuiButton)
	local ButtonColor = GetColorButton(ItemType)
	
	GuiButton.Text = Name
	GuiButton.TextScaled = true
	GuiButton.Name = Name
	GuiButton.Size = size
	GuiButton.Position = UDim2.new(0.034,0,0, Y)
	GuiButton.BackgroundColor3 = ButtonColor
	Y += addY
	GuiButton.Parent = InventoryStuff
end

for i = 1, # itemsTable do
	itemsTableName[itemsTable[i].Name] = itemsTable[i].Type.Value
end

print(table.concat(itemsTableName, ", "))

table.sort(itemsTableName, function(a,b)
	return a < b
end)

print(table.concat(itemsTableName, ", "))

table.foreach(itemsTableName, function(key,value)
	local CurrenItemName = key
	local CurrentItem = items:FindFirstChild(CurrenItemName)
	local ItemType = CurrentItem:FindFirstChild("Type")

	if not ItemType then
		warn("no item type")
	end

	CreateButton(CurrenItemName, ItemType.Value)
end)

for i = 1, #InventoryStuff:GetChildren() do
	local Buttons = InventoryStuff:GetChildren()
	
	ButtonScriptClone = ButtonScript:Clone()
	ButtonScriptClone.Parent = Buttons[i]
	ButtonScriptClone.Disabled = false
end