If i remember, those scripts in those threads returns a table with the results, you might want to Disable the frames that are not in the table. Well, remember to also try to fix your issues too .
local Frame: ScrollingFrame = nil -- Put the parent of the buttons here instead of nil
local SearchBar: TextBox = nil -- Put the textbox of your searchbar here instead of nil
SearchBar:GetPropertyChangedSignal("Text"):Connect(function()
local InputText: string = string.lower(SearchBar.Text)
for _, Button: Instance in Frame:GetChildren() do
if Button:IsA("TextButton") or Button:IsA("ImageButton") then
Button.Visible = string.find(string.lower(Button.Name), InputText, 1, true) and true or false
end
end
end)
It probably works, and it’s not case sensitive
Late edit: (I did some code cleanup)
Each time the text of SearchBar changes, it will iterate through the children of Frame:
It checks for each child if they are a TextButton or an ImageButton class.
It then sets the Visible property of the children of which a part of the name matches with the input to true, or else it will set it to false.
(Make sure to use a UIListLayout or UIGridLayout in the ScrollingFrame or else you might get unwanted behaviour such as empty spaces if they are on set positions and have nothing else that orders their new positions.)
It is possible and I might say trivial to do.
Just for the text to be changed, delete everything in the scrolling frame and do a for lopp comparison on the data set.