Scripting Helpers is winding down operations and is now read-only. More info→
Ad
Log in to vote
0

How to filter through players with part of their name?

Asked by 5 years ago

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!

0
i got the same problem Gameplayer365247v2 1055 — 5y

1 answer

Log in to vote
0
Answered by 5 years ago

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
0
Thanks so much! I had no idea there was a ":find" function. Endergenius100 12 — 5y
0
No problem, glad it helped. SimpleFlame 255 — 5y
Ad

Answer this question