You can iterate through all the items with a for-in loop, and then check if the item name has whatever is in the search bar, everytime it is changed (GetPropertyChangedSignal(“Text”)), by using string.find(). That would look something like this:
TextBox:GetPropertyChangedSignal("Text"):Connect(function()
local text = TextBox.Text
local validItems = {}
for _,item in ipairs(...) do -- item table goes in ...
local itemName = . -- ItemName goes here
if itemName:find(text) then
validItems[#validItems+1] = item
end
end
end)