Basically the above question.
I'm trying to use return to return both a boolean value and a string. I am making a chat filter for my chat GUI, and I am using a function that checks whether a chat is in compliance with the filter and then returns whether that chat was in compliance or not and what the reason was (if it was not compliant).
The function in question is below (it is a global function because I plan to use it in other scripts).
_G.CheckFilter = function(chat) lower = chat:lower() -- the chat filter is here. It contains some words that I am not sure are in compliance with guidelines, so it has been removed } for key, value in pairs(filtered) do if lower:find(key) then return true, value end end end
And then it is called in the following code:
debounce = false script.Parent.Parent.Parent.Chatted:connect(function(msg) lower = msg:lower() if player.Name == "Kaamchor" or player.Name == "Devinoski" or player.Name == "darkyellow56" then if string.lower(msg:sub(1, 6)) == "system" then _G.Chat(msg:sub(8), "SYSTEM") end end if debounce == false and string.lower(msg:sub(1, 6)) ~= "system" then debounce = true local filt, reason = _G.CheckFilter(msg) if filt then _G.Chat("This message by " .. player.Name .. " was filtered because of: " .. reason .. ".", "SYSTEM") wait(3) debounce = false else _G.Chat(msg, player.Name) wait(1) debounce = false end end end)