Trying to replace a string in a table without using a number ID

I’m trying to make a script where after one person says “hello newman” and the rest of the people say “hello jerry” after a second.
It works fine but I’m trying to exclude the person who said “hello newman” to begin with.

What happens:

What I want to happen:

The code:

[lua]
function OpenChatCommand( ply, text, Team, death)
if text == “hello newman” then
for k, v in pairs(player.GetAll()) do
v:ConCommand( “play motd/hellonm.wav”)
timer.Simple(1, HelloBack, v )
end

end

end
hook.Add( “PlayerSay”, “Start”, OpenChatCommand)

function HelloBack(v)
v:ConCommand(“say hello jerry”)
v:ConCommand( “play motd/hellojr.wav”)
end[/lua]

I tried replacing players.GetAll() (and of course separating the sound commands from it) with string.ToTable(string.replace(table.toString(player.GetAll(),"", false),ply,""))) but according to the wiki mirror it would mess up the player names by separating every letter from eachother.

I can’t use table.remove because according to the wiki It only takes numerical values for removal.

Is there an easier/more effective way to do this?

You already have the player entity that sent the command provided in the arguments (ply in this case).

When iterating just test to see if the player is the same.

[lua]for k, v in pairs(player.GetAll()) do
if v != ply then
v:ConCommand( “play motd/hellonm.wav”)
timer.Simple(1, HelloBack, v )
end
end[/lua]

I might have done it wrong as I’m extremely rusty but that should do the trick.

Thanks. I thought it would be more complex than that, so I didn’t think of anything basic.