- I wanna settle when something typed in search bar items will show up to his rarity priority
First image when button is clicked

Second image when something typed

it generates multiple buttons help!
function RankItems(Type, item, search)
local GetItemRarity = require(ReplicatedStorage.InfoModules.ItemRanks)
local RarityTable = GetItemRarity:GetRank()
local int = 9
local int2 = 9
local function Loop()
for i,v in ipairs(Assets:FindFirstChild(Type):GetChildren()) do
if v.ItemRarity.Value == RarityTable[int] then
SetItemStat(v, Type)
end
end
int = int - 1
if not (int <= 0) then
Loop()
end
end
local function LoopSearch()
for i,v in ipairs(Assets:FindFirstChild(Type):GetChildren()) do
local item1 = string.lower(tostring(item.ItemName.Value))
local item2 = string.lower(tostring(v.ItemName.Value))
if string.find(item2, search) and v.ItemRarity.Value == RarityTable[int] and string.match(item2, item1) then
SetItemStat(item, Type)
end
end
int2 = int2 - 1
if not (int2 <= 0) then
LoopSearch()
end
end
if item == 1 then
Loop()
else
LoopSearch()
end
end
function SetItemStat(item, Type)
local PlayerItem = script.PlayerItem:Clone()
PlayerItem.Heading.Text = item.ItemName.Value
PlayerItem.ItemImage.Image = item.ItemImage.Value
PlayerItem.Parent = PlayerItems
if FirstButton == true then
positionX = positionX + 90
if positionX > 270 then
positionX = 0
positionY = positionY + 110
end
else
FirstButton = true
end
PlayerItem.Position = UDim2.new(
PlayerItem.Position.X.Scale,
positionX,
PlayerItem.Position.Y.Scale,
positionY
)
PlayerItem.BackgroundColor3 = item.ItemRarity.Color3.Value
PlayerItem.MouseButton1Click:Connect(function()
CreateStatsGUI(Type, item)
end)
end
function CreateItem(item, Type, search)
local PlayerItem = script.PlayerItem:Clone()
warn(item, Type, search)
if item ~= nil then
RankItems(Type, 1)
else
RankItems(Type, item, search)
end
end
function DeleteItems()
for i,item in ipairs(PlayerItems:GetChildren()) do
item:Destroy()
FirstButton = false
positionX = 0
positionY = 0
end
end
function SearchInventory()
local search = string.lower(SearchBox.Text)
for i, folder in ipairs(Assets:GetChildren()) do
if folder:IsA("Folder") then
for i, item in ipairs(folder:GetChildren()) do
if search ~= "" then
local item2 = string.lower(tostring(item.ItemName.Value))
if string.find(item2, search) then
if folder.Name == "Knife" then
CreateItem(item, "Knife", search)
end
if folder.Name == "Weapon" then
CreateItem(item, "Weapon", search)
end
end
else
DeleteItems()
return
end
end
end
end
end