So, I'm working on my admin commands and I'm wondering how I would go about searching through the players if I have just part of their name in a string. For example, if the string was "ender
" and the player "Endergenius100
" was in the game, then I would run the command on that player. So far, I have tried string.match("ender","^+"..v.Name)
, but that didn't work. I'm very new to string manipulation, and help would be appreciated. Thanks!
You could accomplish this by matching the the letters in this case "ender" with all the players in the player list.
For example if you wanted to have an admin command to kill someone you'd do ":kill ender"
--// Looping through all the players in the game for _, Player in pairs(Players:GetChildren()) do --// Making the players name lowercase local makeLower = string.lower(Player.Name) --// Use :find() to find any player name that matches whatever you typed --// INPUT is whatever you used to break up the string message to get --// the players name if makeLower:find(INPUT) then --// Just as an example you can get their character ect. local Char = Player.Character local Hum = Char.Humanoid Hum.Health = 0 end end
So this would kill every player that matches so if you did ":kill s" it would kill every player who has a name starting with the letter s.
In some cases this is nice but if you don't want that to happen you could:
for _, Player in pairs(Players:GetChildren()) do local makeLower = string.lower(Player.Name) if makeLower:find(INPUT) then local Char = Player.Character local Hum = Char.Humanoid Hum.Health = 0 --// Add a break here to stop the code from looking for more matches break end end