I am making a Code Blockers script so when the player says the code out loud 'Was I Hard?' they are kicked from the server. I don't want to ban them, I want them to play again! Please help Code Hunters 2 is opening in 2 days!
local Blockers = {"Was I Hard?} game:GetService("Players").PlayerAdded:connect(function(newPlayer) newPlayer.Chatted:connect(function(newMessage) for index, value in pairs(Blockers) do game.Players.LocalPlayer:Kick("Sorry, you have been kicked from the server. Please do NOT spoil the codes or ruin the other robloxians experience. You are not banned so you could rejoin.") end end)
Neither of the answers posted thus far solve anything. You want your program to do something if a player says a certain word or phrase anywhere in a message. Keyword, if. You were off to a good start, creating a list containing the words or phrases you want to blacklist. However, there's no comparison to these blacklisted words or phrases with anything the player actually wrote. This is where you want an if statement to handle this comparison, then do something after.
A quick revision will include some updated functions and methods of old common practices. The condition of our if statement will depend upon the match
function checking to see if the filtered word or phrase was found anywhere in the message string.
local Players = game:GetService("Players") local blacklist = { "phrase #1", "phrase #2", "phrase #3"; "word #1", "word #2", "word #3"; } -- Creating an event listener for individual players when differentiation isn't important, is now obsolete and can be replaced with the PlayerChatted event (member of Players service). -- Also get in the habit of using "Connect" opposed to "connect", as the latter is deprecated. Players.PlayerChatted:Connect(function(messageType, player, message) for _, filtered in next, blacklist do if string.match(message, filtered) then player:Kick("Reason") end end end)
If you have any questions, just leave a comment and I'll get back to it as soon as possible.
This will work; but they will have to say exactly "Was I Hard?" with the question mark and everything.
local Blockers = {"Was I Hard?"} game:GetService("Players").PlayerAdded:connect(function(newPlayer) newPlayer.Chatted:connect(function(newMessage) for index, value in pairs(Blockers) do if newMessage == value then game.Players.LocalPlayer:Kick("Sorry, you have been kicked from the server. Please do NOT spoil the codes or ruin the other robloxians experience. You are not banned so you could rejoin.") end end end) end)
im not a god or anything but maybe its because you used "LocalPlayer" instead of an argument maybe?
local Blockers = {"Was I Hard?"} game:GetService("Players").PlayerAdded:connect(function(newPlayer) newPlayer.Chatted:connect(function(newMessage) for index, value in pairs(Blockers) do game.Players.LocalPlayer:Kick("Sorry, you have been kicked from the server. Please do NOT spoil the codes or ruin the other robloxians experience. You are not banned so you could rejoin.") end end)
i cant test this cause my enter key broke, but tell me if this does work